La domótica tiene mucho potencial para hacernos la vida más fácil. Pero para tener éxito en su tarea, a menudo requiere que llene su casa con puentes que puedan conectar sus dispositivos inteligentes a su red Wi-Fi. A menos que compre un dispositivo inteligente que se comunica directamente a través de Wi-Fi (como un enchufe inteligente o ), lo más probable es que muchos de sus dispositivos inteligentes favoritos usen Bluetooth, Zigbee o Z-Wave para comunicarse. Estos protocolos resuelven algunos de los problemas de Wi-Fi cuando se trata de dispositivos inteligentes, como la latencia, la topología centralizada y los requisitos de energía relativamente altos, pero requieren hardware físico intermedio para realizar el protocolo inteligente <-> traducción de Wi-Fi. y hacer que los dispositivos sean realmente controlables desde un cliente conectado a Wi-Fi. TP-Link Belkin Lo malo es que probablemente necesitará un puente o concentrador diferente para cada clase de dispositivo que quiera usar. Las luces Philips Hue vienen con su propio puente, lo mismo para Lutron, lo mismo para HomeKit, lo mismo para Belkin, lo mismo para Switchbot, y la lista continúa. Lo irónico es que la mayoría de estos dispositivos hablan el mismo protocolo (ya sea Zigbee o Z-Wave) pero, en la mayoría de los casos, solo pueden controlar sus propios dispositivos. Intenta imaginar una realidad alternativa en la que todas las tarjetas ethernet puedan enviar y recibir paquetes TCP/IP, pero necesitarás un adaptador solo para tráfico HTTP, uno para FTP, otro para SMTP, etc.: esa es más o menos la realidad. hoy cuando se trata de puentes y concentradores inteligentes. Para resolver el problema, muchas empresas están lanzando al mercado aún concentradores y puentes (desde Samsung SmartThings, hasta la gran cantidad de dispositivos Amazon Echo, Google y Apple, etc.), a menudo compatibles solo con un subconjunto de los dispositivos que existen. e incompatibles entre sí, a menudo incompatibles por diseño con dispositivos producidos por competidores: eso solo trae aún más fragmentación al actual infierno de hogares inteligentes. más Además, muchos concentradores generalmente solo pueden hablar con la aplicación de su teléfono inteligente, lo que agrega un infierno de aplicaciones al infierno del puente. Uno de los objetivos más buscados hoy en día cuando se trata de domótica es (o debería ser) encontrar formas consistentes de comunicarse con tantos dispositivos como sea posible utilizando la misma herramienta, la misma caja y la misma interfaz. Recientemente he trabajado para lograr este objetivo en ornitorrinco. Otras plataformas también han abordado el problema (desde HASS.io hasta Openhab) pero, en mi opinión, todas requieren un cierto grado de configuración del usuario (como especificar qué es cada dispositivo y qué se supone que debe hacer) que, en mi opinión, no debería no será necesario. En este artículo, repasaremos qué son realmente Zigbee y Z-Wave, qué necesita para configurar un puente universal para ellos usando solo una Raspberry Pi y un dongle USB, y cómo mover permanentemente sus puentes inteligentes existentes al trastero. Zigbee contra Z-Wave Podría decirse que Zigbee y Z-Wave se han convertido en los protocolos de comunicación dominantes en las industrias de hogares inteligentes e IoT. Comparten algunas características comunes, tales como: Son más adecuados para dispositivos de baja potencia. Wi-Fi es un protocolo que consume relativamente mucha energía, necesita lidiar con las pérdidas de paquetes, se basa en una topología centralizada y no es ideal para la comunicación con dispositivos que pueden estar inactivos durante mucho tiempo debido a su alta sobrecarga en la reconexión. En cambio, Zigbee y Z-Wave se diseñaron para funcionar bien con dispositivos de baja potencia, tener baja latencia y optimizarse para enviar menos bytes en la red. En teoría, algunos dispositivos Z-Wave o Zigbee pueden funcionar con la misma batería durante un par de años; un dispositivo Wi-Fi similar generalmente no durará más de un par de días. Si bien las redes Wi-Fi generalmente se configuran con una topología basada en estrellas (un punto de acceso/enrutador en el medio y todos los dispositivos se conectan a él), Zigbee y Z-Wave se han diseñado para admitir topologías más flexibles. Cada dispositivo puede ser tanto un cliente como un repetidor en la red, cada uno puede conectarse directamente a otros dispositivos y expandir la red sin necesidad de introducir más enrutadores o puntos de acceso. Esto permite la creación de redes de escalables que pueden incluir dispositivos que de otro modo estarían fuera de alcance. malla Cuando se trata de las diferencias: : las redes Z-Wave están limitadas a 232 dispositivos, mientras que Zigbee admite hasta 65k dispositivos. Número de dispositivos : Z-Wave admite hasta cuatro saltos entre un dispositivo y el controlador de red, mientras que Zigbee teóricamente no tiene tales limitaciones. Máximo de saltos : la mayoría de los dispositivos Zigwave funcionan en torno al espectro de 2,4 GHz, aunque algunos dispositivos específicos también usan 784 MHz en China, 868 MHz en Europa y 915 MHz en EE. UU. y Australia. En cambio, los dispositivos Z-Wave operan alrededor del rango de 850 a 900 MHz (a 868,42 MHz en Europa, a 908,42 MHz en América del Norte y otras frecuencias en otros países según sus regulaciones). Rango operativo : una regla general cuando se trata de ondas electromagnéticas es que, a una potencia de transmisión fija, cuanto mayor sea la frecuencia, menor será el rango. Significa que los dispositivos Z-Wave, que funcionan a frecuencias más bajas, suelen tener un alcance más largo en comparación con Zigbee. Una señal Z-Wave sin obstrucciones puede viajar hasta 100 metros en exteriores, aunque una pauta común es 30 metros en interiores para señales sin obstrucciones y 15 metros si hay paredes en el medio. En cambio, el alcance interior de Zigbee suele estar limitado a unos 12 metros. Sin embargo, las redes Zigbee teóricamente admiten una cantidad ilimitada de saltos entre los nodos y el controlador, por lo que el rango se puede ampliar fácilmente agregando más nodos a la red. Rango de señal : Z-Wave tiene un mayor alcance que Zigbee. Significa que, a una distancia fija, su señal suele ser más fiable. Además, Zigbee opera en el espectro relativamente "más silencioso" de 800 a 900 MHz, por lo que no tiene que compartir el saturado espectro de 2,4 GHz con dispositivos Wi-Fi y Bluetooth. Eso en general conduce a una comunicación más confiable. Fiabilidad de la señal : Z-Wave es una tecnología patentada desarrollada y mantenida por Sigma Designs. Sigma (adquirida por Silicon Labs en 2018) es propietaria del protocolo, licencia los dispositivos compatibles y ejecuta Z-Wave Alliance, y otorga certificaciones a los dispositivos que cumplen con el estándar. Su punto de venta es, en mi opinión, la fuerte aplicación de un protocolo compartido tanto en el lado del hardware como del software. Cada sensor, valor de configuración o interruptor está definido por un tipo de variable, un rango, una política de solo lectura frente a lectura y escritura y una representación estructurada que se aplica a todos los dispositivos compatibles. Eso hace que sea muy fácil desarrollar interfaces consistentes que puedan representar y controlar de manera integral cualquier dispositivo siempre que hable Z-Wave, incluso si la implementación no sabe exactamente qué dispositivo es. Zigbee, por otro lado, es un estándar abierto mantenido por Zigbee Alliance. También cuenta con un proceso de certificación, pero consta de dos partes: una parte certifica el hardware y la otra certifica el software. Es posible producir hardware certificado por Zigbee incluso si el software no está certificado ni es compatible con otros clientes. Si bien esto hace que el protocolo sea mucho más abierto que Z-Wave, también hace que la tarea de escribir un software de interfaz multipropósito sea mucho más difícil, ya que diferentes dispositivos pueden nombrar sus propiedades siguiendo diferentes convenciones. Propiedad y protocolo Eso debería cubrir la mayor parte del conocimiento que necesita cuando se trata de la teoría de Zigbee y Z-Wave. Encontrará muchos dispositivos inteligentes compatibles con Zigbee y Z-Wave. Algunos ejemplos de dispositivos Zigbee son las bombillas inteligentes Philips Hue e Ikea, los termostatos Honeywell, los enchufes y bombillas inteligentes Belkin, los sensores Bosch y los productos Osram. Z-Wave incluye alrededor de 65 000 dispositivos compatibles, incluidas muchas puertas de garaje, sensores de presencia y temperatura, termostatos, atenuadores, controles remotos, detectores de humo, etc. Hardware y software Usaremos una RaspberryPi en los siguientes ejemplos como un puente de bricolaje (cualquier modelo y cualquier distribución deberían funcionar bien) y como una plataforma de automatización del hogar que también ejecuta las integraciones Zigbee y Z-Wave. platypush Haciendo tu propio puente Zigbee En el lado del hardware necesitarás: Uno o más dispositivos compatibles con Zigbee, como luces Philips Hue, Ikea o Osram o interruptores Belkin. Un adaptador/sniffer de Zigbee a USB. El es una de las opciones más populares que existen. Un , que necesitará para actualizar el firmware en el dongle. CC2531 depurador Zigbee + cable adaptador Una RaspberryPi o dispositivo similar (cualquier modelo y distribución debería funcionar bien), o cualquier computadora que quieras usar como puente. En el lado del software: platypush usa como backend para interactuar con el dongle Zigbee. Instale el firmware zigbee2mqtt en el dongle siguiendo las instrucciones (para Windows, macOS y Linux) en . Puede consultar una lista de los dispositivos compatibles . Instale, inicie y habilite una instancia de MQTT en la máquina local, si aún no tiene un servidor ejecutándose en su red. Si está ejecutando Debian/Ubuntu/Raspbian y quiere usar Mosquitto, por ejemplo: zigbee2mqtt su sitio web aquí [sudo] apt-get install mosquitto [sudo] systemctl start mosquitto .service [sudo] systemctl enable mosquitto .service Instalar zigbee2mqtt: [sudo] apt- install nodejs git g++ gcc git clone http //github. /Koenkk/zigbee2mqtt zigbee2mqtt npm install data/configuration # Change mqtt.server serial.port respectively # your MQTT server USB dongle device. npm start get make s: com cd vi and to match and También puede hacer un servicio systemd a partir de él: =zigbee2mqtt =network.target =/usr/bin/npm start =/path/to/zigbee2mqtt =inherit =inherit =always =multi-user.target [Unit] Description After [Service] ExecStart WorkingDirectory StandardOutput StandardError Restart [Install] WantedBy Tenga en cuenta que el archivo de configuración zigbee2mqtt también incluye una opción permit_join. Establézcalo en verdadero mientras empareja sus dispositivos Zigbee por primera vez, y configúrelo en falso después para evitar que otros dispositivos se unan a la red de forma accidental o maligna; siempre puede permitir temporalmente las uniones más adelante. Una vez iniciado y en modo permit_join, puede comenzar a emparejar dispositivos Zigbee con su nueva red. Eso generalmente se hace al hacer un restablecimiento de fábrica del dispositivo. El procedimiento varía según el dispositivo: las bombillas Philips Hue, por ejemplo, se pueden reiniciar desde la aplicación (si están emparejadas con un puente) o presionando los botones ON/OFF de un atenuador Hue simultáneamente durante 10 segundos mientras mantiene el atenuador. a menos de 10 cm de la bombilla. Otros dispositivos Zigbee pueden incluir un botón de reinicio en su lugar. Una vez que un dispositivo Zigbee se une a la red, los registros de zigbee2mqtt deberían mostrar un seguimiento como el siguiente: Successfully interviewed '0x 8d dc126a', device has successfully been paired 0015 0001 Instala Redis y platypush con las extensiones Zigbee, HTTP y MQTT: [sudo] apt-get redis- [sudo] systemctl redis.service [sudo] systemctl redis.service pip install server start enable install 'platypush[zigbee,http,mqtt]' Edita tu archivo para habilitar los servicios Zigbee y HTTP: ~/.config/platypush/config.yaml backend.http: port: 8008 zigbee.mqtt: host: localhost backend.zigbee.mqtt: enabled: true Inicie platypush (ya sea ejecutando platypush o iniciando el servicio systemd platypush.service). Abra en un navegador. El panel web debe incluir el ícono de Zigbee en la barra de navegación, podrá controlar su red desde allí. http://host-or-ip:8008/ Puede enviar solicitudes a través de la a través de HTTP, código Python o a través del backend platypush que haya configurado: API admitida curl -XPOST -H 'Content- : application/json' -d ' { : , : , : { : , : , : } }' http: # HTTP request Type "type" "request" "action" "zigbee.mqtt.device_set" "args" "device" "White Bulb" "property" "state" "value" "ON" //localhost:8008/execute platypush.context get_plugin get_plugin( ).device_set(device= , property= , value= ) # Python usage from import 'zigbee.mqtt' 'White Bulb' 'state' 'ON' O conecte cualquier lógica personalizada a los : eventos admitidos event.hook.OnLightBulbOn: : type: platypush.message.event.zigbee.mqtt.ZigbeeMqttDevicePropertySetEvent device: White Bulb then: - ${properties.get( ) == }: - action: tts.say args: text: if if 'state' 'ON' "The light went on" ¡Felicitaciones, ahora está listo para usar sus dispositivos Zigbee y construir automatización sin puentes! Haciendo tu propio puente Z-Wave Hacer un puente Z-Wave DIY es incluso más simple que hacer un puente Zigbee, ya que no necesitará un depurador para actualizar un firmware personalizado ni un servicio MQTT en el medio. Necesitará un dongle adaptador USB Z-Wave. Yo uso , pero cualquier dongle compatible debería funcionar. Tome nota de dónde está asignado el adaptador en su sistema, por ejemplo, /dev/ttyUSB0. este Instale Redis y platypush con las extensiones Z-Wave y HTTP: [sudo] apt-get redis- [sudo] systemctl redis.service [sudo] systemctl redis.service pip install server start enable install 'platypush[zwave,http]' Configura tus integraciones en : ~/.config/platypush/config.yaml backend.http: port: 8008 zwave: device: /dev/ttyUSB0 backend.zwave: enabled: true Inicie platypush (ejecutando platypush o a través del servicio systemd) y dirija su navegador a . Verá una nueva pestaña para la integración de Z-Wave. Algunas capturas de pantalla del panel web de Z-Wave. http://host-or-ip:8008/ Cada dispositivo compatible con Z-Wave tiene su propia forma de vincularse a una red. Todo lo que necesita hacer es presionar el botón + para poner la red en modo de emparejamiento y luego emparejar sus dispositivos dentro de un minuto a través del procedimiento mencionado en el manual del usuario. Dado que Z-Wave tiene un protocolo más estricto y todos los dispositivos compatibles publican sus valores con el mismo formato, la interfaz de Z-Wave es mucho más granular y detallada en comparación con Zigbee. Por supuesto, puede enviar comandos a la nueva red a través de la y suscribirse a ganchos personalizados en : API disponible eventos Z-Wave curl -XPOST -H 'Content- : application/json' -d ' { : , : , : { : , : } }' http: # HTTP request Type "type" "request" "action" "zwave.get_value" "args" "value_label" "Temperature" "node_name" "Kitchen Sensor" //localhost:8008/execute platypush.context get_plugin get_plugin( ).get_value(value_label= , node_name= ) # Python usage from import 'zwave' 'Temperature' 'Kitchen Sensor' { : : , : { : [], : { : , : , : , : , : , : , : , : , : , : , : , : } }, } # Example output "type" "response" "target" "http" "response" "errors" "output" "command_class" 49 "data" 26.799999237060547 "data_items" "Read only" "genre" "User" "index" 1 "is_read_only" true "is_write_only" false "label" "Temperature" "node_id" 3 "type" "Decimal" "units" "C" "value_id" 72057594093256722 event.hook.OnZWaveValueEvent: : type: platypush.message.event.zwave.ZwaveValueChangedEvent then: - ${node[ ] == value[ ] == value[ ] }: - action: tts.say args: text: Motion has been detected # Trigger a custom action when motion is detected if if 'name' 'Motion Sensor' and 'label' 'Sensor' and 'data' is True ¡Ahora debería tener todos los ingredientes para construir sus redes de IoT personalizadas y deshacerse de esos puentes para siempre! Publicado anteriormente en https://medium.com/the-monolith/transform-a-raspberrypi-into-a-universal-zigbee-and-z-wave-bridge-b686cdd1849e