SONOFF Zigbee 3.0 USB Dongle Plus en NAS QNAP

Como me gusta que todo el sistema domotico sea o redundante o que en pocos minutos pueda estar funcionando he decidido programar y configurar un SONOFF Zigbee 3.0 USB Dongle Plus para tenerlo de reserva por si se averiase mi coordinador LAUNCHXL-CC26X2R1 tener toda la red zigbee funcionando de nuevo en pocos minutos

LAUNCHXL-CC26X2R1: Energytrace on my LAUNCHXL-CC26X2R1 read about 0.005ma  after i disconnected the onboard CC26X2 - Bluetooth forum - Bluetooth®︎ -  TI E2E support forums

Prepararemos el SONOFF Zigbee 3.0 USB Dongle Plus para sustituir el LAUNCHXL-CC26X2R1 en caso de averia

SONOFF ZigBEE 3.0 USB Dongle Plus Router Firmware

Flashearlo es bastante sencillo ,yo he seguido este manual de Domotica en casa y en tres minutos estaba ya a punto de caramelo para empezar las pruebas , aquí os dejo una serie de enlaces donde podéis encontrar los ficheros e información extendida.

Y aquí para que no andéis perdiendo el tiempo ni registrándoos en TI os dejo los ficheros necesarios para flashear el chiquitin.

https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

Una vez programado mediante Flash programmer si todo ha ido bien pasaremos a probar y configurar nuestros dispositivos zigbee con el nuevo coordinador

De entrada al montarlo en un NAS QNAP con un linux a medida no me reconocía el nuevo dispositivo , en el foro de QNAP encontré esta solución para que lo detectara

Entrar por SSH al NAS , introducir esto comandos y reiniciar el NAS

mknod /dev/ttyUSB0 c 188 0
insmod /usr/local/modules/usbserial.ko
insmod /usr/local/modules/cp210x.ko

Una vez reiniciado ya aparece el nuevo dispositivo

Este es el docker-compose.yml que teníamos original con el LAUNCHXL-CC26X2R1

  zigbee2mqtt2:
    image: koenkk/zigbee2mqtt:1.23.0
    hostname: zigbee2mqtt
    container_name: zigbee2mqtt2
    environment:
      - TZ=Europe/Madrid
    volumes:
      - /share/Container/zigbee2mqtt/data:/app/data
      - /run/udev:/run/udev:ro
    devices:
      - /dev/ttyACM0:/dev/ttyACM0
    restart: always
    privileged: true
    network_mode: host      

Cambiaremos en el docker-compose.yml el puerto al que ira conectado el docker y regeneraremos el docker con docker-compose up -d

      # - /dev/ttyACM0:/dev/ttyACM0
      - /dev/ttyUSB0:/dev/ttyUSB0      

En el configuration.yaml de zigbee2mqtt cambiaremos el puerto serie por el nuevo

serial:
  port: /dev/ttyUSB0

Y empezara a funcionar como el que teníamos previamente detectando todos nuestros chismes zigbee y comunicando con el servidor MQTT

El problema ahora viene con que cada vez que reiniciemos el NAS perderemos los drivers , para ello tendremos que crear un autorun.sh y que se ejecute en cada arranque

https://wiki.qnap.com/wiki/Running_Your_Own_Application_at_Startup

Starting from QTS 4.3.3 it’s required to enable the autorun.sh processing in the Control Panel -> Hardware -> General: Run user defined startup processes (autorun.sh)

mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config

Create/Edit /tmp/config/autorun.sh.

  1. either using vi:# vi /tmp/config/autorun.sh
  1. Get vi editor into edit mode: press a
    1. Edit whatever you need to
    2. Exit edit mode: press ESC
    3. Save and exit: x
  2. or editing it using a desktop PC and e.g. SFTP
  3. Ensure that /tmp/config/autorun.sh is executable# chmod +x /tmp/config/autorun.sh
  1. IMPORTANT: Unmount the mounted flash partition:# umount /tmp/config

mknod /dev/ttyUSB0 c 188 0
insmod /usr/local/modules/cp210x.ko

De esta forma al arrancar el NAS tendremos los drivers correctos para el dongle sonoff zigbee , con esto y un bizcocho ………..