Hay 293 invitados y ningún miembro en línea

Control de instalacion Konnex mediante Java

Más
9 años 2 semanas antes #2781 por marta
Hola vteferrer,

en primer lugar, gracias por tu respuesta.
He estado leyendo tus post anteriores, y creo que sí que me podrías ayudar contandome con mayor profundidad los detalles de tu proyecto. La verdad que es la primera vez que tengo contacto con el tema de domótica, y aunque he leido bastante documentación del protocolo KNX, de momento continúo un poco verde.

Lo que pretendo hacer con este proyecto, es detectar los dispositivos conectados a una red KNX y obtener la mayor información de los mismos. Hasta el momento, he podido obtener información relativa a la tabla de direcciones de grupo, la tabla de objetos de grupo, la máscara del dispositivo, fabricante, número de serie, etc. Pero lo que realmente necesito es conocer los valores que toma dicho dispositivo que me indique la función que realiza dentro de la red, es decir, si se trata de un interruptor, saber que es un interruptor, que actualmente por ejemplo que encuentra en "off", y poder cambiar ese estado a "on" desde mi pc, en resúmen, crear un driver en java que me permita controlar la red.

De momento, como hiciste tú, he comenzado con una red pequeña con los dispositivos justos para realizar las pruebas, y a medida que vaya obteniendo resultados, añadir más. Los dispositivos los he programado con el ETS y los he dado una funcionaliddad determinada.
A partir de ahi, quiero leer esa configuración dada previamente mediante el ETS, y modificar sus valores desde un ordenador, de manera que pueda controlarlos desde el mismo.

Todavía no he conseguido obtener dicha información, por eso preguntaba si de los paquetes "datapoint" y "DPTXlator" de Calimero podría obtener algo o si por ahí podría ir bien encaminada. No encuentro la manera de hacerlo, entonces, si no tengo más remedio podría orientar mi proyecto a simplemente poder controlar la red, teniendo ya conocimineto sobre la misma. Es decir, en lugar de leer la información de los dispositivos, únicamente modificar sus valores basándome en el hecho de que ya conozco la red previemente. ¿Eso es lo que realizabas en tu proyecto? El problema, es que el driver quería que fuese genérico y válido para "cualquier" red KNX, pero lo veo complicado, y creo que voy a tener que modificar los objetivos.

Si no me equivoco, has comentado que para modificar los valores es necesario el envío de mensajes con la estructura correcta a los dispositivos. Ahí me vuelvo a atascar, no se cómo comunicarme con ellos. Ando un poco perdida, y si me dieses alguna pauta de cómo continuar basándote en tu proyecto.
Muchas gracias por todo.

Un saludo.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
9 años 2 semanas antes #2779 por vteferrer
Hola Marta,

Yo estuve desarrollando un pequeño proyecto (podrás ver alguna información al respecto en posts antiguos míos del foro) para controlar una instalación KNX mediante una aplicación Java utilizando Calimero. Lo que hice no tiene nada que ver con lo que tú estás buscando, así que no puedo darte una respuesta clara; en su lugar, te planteo algunas líneas de investigación o te doy pautas con la intención de que te resulte más fácil averiguar lo que necesitas.

Lo primero que yo haría sería buscar en la documentación del protocolo información acerca de si los dispositivos se "anuncian" de alguna manera al conectarse a una red o bien periódicamente. Yo no tuve la necesidad de estudiar el protocolo en profundidad pero... no recuerdo que los dispositivos en una red Konnex se "anunciaran" de forma regular; más bien actúan como dispositivos totalmente esclavos, que realizan su función no cuando se les invoca directamente, sino cuando se envía un mensaje a la dirección de grupo en la que están (con la estructura correcta). Lo que sí me suena es que a nivel de protocolo había una dirección de grupo en la que todos los dispositivos estaban asignados por defecto (me parece que era 0/0), que, por tanto, se convierte en algo así como una dirección broadcast, quizás podrías caminar en esta dirección.

Dando el salto a la propia librería Calimero... me da la sensación que es una librería de más alto nivel, es decir, que su objetivo no es tanto interrogar la red como enviar mensajes concretos a los objetos de comunicación conocidos de una determinada dirección de grupo; en cualquier caso, no digo que no exista esta funcionalidad, simplemente... no es evidente. Y si realmente no existe, la propia librería es una documentación interesante para, si el protocolo lo permite, programártelo por tu cuenta. Pero me temo que no es una cuestión de "direcciones de memoria a las que acceder" dado que no es así como funciona Java (en Java no hay "accesos a memoria") sino más bien, de conocer la estructura de tramas que debes enviar y la que esperas recibir.

Espero haberte sido de ayuda.

Un saludo

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
9 años 3 semanas antes - 9 años 3 semanas antes #2773 por marta
Hola.
Estoy haciendo un proyecto en el que yo uso las librerías Calimero para obtener informacion de los dispositivos conectados a una red Konnex. Lo que pretendo obtener es informacion sobre el tipo de dispositivo (iluminacion, persianas, etc), así como los valores que tienen actualmente sus objetos de comunicación (conmutación: on/off, etc), para poder modificar sus valores, y así poder controlar la red en todo momento.
Había pensado en utilizar las clases disponibles en los paquetes “datapoint” y “DPTXlator” de Calimero. La idea consiste en obtener los valores de los datapoints de los dispositivos, el problema es que no se cómo hacerlo. ¿A qué posición de la memoría yo debería acceder? ¿Existe alguna clase de Calimero que implemente la manera de obtener dicha información?
Si alguien me puede ayudar o indicarme como puedo obtener información de los dispositivos, y me oriente el camino, se lo agradecería.
Muchas gracias.
Un saludo.
Última Edición: 9 años 3 semanas antes por marta .

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Tiempo de carga de la página: 0.178 segundos