Buenas surbyte en primer lugar gracias por leerme.
El tema en cuanto a Loxone es como un servidor un poco comercial especifico para domotizar. no he querido darle mucho detalle ya que no tiene nada de arduino y no quería soltar el rollo. al final lo que puedo hacer con el es mensajes de todo tipo por tcp/ip y crear una interfaz mas intuitiva y fácil para mi al mismo tiempo que creo una logica para que actue segun lo que se le meta. por eso lo utilizare como cerebro de todo y en la periferia para abaratar los arduino.
el caso es que yo con él lo que hare es la lógica de todo el comportamiento de la casa y sera el que reciba paquetes udp de todos los arduinos (calculo que sera unas 20 placas mega)los interpretara segun la logica que le meta y enviara paquetes udp al respectivo arduino para que realice una accion de on/off.
yo en el Loxone la configuracion udp que puedo hacer es que cuando reciba un numero de tipo entero lo meta en una variable interna para hacer por ejemplo regulacion de calefacion y si recibe un texto que reconozca (el que yo quiera) hacer una accion ya que ira asociado a una variable interna boleana o de byte segun yo quiera.
mi problema es con arduino que solo le voy utilizar para que cuando cambien de estado cualquier entrada caleada a él este estado se envie por udp si se a puesto a on o off, y si el loxone dice por medio de paquetes udp que cuales quiera de las salidas cableadas al respectivo arduino cambie de estado este reconozca el texto enviado desde el Loxone y cambie de estado la salida correspondiente.
el programa que he adjuntado segun esta estructurado mi intencio es:
1 lee el estado de las entradas declaradas como INPUT y lo pasa a variable statu
2 lee el estado de las salidas declaradas como OUTPUT y lo pasa a variable statu
verifica que existe conexion con el servidor Loxone, si hay conexion:
3 envia por cada entrada digital y analogica un paquete con texto ej: "pin3=on" o "pin3=off"
si es analogico envia el valor directamente.
4 recibe paquetes de cambio de estado de salidas arduino si hubiese cambios y los ejecutas
5 si no hay conexion ejecuta una logica sencilla interna de si una entrada cambia que cambie en estado de la salida que yo quiera. Esto ultimo lo utilizo como segunda opción por si se caen las comunicaciones que por lo menos pueda encender o apagar luces localmente del salon o una habitacion desde el arduino o subir y bajar persianas.
esto es un poco la idea general si necesitais que especifique mas lo hago pero lo unico que necesito es que me guieis un poco de como deberia hacerlo y funciones son las correctas para utilizar en este tipo de ordenes que se basa en el envio y recepcion de cambios de estados por comunicacion.
Un saludo y gracias