Installare adattatore zigbee CC2531 e zigbee2mqtt su Raspberry PI Zero

Tags: 

  • Attenzione: le istruzioni di installazione di Node.JS sottostanti sono da considerarsi OBSOLETE!
    Le istruzioni corrette per installare Node.JS le trovate in questo altro articolo.

    Dovete inoltre tenere in considerazione che dalla versione 1.28 e 1.29 di zigbee2mqtt è necessario usare una versione più recente di Node.JS (io sto usando la 16.10.0 con successo) e aumentare il file di Swap rispetto ai 100Mb standard (io ho impostato 400Mb).
  •  

    Alcuni appunti su come installare un coordinatore Zigbee mediante Raspberry PI Zero W + adattatore CC2531 + zigbee2mqtt, dal momento che rispetto alle guide trovate online ho avuto diversi problemi.

    Partiamo con la parte hardware...

     

    Installazione adattatore CC2531

    Per capirci ho acquistato questo, per circa 3€: https://www.aliexpress.com/item/4000059514865.html

    L'adattatore, quando arriva, ha un proprio firmware che non va bene per l'uso come controller "open-source", e deve quindi essere riprogrammato. Per farlo ci sono diverse vie, ma comunque occorre collegare i suoi pin, che sono più piccoli dei classici pin standard, e quindi difficilmente manovrabili.

    Per questo motivo esiste una basetta di collegamento, che non è altro che un adattore per i pin, per averli su una piattina standard. Si acquista per circa 2€: https://www.aliexpress.com/item/32837441367.html

     

    La mia idea era usare il sistema di programmazione diretto, collegando direttamente l'adattatore al raspberry, come spiegato in alcune guide:

    https://notenoughtech.com/home-automation/flashing-cc2531-without-cc-deb...

    Purtroppo nel mio caso non ha funzionato.

    Le ho provate tutte, ma al momento di usare il software di programmazione, quando viene riconosciuto l'hardware collegato, mi veniva sempre data la risposta "ID = 0000".

    Significa che il dispositivo è fisicamente rilevato ma non è riconosciuto. Ho fatto parecchie analisi a riguardo, forse il problema è un part# dell'adattore che mi è arrivato che non corrisponde a quello che vuole il flasher.

     

    Alla fine ho acquistato il "CC Debugger" per la programmazione, che del resto era anche la procedura consigliata da zigbee2mqtt.

    Ho acquistato una versione tarocca, questa volta su ebay (cosi' mi arrivava prima), a 9€ (limortacci): https://www.ebay.it/itm/RF04E-RF04EB-CC1110-CC2530-CC2531-CC2540-ZigBee-...

    Si chiama Smart RF04E, ed è un emulatore del CC Debugger.

     

    Non funziona però esattamente allo stesso modo, deve essere rilevato dal flasher (e su questo non c'è problema), e i LED funzionano in maniera diversa!

    Questo mi ha disorientato, perchè mi aspettavo di dover vedere il led passare da rosso a verde, come prevede la procedura standard descritta qui: https://www.zigbee2mqtt.io/getting_started/flashing_the_cc2531.html (Linux or MacOs).

    Ma questo NON avviene, il LED non cambia stato (almeno non il mio). Ignorando quel passaggio comunque la programmazione funziona, quindi OK.

     

    Quindi, ricapitolando:

    1) Si installa e si builda CC-Tool: https://github.com/dashesy/cc-tool (su arch linux c'è il repository "cc-tool-git")

    2) Si connette CC-Debugger -> Cavo adattatore -> CC2531 e poi sia il CC-Debugger che il CC2531 alla porta USB

    3) Si aspetta qualche secondo per sicurezza (come vi dicevo, nessun led cambia colore)

    4) Si scarica il firmware dalla pagina https://www.zigbee2mqtt.io/getting_started/flashing_the_cc2531.html

    5) si flasha:

    sudo ./cc-tool -e -w CC2531ZNP-Prod.hex

    Per vedere se tutto è andato bene si vede se zigbee2mqtt lo rileva, dopo averlo installato come spiegato nel prossimo step.

     

    Alla fine ho speso 11€ per componenti utili solo alla riprogrammazione (contro i 3€ del CC2531 vero e proprio). La cosa positiva è che se voglio mettere dei nuovi CC2531 nei vari raspberry che ho in giro per la casa (da usare come router - e quindi come extender di segnale) potrò farlo con soli 3€...

     

    Installazione software zigbee2mqtt:

    La procedura standard è descritta qui:

    https://www.zigbee2mqtt.io/guide/installation/01_linux.html

    Ma su Raspberry PI Zero NON FUNZIONA, perchè quel modo di installare node.js non va.

    Ho scoperto come fare su questo articolo: https://www.ely-gio.tk/2019/04/raspberry-pi-zero-zigbee2mqtt/

     

    Ricapitolando il metodo che funziona:

    1) Si installa node.js mediante:

    wget -O - https://raw.githubusercontent.com/sdesalas/node-pi-zero/master/install-node-v.last.sh | bash
    # Per vedere se è stato installato bene
    node --version
    npm --version

    AGGIORNATO: 1) Installa node.js seguendo questa guida.

    2) Si scarica e installa zigbee2mqtt, cosi':

    sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
    sudo chown -R pi:pi /opt/zigbee2mqtt
    cd /opt/zigbee2mqtt
    npm install 

    3) Si configura zigbee2mqtt e si lancia per la prima volta (cosi' vediamo se CC2531 funziona bene)

    Per la guida di configurazione rimando al sito ufficiale.

     

    Per far eseguire zigbee2mqtt come servizio è molto importante seguire anche la guida per installare il servizio systemctl!

    Aggiungi un commento

    Scrivi la risposta in lettere (ad esempio "tre" e non "3")