Per chi ha comprato l'economico Sonoff USB Dongle 3.0 Plus (https://sonoff.tech/product/diy-smart-switch/sonoff-dongle-plus/) per mettere in cantina il vecchio CC2531 (sostituendolo con il nuovo CC2652P) qui spiego come aggiornare il firmware (necessario per chi ha preso i primi batch del dongle), e come fare la sostituzione su Zigbee2mqtt.
ATTENZIONE: Io ho montato il dongle su un vecchio Raspberry PI Zero W e funziona benissimo (mi pare anzi che il carico di CPU sia diminuito rispetto al vecchio CC2531). Sullo stesso raspberry c'è anche un ricevitore a radiofrequenza 433Mhz e un processo che ascolta i segnali relativi, e funziona tutto bene. Per chi se lo chiedesse.
Vecchio articolo di riferimento: https://myhq.it/installare-adattatore-zigbee-cc2531-e-zigbee2mqtt-su-ras...
AGGIORNAMENTO FIRMWARE
Per poter usare lo script di aggiornamento firmware dovete avere python3 installato, pip, e avere installato questi pacchetti:
python3 -m pip install pyserial intelhex
Il firmware aggiornato può essere preso da qui: https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Sta...
Scaricate l'ultima versione "launchpad" e decomprimetela, ottenendo il file HEX.
Quindi prendete il repository del tool di aggiornamento "cc2538-bsl":
git clone https://github.com/JelmerT/cc2538-bsl.git
Attaccate la chiavetta (su alcune versioni potrebbe essere necessario tenere premuto un pulsantino interno per mandarlo in modalità "programmazione", ma nella mia versione no, basta attaccarla e va bene).
Quindi va eseguito il comando:
sudo ./cc2538-bsl.py -p /dev/ttyUSB0 -evw --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20211217.hex
(ovviamente da cambiare i parametri di porta e path del file come richiesto da voi)
COPIA IEEE ADDRESS DAL VECCHIO DONGLE
Prima però di fare questo comando la prima volta è necessario però specificare anche l'indirizzo IEEE da impostare nel dongle, in modo che sia corrispondente a quello del vecchio CC2531 (cosi' facendo zigbee2mqtt lo riconoscerà direttamente senza dover rifare il pairing di tutti i dispositivi).
Per prima cosa dovete ottenere l'indirizzo IEEE dal vecchio dongle. La cosa più veloce è guardare le prime righe del file "data/database.db" (nella cartella di zigbee2mqtt), cercando questo pattern:
{"id":1,"type":"Coordinator","ieeeAddr":"0x00124b000e89686d","nwkAddr":0..
Prendete la voce "ieeeAddr", togliete lo 0x iniziale e mettete dei ":" ogni 2 caratteri. Quello sopra diventa "00:12:4b:00:0e:89:68:6d"
(In alternativa potete anche guardare in "Settings" -> "About" -> "Coordinator IEEE Address" della interfaccia web di zigbee2mqtt)
A questo punto al comando di aggiornamento firmware sopra dovete aggiungere il parametro "--ieee-address 00:12:4b:00:0e:89:68:6d"
Quindi il comando completo, da eseguire solo la prima volta, sarà:
sudo ./cc2538-bsl.py -p /dev/ttyUSB0 -evw --bootloader-sonoff-usb --ieee-address 00:12:4b:00:0e:89:68:6d CC1352P2_CC2652P_launchpad_coordinator_20211217.hex
SOSTITUZIONE DONGLE
A questo punto siete pronti per la sostituzione vera e propria. Fermate zigbee2mqtt, togliete il vecchio dongle, mettete il nuovo, modificate nel config la porta tty se è cambiata (potete guardare l'output di dmesg per capire la porta nuova), quindi riavviate zigbee2mqtt.
Da me è andato quasi tutto liscio: inizialmente non venivano riconosciuti i dispositivi router (quelli connessi alla rete elettrica), ma è bastato staccarli dalla rete e riattaccarli e li ha ripresi.
Un solo dispositivo era stato rimosso dalla lista (non ho idea del perchè, era anche l'ultimo che avevo accoppiato, magari avevo fatto qualche errore io) e ho dovuto rifare il pairing.
Articoli di riferimento:
https://indomus.it/guide/riprogrammare-il-firmware-di-itead-sonoff-zigbe...
https://www.zigbee2mqtt.io/guide/adapters/flashing/copy_ieeaddr.html
Aggiungi un commento