Al momento stai visualizzando ZHA: ZigBee in Home Assistant

ZHA: ZigBee in Home Assistant

In questo articolo impareremo a conoscere ed utilizzare Zigbee Home Automation, ovvero ZHA: l’integrazione nativa di Home Assistant per utilizzare dispositivi ZigBee.

Come abbiamo appreso nel primo articolo dedicato a ZigBee (se non l’hai letto fallo ora: Home Assistant e ZigBee: orientiamoci ) ZHA è l’integrazione più performante ed intuitiva, sebbene abbia ancora aree migliorabili. Per me è quindi la prima scelta da utilizzare, a meno che non ci siano motivi specifici come coordinator o dispositivi esotici non correttamente gestiti.

Impareremo quindi come aggiungere, configurare e gestire i dispositivi con ZHA. Tieniti forte, partiamo!

Prerequisiti

Se stai migrando da un'altra integrazione zigbee (Deconz, Zigbee2mqtt)

E’ importante capire che i coordinato ZigBee espongono normalmente una porta seriale, niente di più.
I coordinator USB lo fanno tramite una seriale virtuale over USB mentre gli hat per Raspberry Pi usano la UART presente nel Raspberry Pi stesso.

Per definizione una seriale può essere aperta da un unico chiamante, motivo per il quale se hai installato più integrazioni o add-on che ne fanno uso soltanto uno di essi funzionerà, gli altri troveranno la porta occupata.
Ecco perchè se stai migrando da Deconz o Zigbee2MQTT è importante capire che devi eliminare totalmente tali software, prima di procedere ad usare ZHA.

Ma prima di tutto ricorda di fare un backup o uno snapshot, a seconda della versione di Home Assistant che stai usando, questo ti permetterà di poter tornare sui tuoi passi qualora qualcosa andasse storto o ZHA non ti piacesse.

La brutta notizia te la do subito: ogni volta che cambi integrazione ZigBee devi riassociare tutti i tuoi dispositivi. Eh si. Perchè ogni integrazione crea una diversa chiave di criptazione del network. Quindi i backup ti permettono di tornare indietro ma i dispositivi andranno comunque riassociati. E perdi anche dispositivi ed entità che verranno nominati in modo differente (ma li potrai modificare con lo stesso entity_id che avevano precedentemente, non perdendo il funzionamento delle automazioni e degli script)

Una volta fatto il backup dovrai eliminare ogni traccia dell’integrazione che utilizzavi prima.
Se usavi Deconz dovrai disinstallare l’add-on Deconz e l’integrazione Phoscon.
Se stati usando Zigbee2MQTT dovrai disinstallare l’add-on Zigbee2MQTT e, se non ne fai altro uso, il broker MQTT che usavi, oltre in tal caso al client MQTT.

Dopo esserti assicurato che nessuno dei tuoi dispositivi sia sopravvissuto all’ecatombe, effettua un riavvio del supervisor. Questo ti assicurerà che non rimane codice in esecuzione che fa uso della seriale.

Se stai usando un coordinator Conbee / Raspbee

Se intendi usare ZHA con il coordinator di Dresden Elektronik Conbee II come consiglio nel primo articolo dedicato alla scelta dell’integrazione zigbee di Home Assistant, assicurati che il firmware della chiavetta o dell’hat siano all’ultima versione.

Il metodo più semplice per farlo è collegando la chiavetta ad una porta USB del tuo PC Windows.

Scarica l’ultima versione dell’utility GCFFlasher (attualmente la 3.10) che trovi a questa pagina e scompattane il contenuto in una cartella, diciamo c:\conbee.

Se stai usando Windows 10 non hai bisogno di alcun driver. Se invece utilizzi Windows 7 dovrai scaricare ed installare il seguente driver (se hai bisogno di ulteriori informazioni consulta la pagina di aiuto).

Scarica l’ultimo firmware per il tuo dispositivo da questa pagina. Nel caso di una Conbee II limitati ai file il cui nome inizia con deCONZ_ConBeeII e la cui estensione sia .bin.GCF. Salva il file nella cartella creata sopra c:\conbee.

Ora apri un prompt dei comandi, accedi tramite cd \conbee alla cartella creata prima e verifica che la chiavetta venga riconosciuta correttamente tramite il seguente comando:

GCFFlasher -l

Se la Conbee II viene vista correttamente sapremo la COM virtuale che dovremo usare:

Utilità gcfflasher

A questo punto chiediamo di aggiornare il firmware con il seguente comando (sostituisci il nome del firmware con quello scaricato precedentemente):

GCFFlasher.exe -f deCONZ_ConBeeII_0x26680700.bin.GCF

Dovresti vedere il progresso dell’aggiornamento e il suo termine. Se non accade nulla significa invece che il firmware è già aggiornato.

Aggiunta dell’integrazione ZHA

Prima di partire tieni sottomano la pagina di documentazione ufficiale, come sempre è il posto giusto dove cercare informazioni in caso di problemi o dubbi e per verificare che il tuo coordinator sia supportato.

Aggiungere l’integrazione è semplicissimo. Vai in Impostazioni -> Integrazioni e clicca il tasto + AGGIUNGI INTEGRAZIONE in basso a destra.
Nella selezione delle integrazioni posizionati al termine della lista o seleziona “zigbee” nella ricerca. La voce su cui cliccare è Zigbee Home Automation.

Aggiunta dell'integrazione ZHA

Se ZHA rileva il coordinator

A questo punto se ZHA rileva automaticamente una periferica Zigbee ti proporrà di utilizzarla (troverai il tuo coordinator nella casella a discesa):

Percorso seriale durante l'aggiunta di ZHA

Una volta premuto INVIA… hai finito di configurare ZHA, che ti presenterà il riassunto con la scelta dell’area di casa dov’è presente il coordinator:

Integrazione ZHA aggiunta correttamente ad Home Assistant

Se ZHA non rileva il coordinator

Nel caso in cui ZHA non rilevasse il coordinator (perchè ad esempio è remoto, come per il Sonoff ZBBridge, oppure perchè la seriale virtuale esposta è tenuta occupata da un add-on) ti verrà prima chiesto di selezionare il tipo di coordinator installato tramite la seguente finestra (nella schermata è selezionata l’opzione da scegliere per la Conbee II):

Selezione tipo di coordinator durante l'aggiunta di ZHA a Home Assistant

Premendo INVIA ti verrà quindi richiesto di inserire il percorso della porta seriale da utilizzare (o altri parametri con altri tipi di coordinator):

Percorso seriale durante l'aggiunta di ZHA ad Home Assistant

Ma dove trovare il percorso?

Se hai Home Assistant Operating System puoi andare in Supervisor, Sistema e nel pannello di destra Host cliccando sui tre puntini clicca sulla voce Hardware e scorri fino a trovare la voce normalmente chiamata - name: ttyACM0

cerca la riga seguente che inizia con by_id e copia il contenuto dell’intera riga successiva, facendo attenzione a scorrere finché la riga non termina.

Se hai Home Assistant Core digita il seguente comando dalla shell:

# ls /dev/serial/by-id/*

Nel caso in cui ZHA riuscirà a colloquiare con il coordinator vedrai il riassunto e la scelta dell’area di casa alla quale assegnare il coordinator, come nel paragrafo precedente:

Integrazione ZHA aggiunta correttamente ad Home Assistant

Se tutto è andato bene ti ritroverai con un’integrazione in più che si mostra più o meno così:

Integrazione ZHA: Zigbee Home Automation di Home Assistant

Configurazione di ZHA

ZHA è talmente semplice che non necessita di configurazione obbligatoria.
Puoi comunque aggiungere delle opzioni tramite configuration.yaml. L’unica opzione che ti consiglio di aggiungere prima di iniziare è il canale Zigbee. Scegli con cura un canale che non si sovrapponga con il tuo Wifi e con quelli vicini di una certa potenza. Se vuoi più informazioni a riguardo ti consiglio di leggere questo articolo: ZigBee: copertura, router, canali.

Per selezionare un canale aggiungi il seguente codice al tuo configuration.yaml:

zha:
  zigpy_config:
    network:
      channel: 25             # Numero del canale che desideri utilizzare

Dopo ogni modifica alla configurazione del dispositivo ricorda di riavviare Home Assistant.

Aggiungere un dispositivo

Siamo ora pronti ad aggiungere il nostro primo dispositivo ZigBee ad Home Assistant.
Per farlo abbiamo due possibilità:

  1. Cliccando il link CONFIGURA dell’integrazione e quindi il tasto + AGGIUNGI DISPOSITIVO in basso a destra.
  2. Cliccando il link n dispositivi dell’integrazione, selezionando il coordinator o il router che vuoi usare per il collegamento e infine cliccando sul link AGGIUNGI DISPOSITIVI TRAMITE QUESTO DISPOSITIVO
Aggiunta di un dispositivo tramite un router Zigbee con integrazione ZHA in Home Assistant

In entrambi i casi si attiverà la modalità di aggiunta dispositivi:

Ricerca dispositivi Zigbee con integrazione ZHA in Home Assistant

Se vuoi vedere cosa sta avvenendo dietro alle quinte premi il link in alto a destra SHOW LOGS. Può essere utile se sospetti ci sia un malfunzionamento durante la ricerca.

Questa fase dura un paio di minuti nei quali è permessa l’aggiunta di dispositivi alla tua rete zigbee. Durante questi minuti dovrai resettare il dispositivo da associare (ognuno ha la sua modalità, leggi tra le istruzioni del dispositivo) in modo che si accoppi con le chiavi di protezione della rete ed entri a far parte del tuo network zigbee.

Quando il dispositivo viene rilevato appare una card blu. A quel punto ZHA sta ancora comunicando con esso per prelevarne i dati e le peculiarità. Al termine di questa interrogazione la card diventerà verde ad indicare che l’operazione è terminata. L’unica operazione residua sarà dare un nome identificativo al dispositivo e assegnarlo ad un’area della casa tramite gli appositi campi nella card.

Il mio personale consiglio è di usare sempre la seconda modalità (AGGIUNGI DISPOSITIVI TRAMITE QUESTO DISPOSITIVO) partendo dal coordinator, quando colleghi dispositivi vicini ad esso, oppure partendo dal router che vorresti che il dispositivo utilizzi per comunicare poi fino al coordinator. Questo perchè alcuni dispositivi non rispettano al 100% le specifiche Zigbee e tendono a rimanere collegati al router con cui sono stati aggiunti.

Mappa dei dispositivi Zigbee

ZHA, come tutte le integrazioni Zigbee, offre la possibilità di mostrare una mappa dei dispositivi collegati che può essere utile per capire la topologia di rete e identificare eventuali problemi.

Nel momento in cui scrivo (ver. 2021.3.4) la mappa di ZHA è ancora piuttosto acerba, graficamente poco gradevole e non priva di difetti. Avrà ampio margine di miglioramnto nelle versioni future.

Per visualizzarla basta andare in Impostazioni -> Integrazioni -> Zigbee -> Configura -> Visualizzazione:

Menu configurazione integrazione ZHA in Home Assistant

La mappa si presenta quindi in questo modo:

Mappa dei dispositivi Zigbee con ZHA in Home Assistant

E’ possibile zoomarla usando la rotella del mouse o il pinch to zoom su dispositivi touchscreen e scrollare tenendo premuto il tasto sinistro. Aumentandone l’ingrandimento si vedranno anche i dati di ogni dispositivo e dei link di collegamento:

Ingrandimento mappa dei dispositivi Zigbee con integrazione ZHA in Home Assistant

Come leggere la mappa

Ci sono tre tipi di simboli sulla mappa:

  • Rettangolo: rappresenta il coordinator
  • Ovale: rappresenta un dispositivo router che contribuisce alla rete mesh
  • Cerchio: rappresenta un end-device, solitamente dispositivi a batteria che non contribuiscono alla rete mesh

All’interno di ognuno di essi possiamo trovare:

  • Il nome assegnato al dispositivo
  • L’indirizzo IEEE (puoi pensarlo come il parallelo del MAC address in versione Zigbee. Esso rappresenta infatti univocamente un dispositivo a livello globale)
  • Il tipo di dispositivo (Router o EndDevice)
  • L’indirizzo NWK (puoi pensarlo come il parallelo dell’indirizzo IP, univoco all’interno della tua rete Zigbee)
  • La descrizione del modello di dispositivo

Le linee che collegano i dispositivi tra loro sono i possibili collegamenti che i dispositivi utilizzano per comunicare e formano una strada tra il dispositivo di partenza e quello di destinazione.
Il colore delle linee è verde se il valore di LQI è superiore a 192, giallo se è tra 129 e 192, rosso se è minore o uguale 128 e grigio se è davvero troppo basso. Nel capitolo seguente sarà spiegato il significato di LQI.

Allo stato attuale c’è un bug nella mappa che non mostra molti link tra il coordinator e gli end device collegati direttamente ad esso.

Identificare la qualità di comunicazione

Per capire quanto un dispositivo comunichi bene è necessario andare nella card Informazioni sul dispositivo nei device di Zigbee:

Informazioni sulla qualità del segnale di un dispositivo Zigbee: RSSI e LQI con integrazione ZHA in Home Assistant

LQI è l’acronimo di Link Quality Indication ed è un dato cumulativo che ogni dispositivo registra e rappresenta il numero di errori di trasmissione. Il suo valore va da 0 a 255, dove 255 significa comunicazione perfetta, valori più bassi indicano una incidenza di errori di comunicazione sempre più elevati.
RSSI è l’acronimo di Received Signal Strength e misura la potenza ricevuta in antenna grezza, senza tenere in conto eventuali disturbi. E’ negativa e più vicina allo zero significa più potente. -50 è migliore di -70.

Normalmente al decrescere di RSSI decresce LQI. Ma LQI può decrescere anche se RSSI non varia, ad esempio se vi sono disturbi di comunicazione.

I gruppi Zigbee

Con ZHA è possibile creare dei gruppi di dispositivi per poterli comandare in modo simultaneo come fossero un tutt’uno.
Si, certo, si potrebbero raggruppare in un group oppure in un light group ma la peculiarità di creare un gruppo nell’integrazione è che possiamo utilizzare tale gruppo direttamente da dispositivi Zigbee di comando, come vedremo nel prossimo articolo riguardante il binding. Ovviamente il gruppo sarà anche esposto come entità direttamente utilizzabile in automazioni e script come fosse un light group.

Le singole entità rimarranno comandabili, interrogabili e utilizzabili nelle automazioni anche singolarmente ma in più avrai un gruppo che ti permetterà di accendere tutte le lampadine alla stessa intensità e alla stessa temperatura/colore (qualora lo supportino).
Ti consiglio quindi di usare questa funzione per luci omogenee Zigbee e non group o light group.

Per accedere ai gruppi andare in Impostazioni -> Integrazioni -> Zigbee -> Configura -> Gruppi:

Gruppi Zigbee in configura integrazione

In tale sezione troverai i gruppi configurati:

E’ probabile che troverai dei gruppi già esistenti, come i “no name group” dello screenshot sopra. Ti consiglio di non rimuovere questi gruppi ma semplicemente di ignorarli

Come sempre per aggiungere un gruppo usiamo il tasto in basso a destra + AGGIUNGI GRUPPO:

Aggiungi gruppo dispositivi Zigbee con integrazione ZHA in Home Asssistant

Non ci resta che inserire un nome per il gruppo (che poi sarà trasformato per essere anche l’entity_id) e selezionare i dispositivi che faranno parte del gruppo:

Parametri aggiunta gruppo dispositivi Zigbee con integrazione ZHA di Home Assistant

Non ha senso selezionare dispositivi di tipo diverso per raggrupparli in un gruppo zigbee. E’ invece utile creare gruppi di luci, gruppi di smart plugo gruppi di qualunque dispositivo che si ha intenzione di comandare contemporaneamente.

Gestione dei cluster

Normalmente questo argomento è piuttosto avanzato ma è bene sapere che i cluster (set di funzioni resi standard da Zigbee Alliance) possono essere gestiti dalla pagina del dispositivo. Troviamo questa funzione tramite il link GESTISCI CLUSTER:

Gestione dei cluster

Si aprirà un’interfaccia con molti dati, limitiamoci alla prima: Clusters:

Interfaccia comunicazione attributi dei cluster con integrazione ZHA di Home Assistant

I clusters sono insiemi di attributi con valore raggruppati per tipologia omogenea. Tali valori degli attributi possono essere letti e, in alcuni casi, scritti nel dispositivo.
Selezionando una voce in Clusters, ad esempio Basic, apparirà la sezione sottostante dove poter selezionare un attributo del cluster. Selezioniamo ad esempio manufacturer, che ci indicherà il produttore del dispositivo, e premiamo OTTIENI l’ATTRIBUTO ZIGBEE per interrogarne il valore dal dispositivo stesso.
Il valore, se l’operazione va a buon fine, verrà scritta nella casella Valore.

Qualora si volesse modificare il valore di un attributo (solo se sai esattamente cosa si sta facendo!) inserisci il nuovo valore che desideri impostare nella casella Sostituzione codice produttore e premi IMPOSTA L’ATTRIBUTO ZIGBEE.

Alcuni dispositivi permettono infatti di configurarne il comportamento tramite attributi, come la sensibilità, il tempo o altro ancora.

Aggiornamenti OTA dei dispositivi Zigbee

ZHA permette l’update automatico dei firmware dei dispositivi che rendono pubblici i propri aggiornamenti.

Al momento in cui scrivo solo Ikea e Ledvance rendono disponibili in modo chiaro i propri aggiornamenti e sono pertanto gli unici dispositivi a poter ricevere aggiornamenti automatici OTA (Over The Air).

Come riportato dalla pagina ufficiale di ZHA, per default gli aggiornamenti sono disabilitati. Per abilitarli basterà aggiungere alla nostro configuration.yaml (o in un package) il seguente codice:

zha:
  zigpy_config:
    ota:
      ikea_provider: true                        # Auto update Trådfri devices
      ledvance_provider: true                    # Auto update LEDVANCE devices
      #otau_directory: /path/to/your/ota/folder  # Utilize .ota files to update everything else

Dopo ogni modifica ai parametri OTA sarà necessario riavviare Home Assistant perchè i nuovi parametri abbiano effetto.

La terza voce commentata otau_directory permette di specificare una cartella dove salvare i firmware scaricati personalmente, se si desiderasse utilizzarli per gli aggiornamenti.

Molto più comodo è invece attivare ikea_provider e/o ledvance_provider come nell’esempio sopra. In tal modo verrà automaticamente effettuato il controllo della versione firmware di ogni dispositivo, scaricato automaticamente ogni eventuale aggiornamento e applicato ai dispositivi senza nulla chiedere.

Un aggiornamento alle lampadine smart le fa normalmente spegnere per qualche decina di secondi per poi riaccendersi aggiornate.
Per sapere se un device è stato aggiornato sarà necessario verificare la versione firmware, accessibile dalla pagina del dispositivo Zigbee, prima e dopo il presunto aggiornamento:

Versione firmware dispositivi zigbee

Cosa fare in caso di problemi con ZHA

Quando le cose non vanno come devono, ad esempio il coordinator non funziona, il join dei dispositivi non va a buon fine o per qualunque problema è possibile abilitare la modalità di debug delle varie componenti di cui ZHA. Di seguito il codice da inserire in configuration.yaml o in un package:

logger:
  default: info
  logs:
    homeassistant.core: debug
    homeassistant.components.zha: debug
    bellows.zigbee.application: debug
    bellows.ezsp: debug
    zigpy: debug
    zigpy_cc: debug
    zigpy_deconz.zigbee.application: debug
    zigpy_deconz.api: debug
    zigpy_xbee.zigbee.application: debug
    zigpy_xbee.api: debug
    zigpy_zigate: debug
    zigpy_znp: debug
    zhaquirks: debug

In caso di problemi con il coordinator o con il pairing di dispositivi sconsiglio di attivare tutte le opzioni, altrimenti il log diventerà molto prolisso e cercare le informazioni molto noioso. In particolare è probabile che NON ti interessi abilitare homeassistant.core, zhaquirks (molto prolisso! Attivare quest’ultimo solo se stai analizzando le peculiarità di un device zigbee non aderente alle specifiche zigbee)

Una volta attivate le voci desiderate riavviare Home Assistant, effettuare le operazioni che generano il problema e salvare una copia del log, normalmente presente in config/home-assistant.log.

Non lasciare attivo il log senza un motivo a lungo termine perchè il log generato è molto più ampio e concorre al wearing del supporto di memorizzazione, specialmente se hai solo una scheda SD su Raspberry Pi (in tal caso ti consiglio di leggere questo articolo)

Se pensi di postare il log su di un gruppo Facebook assicurati di utilizzare un servizio come PasteBin per inserire il codice e postare solo il link di pastebin al tuo codice. In tal modo è molto più leggibile che incollarlo in un post e faciliti la vita a chi vorrà darti una mano nell’analisi.

Ulteriori informazioni per approfondire ZHA

Ti va di darmi una mano?

Il contenuto di questo sito è completamente gratuito senza pubblicità invasive e il fine non è certo guadagnare …ma mantenere un sito ha un costo. Se ti va di darmi una mano per sostenere le spese o ti va di sostenere questo progetto hai le seguenti modalità:


  • Donazione con Paypal:

  • Regalami un caffè su Buymeacoffee:


  • Effettua i tuoi acquisti Amazon a partire da QUESTO LINK (o tramite i prodotti sotto)

  • Effettuare i tuoi acquisti AliExpress usando QUESTO LINK

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale. Mastodon: @pixel

Questo articolo ha 66 commenti

  1. giacomo

    chiavetta cc2530 + hassio + rasp.3b + dispositivi LUMI, tutto ok fino a quando non spengo il rasp, all’accensione devo riconfigurare tutti i dispositivi

    1. Henrik Sozzi

      Potrebbe essere la SD che ha esaurito il suo ciclo vitale. E’ abbastanza frequente che quando capiti le SD vengano lette ma le scritture non cambino quel che sta scritto nel supporto, sebbene sembri andare a buon fine. E quindi quando riparte il Raspberry ricarica l’elenco di dispositivi dalla SD che… non c’è.
      E’ l’unica spiegazione che mi viene in mente.

  2. Salvo

    Problema coordinator in seguito ad aggiornamento del CORE. Ho questo problema da qualche giorno in seguito ad uno degli ultimi aggiornamenti del Core. Avevo installato appena prima il SO 7.0 e tutto funzionava ancora. Come chiavetta ho una cc2530+cc2592 e fino a prima dell aggiornamento tutto andava perfettamente con zha e i vari sensori Zigbee.

    Dopo aver visto che non funzionava ho subito provato a fare un restore presggiornamenti (ne ho provati diversi andando a ritroso) ma non ho risolto.

    In maniera più drastica ho proprio usato uno snapshot della macchina virtuale su cui gira HA aggiornata ad un paio di mesi prima, quando tutto funzionava e chiaramente dopo l’avvio NON HO fatto nessun aggiornamento, eppure, zha continua a dare lo stesso problema. Sembra un errore nel rilevare il dispositivo o a dialogarci, tuttavia ho testato un’altra chiavetta (gemella) e anche con questa fa la stessa cosa.

    Ho provato a creare da zero una installazione pulita e non sono riuscito a risolvere.

    Consigli?

    1. Henrik Sozzi

      Ciao Salvo, secondo me hai intuitivamente fissato l’aggiornamento del core come causa del malfunzionamento ma secondo me hai preso un abbaglio con qualcosa di concomitante. Se fosse stato il core tornando indietro sarebbe tornato a funzionare. Ulteriore indizio che rafforza questa tesi l’uso di un’altra chiavetta gemella che non funziona.
      Da quel che scrivi deduco che utilizzi un virtualizzatore come Proxmox in cui gira la VM di HA non so in che salsa. Ad ogni modo è già successo diverse volte in passato che, non so perchè, forse aggiornando l’host con Proxmox, la condivisione delle perfiferiche USB nella VM non funzionasse più correttamente o non avvenisse proprio. Ti consiglio di focalizare l’attenzione lì, piuttosto.
      Come test puoi accedere alla porta dev (se usi Core accedi normalmente alla shell, se usi HassOS accedi alla porta dev 22222 come spiegato in un mio articolo o alla console fisica) e vedi se trovi in /dev il dispositivo che hai configurato in ZHA (dovresti vederlo nella scheda delle integrazioni, come titolo dove c’è ZHA). Se non c’è significa che l’USB non è assegnato alla VM dal virtualizzatore.
      Altra cosa che puoi fare per cercare di capire è guardare cosa dice il LOG di HA riguardo a ZHA. Magari trovi degli errori che ti aiutano a capire in che direzione andare. Se non trovi voci inerenti prova ad aumentare la quantità di log, c’è la sezione specifica nella pagina della doc.
      Ulteriori opzioni riguardo a problemi se usi core o supervised le trovi in fondo alla pagina della doc.
      In bocca al lupo.

  3. Claudio

    Salve, avrei una domanda. Ho diversi dispositivi collegati tramite cc2531 al mio hub home assistant e utilizzo ZHA come integrazione. Il problema è che funziona tutto perfettamente ma non ho la possibilità di settare l’attributo startup on off in quanto il valore dell’attributo risulta None. Quando va via la corrente in pratica le lampadine si accendono tutte al ritorno della corrente e vorrei il contrario. Queste lampadine sono perfettamente settabili tramite app tuya per ricordare l’ultimo stato quindi questa funzione fa parte del loro firmware. Ti ringrazio se vorrai darmi un qualche suggerimento a riguardo. Un saluto.

    1. Henrik Sozzi

      Ciao Claudio, ho lo stesso problema con le lampadine Ikea. Indagando tempo fa ho scoperto che queste non supportano l’impostazione che citi te per cui ho “risolto” (in realtà è un workaround…) con un’automazione che all’avvio di HA spegne tali lampadine (ne uso tre in gruppo sul tavolo in cucina come luce “in più”). Mi hai dato l’occasione per verificare se con gli aggiornamenti magari è stato implementato…
      Ad ogni modo se le tue lampadine sai che supportano tale feature in teoria dovresti andare in Configurazioni -> Integrazioni -> clicca sui dispositivi di ZHA, clicca sul tuo dispositivo, clicca sul link gestisci cluster e da lì selezioni come Cluster (prima casella) OnOff, in Attributi del cluster selezionato: start_up_on_off e per vedere cosa c’è impostato premi OTTIENI L’ATTRIBUTO ZIGBEE. Il valore lo trovi nella casella Valore. I possibili valori sono: StartUpOnOff.On, StartUpOnOff.Off e StartUpOnOff.PreviousValue.
      Per aggiornarne il valore, invece, devi inserire nella stessa casella Valore (NON in quella sotto Sostituzione codice produttore) i seguenti valori (ref):

      • 0x00 per impostare Off
      • 0x01 per impostare On
      • 0xff per impostare PreviousValue

      Quindi scrivi 0xff (per esempio) in Valore e premi IMPOSTA L’ATTRIBUTO ZIGBEE. Per verificare che l’abbia preso premi OTTIENI L’ATTRIBUTO ZIGBEE e verifica che il valore sia quel che ti aspetti.
      Fammi sapere se funziona, io provo con le mie Ikea! 🙂

  4. Claudio

    Grazie mille per la risposta. Allora, ho appena provato come consigliato ma cliccando su ottieni l’attributo zigbee e avendo selezionato start_up_on_off, mi viene sempre restituito il valore None (con tutti i miei dispositivi zigbee). Se provo ad impostare uno dei tre valori suggeriti 0x00 0x01 0xff non succede nulla e il valore rimane su None. Ho svariati dispositivi zigbee, tra cui un sonoff zbmini, diversi relè tuya, strisce led tuya e lampadine ma restituiscono tutti il medesimo valore None. A questo punto il problema risiede sul mio Dongle USB suppongo, il quale magari non permette la lettura e la scrittura di questi valori. Forte di questo pensiero ho infatti provveduto ad acquistare un Sonoff USB dongle Zigbee 3.0 con il quale magari risolverò il problema. Testerò il tutto appena riceverò il Dongle e Vi terrò aggiornati in merito. Ad ogni modo accetto volentieri ulteriori suggerimenti. Grazie mille 🙂

    1. Paolo

      Ciao Claudio,
      topic datato ma ho lo stesso problema: ho diverse lampade (IKEA, Ledvance, Osram) e alcuni modelli come Ledvance e Osram non memorizzano lo stato dopo un power shutdown (quando mi manca la corrente, al riavvio in maniera random si accendono, rimangono spente, cambiano temperatura colore bianco essendo impostabile). Ho la USB della Sonoff come gestore del Zigbee e mi accade lo stesso che a te, se leggo il parametro è in None e anche se lo modifico rimane tale).
      Hai più risolto? se si, come?
      Grazie per una risposta. Paolo.

  5. Ivan Cagol

    Ciao Henrik, sto avendo problemi con ZHA, questo è l’errore:

    Logger: homeassistant.components.zha.core.gateway
    Source: components/zha/core/gateway.py:152
    Integration: Zigbee Home Automation (documentation, issues)
    First occurred: 15:32:20 (25 occurrences)
    Last logged: 16:00:56

    Couldn’t start deCONZ = dresden elektronik deCONZ protocol: ConBee I/II, RaspBee I/II coordinator
    Traceback (most recent call last):
    File “/usr/local/lib/python3.9/asyncio/tasks.py”, line 492, in wait_for
    fut.result()
    asyncio.exceptions.CancelledError

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File “/usr/src/homeassistant/homeassistant/components/zha/core/gateway.py”, line 152, in async_initialize
    self.application_controller = await app_controller_cls.new(
    File “/usr/local/lib/python3.9/site-packages/zigpy/application.py”, line 69, in new
    await app.startup(auto_form)
    File “/usr/local/lib/python3.9/site-packages/zigpy_deconz/zigbee/application.py”, line 67, in startup
    self.version = await self._api.version()
    File “/usr/local/lib/python3.9/site-packages/zigpy_deconz/api.py”, line 463, in version
    (self._proto_ver,) = await self[NetworkParameter.protocol_version]
    File “/usr/local/lib/python3.9/site-packages/zigpy_deconz/api.py”, line 428, in read_parameter
    r = await self._command(Command.read_parameter, 1 + len(data), param, data)
    File “/usr/local/lib/python3.9/site-packages/zigpy_deconz/api.py”, line 313, in _command
    return await asyncio.wait_for(fut, timeout=COMMAND_TIMEOUT)
    File “/usr/local/lib/python3.9/asyncio/tasks.py”, line 494, in wait_for
    raise exceptions.TimeoutError() from exc
    asyncio.exceptions.TimeoutError

    puoi aiutarmi?

    1. Henrik Sozzi

      Sembrerebbe la conbee2 che non risponde. Era successo due volte anche a me e non so cosa diavolo l’abbia sbloccata. Avevo provato di tutto, compreso aggiornare il firmware e resettare la chiavetta col suo tool ma niente. Dopo un giorno abbondante… Si è ripresa. Stavo per buttarla dalla finestra. Prova a verificare se il firmware è aggiornato

  6. Mauro

    ciao, ottimo articolo complimenti. Sto pensando di passare da ZHA a zigbee2mqtt perché il primo non mi riconosce correttamente il tipo di valvola termostatica che ho acquistato (e che funziona benissimo con SmartLife). Prima di abbandonare ZHA faccio quindi questo tentativo chiedendoti un suggerimento.

    Uso da anni e funziona benissimo questo ZHA con tutti gli altri miei dispositivi, sfruttando un sonoff bridge patchato tasmota che da una parte “parla zigbee” e dall’altra si espone sulla WIFI attraverso la porta 8888, cui mi connetto da ZHA. Il problema è che ora invece di riconoscere correttamente tutte le entità (sensore di temperatura, umidità, switch on-off, sensore climate per impostare la temperatura…) me ne riconosce solamente 2 “unknown” che già disabilita in fase di pairing. Li posso anche abilitare forzatamente, ma poi mi segnano dei numeri che per me non hanno significato (161 e 45), ma anche lo avessero mi manca sempre l’entità per la regolazione della temperatura. Il device invece è accoppiato correttamente con il nome “_TZE200_a4bpgplm TS0601”.
    Acquistando queste valvole su AliExpress, non hanno nemmeno il nome del fornitore ma hanno sempre funzionato perfettamente, l’unico problema è questo modello (it.aliexpress.com/item/1005003246227640.html -ne ho prese 5 e il problema è con tutte loro, anche testate con HASSIO diversi).

    Devo davvero passare a zigbee2mqtt, installando broker + zigbee2mqtt + tasmota bridge? Che garanzie ci sarebbero che poi anche quello non riconosce questo dispositivo? Mi viene da dire che valga di più investire tempo per cercare di analizzare il problema in questo ambiente, da cui un tuo consiglio sarebbe super utile e gradito.

    Grazie

    1. Henrik Sozzi

      Ciao, puoi cercare il dispositivo sull’elenco non ufficiale (ma il più completo…) https://zigbee.blakadder.com/ su lì scopri se qualcuno l’ha già usato sulle varie piattaforme. Se non c’è non significa necessariamente che non funzioni ma che non è stato provato.
      Se vuoi investire tempo per far funzionare il device su ZHA… bravo! Spirito costruttivo nei confronti della piattaforma e quando possibile che non si ha assoluta urgenza è l’approccio giusto.
      Ti segnalo diversi modi per farlo:

      • Ti crei un tuo quirk, basandoti su uno esistente. I quirk sono file python che definiscono le non conformità con gli standard zigbee di ogni tipo di device esponendole in modo standard a ZHA. Le puoi creare nella cartella config così da modificarlo e testarlo agevolmente ma non ricordo più i dettagli. Tutte le informazioni le trovi comunque qui
      • Chiedi che venga implementato il dispositivo aprendo un issue contenente la firma del device e quel che eventualmente ti chiederanno. Immagino il log di pairing avendo attivato i dettagli di log (nella doc di ZHA c’è scritto come fare). Il repo è sempre questo

      Fammi sapere come va 🙂

  7. Mauro

    Grazie dei preziosi consigli Henrik, ho aperto la issue su zigpy.
    Per quanto riguarda il database ufficioso che hai linkato, in teoria questo modello zigbee.blakadder.com/Haozee_TRV601.html ha lo stesso manufacturer ID e model ID che trovo nella signature del mio (che ho anche inserito nella issue), anche se l’immagine della valvola è leggermente diversa. Sul portale si dice che è stato “testato per ZHA”, però resta il fatto che non viene riconosciuto correttamente, nonostante due installazioni indipendenti di ZHA e 5 valvole diverse.
    Fra l’altro qualcuno ha già segnalato un problema con il riconoscimento di quella valvola (github.com/zigpy/zha-device-handlers/issues/1159) quindi mi sono letto il post, ma a questo punto c’è un aspetto che ancora non ho chiaro: un utente suggerisce di aggiungere una riga dopo la 1061 del file zha-device-handlers/zhaquirks/tuya/ts0601_trv.py. Quindi mi chiedo: dove trovo questo file? Nella cartella /config che apro da Visual Studio Code non vedo una sottocartella zha-device-handlers, tantomeno un file da 1200 righe. Immagino che sia questo il file Python con il quirk di cui parlavi, Herik, ma non posso immaginare che mi debba scrivere un file di queste dimensioni per poi aggiungerci solo una riga con il device ID.

    1. Henrik Sozzi

      L’elenco di blakadder non è perfetto… Anche il mio telecomando Ting è riportato compatibile ma nei fatti non lo è ancora al 100%.
      Per modificare i quirk (io non l’ho mai fatto, vado a memoria di quanto letto tempo fa!) ci sono due modi:

      • Entrare nel container docker del core e andare a modificare il file oppure prendere un file simile, incollarlo e modificare solo quel che si vuole cambiare (questo dovrebbe essere specificato qui).
      • Fare un clone del repo di Home Assistant, prendere il quirk da cui partire nella relativa cartella del clone, copiarlo nella cartella di HA /config/custom_zha_quirks (eventualmente cambiandogli nome se prendi un file di un altro dispositivo) e inserire questa config nel tuo yaml (occhio che nei commenti non mantiene l’indentazione!):
        zha:
        custom_quirks_path: /config/custom_zha_quirks/

        Riferimento
  8. Mauro

    Detto, fatto:
    – scaricato il file che indicavo nel mio messaggio precedente github.com/zigpy/zha-device-handlers/blob/c5f1b2dd8f2a8e69fa2cd5e09bd9683ec4989fad/zhaquirks/tuya/ts0601_trv.py
    – modificato il file aggiungendo la signature del mio dispositivo dopo la riga 1061
    – copiato brutalmente quel file in una cartella /config/custom_zha_quirks che ho creato sul mio server
    – indicato la cartella in configuration.yaml

    Riavviato il server, ha riconosciuto “meglio” la valvola nel senso che vede 6 device invece di 2, compreso il sensore di temperatura e il climate per impostarla. Però per esempio la batteria è vista con un punto esclamativo.

    Ho visto il riferimento che mi hai dato, grazie. Ciò che continuo a non capire è perché mettono una singola frase “in this directory, create the python file with content of the quirk” tralasciando il piccolo particolare di dove si prende il file di partenza: io l’ho preso da quel post che avevo linkato (ma infatti funziona così/così), l’alternativa sarebbe crearne uno da zero da 1300 righe?
    Tu mi hai detto che potrei prenderlo da repo di HA, ma come faccio a identificare quello giusto? E in quale cartella lo trovo, non posso accedere in SSH alla VM Linux e andarmelo a prendere da lì? Ho provato ma non riesco a trovare questa cartella, probabilmente perché dovrei entrare nel container Docker.

    Allora sono andato sul repo di ZHA (non di HA) github.com/zigpy/zha-device-handlers/tree/dev/zhaquirks/tuya e lì ho trovato un file con lo stesso nome, più uno più recente con un nome simile (ts0601_trv_sas.py). Ho preso quest’ultimo, ho visto che non c’era nemmeno lì la mia signature, quindi ho cercato una classe che mi sembrava adeguata (Thermostat_TZE200_c88teujp, ma hanno tutte nomi molto simili), ho aggiunto lì la mia signature, riavviato ma… ahimé sempre uguale, vedo una sola parte dei device.

  9. ClaudioG

    Buonasera!!
    Dopo avere acquistato (e installato) il coordinator che tu consigli nell’altro articolo, approfittando di una gita fuori porta ho preso il mio primo device Zigbee:: la lampada led dell’IKEA.
    Ho seguito i tuoi consigli per l’installazione ma ZHA non la trova.
    Probabilmente perchè non so come si mette in modalità abbinamento visto che il manuale dice che il pulsante da premere si trova sul coordinator IKEA e la lampada va solamente… accesa.
    Qualche dritta o… ho buttato 23€?

    1. Henrik Sozzi

      Ciao, in genere la modalità di abbinamento viene chiamata “reset” o “reimpostazione”. Le lampade led intendi quelle con attacco E27? Se ben ricordo vanno spente e accese in rapida sequenza per 5 volte. Sai quel che ci hanno sempre detto di non fare con le lampadine per non bruciarle…? Ecco, quello 😂
      Se hai un interruttore che le accende (male! Guarda il video sul mio canale YouTube sulle luci) usa quello. Altrimenti svita e riavviare velocemente per ottenere il risultato.
      Se ancora non riesci fammi sapere il modello esatto e che prove hai fatto.

      1. ClaudioG

        Buongiorno.
        Si la lampada è la Tradfri led (quelle con attacco E27)

        Ho una 20na di lampade led WiFi che, notoriamente, vanno in abbinamento con una accensione pentupla.
        Nel manuale IKEA ciò non stà scritto e pertanto… non l’ho fatto.

        Dopo il tuo consiglio, manco a dirlo, tutto OK:

        Ora vediamo un po’ di studiare questo protocollo così tanto decantato…

        Grazie

  10. Salvuzzo

    Ciao Henrik, davvero complimenti per i tuoi tutorial su youtube e sul tuo sito. Hai il dono della chiarezza.
    Passiamo al mio problema.
    Sto pasticciando con Raspberry PI3 + ConBee II + pulsanti, sensori e lampade Tradfri IKEA. Così, per fare pratica. A 70 anni suonati mi serve per tenere i neuroni in attività.
    La prima installazione l’ho fatta con HAOS e Deconz, e andava così così, nel senso che ogni tanto mi perdeva tutta la configurazione dei dispositivi Zigbee e dovevo rifare il pairing. Poi ho deciso di spianare tutto e ripartire da zero, sempre con HAOS, ma stavolta con ZHA. Ma su tre pulsanti (shortcut button IKEA) me ne vedeva solo uno. Dopo averle provate tutte ho deciso di spianare di nuovo tutto e provare l’installazione con Docker. Però stavolta non riesco neanche ad installare ZHA, quando lancio la configurazione mi becca il primo dispositivo della lista (EZSP = Silicon Labs EmberZNet protocol: Elelabs, HUSBZB-1, Telegesis). Allora gli seleziono manualmente la voce “deCONZ = dresden elektronik deCONZ protocol: ConBee I/II, RaspBee I/II” e mi chiede “Enter the serial port settings”. Qui non so cosa rispondere, ma googlando qua e la ho scoperto questa stringa:
    “/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2191252-if00” ma il sistema la rifiuta dicendo: “Failed to connect”. Da riga di comando gli ho chiesto “lsusb” e lui mi ha risposto “Bus 001 Device 005: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II]”, segno che la chiavetta l’ha vista.

    1. Henrik Sozzi

      Ciao, grazie mille per il complimento, mi fa molto piacere! 🙂 E GRAZIE per la generosa donazione, hai stabilito il nuovo record, grazie davvero!!! E’ un aiuto concreto nelle spese per tenere vivo il sito e una gratificazione per me.
      Intanto complimenti per dedicarti a queste attività alla tua età, dimmi dove mettere la firma per esser certo di arrivarci io con quella lucidità…
      Partiamo dicendo che secondo me la scelta migliore, per la stabilità della rete zigbee se vuoi fare una cosa seria che funzioni nel tempo, è di avere un gateway esterno all’host di HA. O lo fai con un Raspberry Pi (anche vecchio) che hai in giro (qui il mio articolo) o prendi un hardware già fatto come la Z-Bee Duo che può comunicare via Ethernet o Wifi.
      Io ho il gateway dell’articolo e la mia rete zigbee è diventata una bomba. Puoi anche usare la conbee nel gateway. La differenza grossa secondo me la fa il fatto che il coordinator sia sempre online, anche quando riavvii o fai manutenzione sull’host di HA.
      Ma mettiamo da parte quanto sopra che è solo un consiglio dettato dall’esperienza fatta.
      Premetto che non ho mai provato HA con docker ma ho sempre solo usate HASSOS. Mi sembra molto strano però che con docker non potessi aggiungere l’integrazione di ZHA in quanto inclusa nel core, non c’è nulla di esterno. Non che sia necessario un qualche modulo python esterno che va aggiunto a mano (è la cosa bella di HASSOS, non bisogna pensare a queste cose!!!)
      Nella domanda riguardo la porta seriale devi mettere il percorso della seriale che su Linux si può esprimere in due modi: il percorso logico che vedi in /dev/ttyQUALCOSA (mi pare che il percorso di default sia /dev/ttyACM0 o /dev/ttyUSB0 ma verifica con ls /dev) e il percorso fisico che identifica l’hardware collegato che è /dev/serial/by-id/ID_HARDWARE. La seconda sintassi, nonostante sia consigliata, non l’ho mai usata quindi su quello non riesco ad aiutarti.
      Ma se metti il percorso della seriale tipo /dev/ttyUSB0 deve andare.
      Ti consiglio comunque di tornare ad HASSOS, almeno le rogne sistemistiche le dimentichiamo… 😉

  11. daniele

    Buongiorno Henrik, sto cercando di capire se un dispositivo (Tuya 16A MINI Zigbee Smart Switch) riconoscito da zha come light è possibile configurarlo come switch, ho capito che in zigbee2mqtt la cosa è possibile con un settaggio di configurazione, e in zha? Grazie in anticipo

  12. daniele

    Grazie Henrik, avrei dovuto leggere meglio la documentazione, sorry. Come sempre perfetto, è in un attimo e diventa switch! thanks

  13. claudio

    Buonasera Henrik, ho acquistato una placca interruttore da Ali express, durante la configurazione viene riconosciuta come TS0601, che nelle liste si tratta di una valvola termostatica. Come posso forzare il riconoscimento al modello TS0003, come le altre placche in mio possesso?
    Grazie

    1. Henrik Sozzi

      Ciao Claudio scusa il ritardo della risposta. Purtroppo non ho una soluzione, non mi è mai capitata una cosa del genere e non trovo un modo per forzare il riconoscimento di un device differente. Credo che la tua possibilità migliore sia quella di aprire un issue nel repo di Home Assistant.

  14. marcoeliuMarco

    Ciao Henrik, ho provato a cambiare canale sul 25 modificando il file di configurazione e riavviando HA, ma ZHA mi dà sempre il canale 15 che penso sia quello di default. Mi sono perso qualcosa?

    1. Henrik Sozzi

      Purtroppo sembra non sia possibile cambiare canale dopo che la rete è già stata formata, con zha ed anche con zigbee2mqtt. Dovresti eliminare del tutto l’integrazione, impostare il canale, riavviare e a quel punto riaggiungere tutto. …si lo so cosa stai pensando perchè è la stessa che sto pensando anch’io scrivendolo… Però questo è. 😓

      1. marco

        Infatti, ho fatto proprio così grazie; siccome sono all’inizio e sto sperimentando, ho prima aggiornato configuration.yaml poi ho eliminato l’integrazione, cancellato il file zigbee.db e poi riaggiunto il tutto. Ora il canale è 25. Posso farti una domanda un po’ OT ? ma c’è qualche guida al linguaggio YAML ? sarebbe veramente utile per chi inizia. Grazie. Ancora complimenti.

        1. Henrik Sozzi

          Secondo me, ad oggi, la risorsa migliore è la documentazione di Home Assistant, a partire da qui: https://www.home-assistant.io/docs/configuration/
          Poi credo possa essere utile questo articolo di Vito Antonucci: https://www.vitoantonucci.it/2021/03/home-assistant-costruiamo-le-fondamenta/ in particolare riguardo al capitolo “i packages”. Non condivido tutto quel che dice Vito ma da comunque delle buone basi.
          Poi, quando avrai maturato un po’ di esperienza, prova a dare un occhio ai miei articoli multinotify ed altri dove spiego sempre lo yaml usato, cosa fa e perchè, proprio nell’ottica di dare esempi concreti e spiegarne il funzionamento.
          Avrei una mezza intenzione di fare un corso da zero a un livello base per quanto riguarda le automazioni, yaml, script, logica, ecc. ma il tempo è quel che mi manca… Vedremo… 😉

  15. marco

    Scusa Henrik, un’altra domanda che penso possa essere utile a molti altri utenti: ma se non si nomina subito in fase di prima configurazione il dispositivo ZigBee, dopo non è più possibile farlo in alcun modo? Mi sembra strano… sono andato un po’ a naso ma non ho trovato una sezione di HA dove farlo. Bisogna necessariamente eliminare il dispositivo e riassociarlo al Coordinator? Grazie.

    1. marco

      Ieri alle 23.19…. dispositivo ZigBee non più disponibile, mi dava come evento “zha event was fired”; ho dovuto ripetere la configurazione, questa volta sono passato al canale 26 (l’ultimo disponibile mi pare…) spero che l’indisponibilità non sia dovuta veramente ad un accavallarsi dei canali, perchè altrimenti sarebbe un bel problema, forse l’unico vero handicap del protocollo zigbee. Ma l’evento “zha event was fired” che significato ha di preciso?

      1. Henrik Sozzi

        Ciao, non credo che il canale sia il problema (a meno che non ci sia una portante continua come con i ripetitori di segnale audio/video che si è acceso in quel momento…)
        Di solito le interferenze si manifestano con packet drop, apri la finestra e lo stato non si aggiorna, poi lo rifai e si aggiorna.
        Zha event was fired credo si riferisca al fatto che un aggiornamento di stato sui sensori sia stato rilevato e quindi inviato ad ha come evento (tutti i cambi stato passano dall’evento state_changed), inoltre zha invia un proprio evento per i dati non riassumibili (ad esempio le gesture sui telecomandi) tramite l’evento zha_event.
        Parrebbe quindi che il tuo device si sia sconnesso subito dopo aver comunicato qualcosa.
        Mi vien da pensare ad un problema di routing. Non tutti i dispositivi ZigBee sono ben compatibili tra loro e spesso quel che accade è proprio che i device che si collegano ad un router non compatibile al 100% esca dalla rete.
        Mi è capitato di leggere di questi comportamenti da dispositivi BTicino, ad esempio.
        Cmq si, la sovrapposizione con la frequenza del wifi è davvero una piaga di ZigBee… Zwave molto meglio con le frequenze, ma i prezzi… 😢

  16. marco

    Il dispositivo in questione è un Aqara sensore porte finestre; il router è FritzBox 7590 con 2.4 su canale fisso 1. Il coordinator è Conbee II

    1. Henrik Sozzi

      No, non intendevo router wifi (che nulla ha a che fare con l’impianto ZigBee), intendevo router ZigBee ovvero tutti i dispositivi alimentati che estendono automaticamente il segnale mesh. Dispositivi quali prese comandate, lampadine smart, attuatori, dispositivi da quadro elettrico, ecc. Alcune marche non sono tanto compatibili con gli standard e non funzionano bene insieme a marchi diversi, tra cui BTicino ma anche altri.

      1. Riccardo

        Ciao Henrick. Ho un problema con la chiavetta sonoff che utilizzo come repeated. Il coordinator è un comber II. Vedendo il log va offline ogni volta che c’è un “ZHA event was fired”. Me ne accorgo perché tutti i dispositivi che si collegavano al router vanno down. Per far ripartire il repeater devo premere riconfigura.
        Per caso sai se c’è un modo per riconfigurato tramite automazione quando è down?

  17. marco

    Ok ma nel mio caso l’unico dispositivo zigbee che ho al momento è l’aqara sensore finestra che si collega al coordinator conbee II a sua volta collegato con una prolunga usb al minipc dove ho installato ha.

  18. marco

    ehm… non lo so; installata qualche giorno fa. Ora vedo di capire come verificare se il firmware è aggiornato ed eventualmente faccio l’upgrade. Dall’interfaccia di Home Assistant non mi sembra si possa fare…

  19. marco

    ho verificato e il firmware risulterebbe già aggiornato in quanto dopo avergli dato il comando non dà nessun risultato. Non so se ho fatto bene, ma per scollegare la conbee dal minipc ho arrestato prima HA e poi rimossa la chiavetta per collegarla al pc windows; magari non c’era bisogno, non so…

    1. Henrik Sozzi

      Non c’è bisogno di spegnere per togliere la chiavetta (è un dispositivo seriale su USB), ad ogni modo ti consiglio di verificare bene la versione riportata da ZHA se corrisponde all’ultima dell’elenco dei firmware perchè quell’utility ogni tanto faceva scherzi (è un po’ che non la uso più, non uso più la conbee). Se non è l’ultima riprova l’update.
      Mi sembra strano sia aggiornata perché rilasciano aggiornamenti abbastanza frequenti a meno che tu l’abbia appena comprata o abbiano smesso di rilasciarli così spesso.

  20. massimo

    ciao come elimino delle entità che non sono piu presenti?

    1. Henrik Sozzi

      Entri nel dispositivo, premi i tre puntini in “informazioni dispositivo” e scegli “rimuovi”.

  21. Graziano

    Ciao Henrik, scusa forse l’argomento è un po’ off-topic.
    Ho integrato dei pulsanti ika tramite zha, no gateway ikea.
    Tramite bluprint li uso per accendere delle luci.
    Stavo iniziando a vedere Node Red ma pur trovando l’entità button relativa non so come utilizzarli perché lo stato risulta sempre unknown. Hai qualche suggerimento in merito?
    Grazie e scusa per l’off-topic.

    1. Henrik Sozzi

      Ciao, non ti preoccupare, finchè parliamo di domotica non siamo per niente off topic! 🙂
      Allora, NodeRed io non lo uso, sarà un po’ deformazione professionale ma da programmatore tendo ad odiare i tool grafici che permettono di creare flussi di programmazione. Preferisco il buon codice. Non dico che sia l’unica via eh, però è la mia.
      Per cui su NodeRed non so aiutarti. Però ti posso dare due suggerimenti:
      1) per usare i telecomandi io ho fatto così ed è un approccio leggerissimo (che non richiede alcun addon esterno) e funziona molto bene: https://henriksozzi.it/2021/05/telecomandi-zigbee-impariamo-ad-usarli/
      2) se le luci che devi comandare sono anch’esse zigbee ti consiglio di provare ad usare prima di tutto il binding, che funziona anche senza Home Assistant (il telecomando colloquia direttamente con la luce): https://henriksozzi.it/2021/03/binding-zigbee-con-zha-in-home-assistant/
      In bocca al lupo 🙂

      1. Graziano

        Grazie mille!

        1. Pietro

          Ciao Henrik, volevo ringraziarti per l’ottimo articolo con cui sono riuscito a stabilizzare la mia rete ZigBee. Molto esaustivo e chiaro in ogni passaggio

          1. Henrik Sozzi

            Grazie mille! Fa molto piacere sapere che il tempo impiegato per scrivere queste informazioni sia stato utile 😊👍🏻

  22. Marco

    Ciao Henrik, forse sono un po’ OT ma volevo chiederti un parere sul protocollo Thread. Ho preso il nuovo sensore Aqara porte e finestre P2 e sono riuscito a collegarlo direttamente con HA. Sempre in tema di sovrapposizione di canali tra ZigBee e WiFi, volevo sapere se anche Thread poteva avere un problema di questo tipo. Ho visto che il vantaggio è simile a ZigBee, cioè la comunicazione è immediata e il consumo batteria dovrebbe essere irrisorio. Rimane però questo dubbio su chi vince tra WiFi e Thread… Grazie!

    1. Henrik Sozzi

      Ciao Marco, una curiosità: che gateway thread usi?
      In merito alla tua domanda, si, thread per comunicare usa lo standard IEEE 802.15.4 (lo stesso di ZigBee), ma i pacchetti sono formattati con un altro protocollo, nello specifico 6LoWPAN che permette di comunicare direttamente su ip, raggiungendo anche il Cloud (cosa che su ZigBee non è possibile).
      Le problematiche di sovrapposizione frequenze nella banda 2.4GHz sono del tutto uguali a ZigBee, quindi. Compreso il fatto che tra wifi e thread (se comunicano contemporaneamente sulla stessa frequenza) vince sicuramente wifi per via della maggior potenza in antenna.

      1. Marco

        Ho dapprima aggiunto il dispositivo in Apple Home (ho un HomePod mini che mi pare sia uno dei gateway previsti); poi l’ho eliminato da lì e dall’aggiunta di nuova integrazione ho scelto “Aggiungi dispositivo Matter” e praticamente ho rifatto l’associazione con scansione qr code come già fatto in precedenza con Apple Home. Quindi il gateway quale sarebbe a questo punto? HA stesso oppure HomeKit? Poco tempo fa ho risolto il problema Velux (che non ha un’integrazione in HA) proprio facendo la stessa procedura: aggiunti dispositivi in Apple Home (ho il gateway Velux Active) e poi eliminandoli da lì sono stati visti in HomeKit Controller (integrazione in HA); in questo modo penso non vadano più sul cloud ma lavorino in locale, almeno spero… Non so se ho risposto in modo soddisfacente alla tua domanda.

        1. Marco

          Inoltre, considerato che ha lo stesso problema di ZigBee (sovrapposizione canale con wifi 2.4) e visto che con ZigBee è possibile intervenire a livello di configuration.yaml nel settare il canale manualmente, non ho capito se con Thread è possibile fare la stessa cosa (e dove) e se a questo punto utilizza lo stesso canale che si è impostato per ZigBee.

          1. Henrik Sozzi

            Si, con Thread è possibile impostare il canale di comunicazione (basandosi sullo stesso standard le regole a livello di protocollo a basso livello sono le stesse) ma non ho idea nell’HomePod mini dove si possano impostare.

          2. Marco Maremonti

            Da un po’ di ricerche su Internet (non ho trovato granchè…) sembrerebbe che Thread utilizzi lo stesso canale che si è impostato con Zigbee. Però la cosa strana è che nel mio HA ho l’integrazione Matter (beta) e l’integrazione Thread; ma il dispositivo in questione (Aqara Door and Windows sensor P2) lo vedo solo sotto l’integrazione Matter, ma sotto Thread non vedo niente. L’integrazione Matter (beta) è visibile forse dopo che ho installato il componente aggiuntivo Matter Server… non so.

        2. Henrik Sozzi

          Ah ok, li hai aggiunti da HomePod mini che include thread (quindi il gateway è l’homepod mini). Nel caso delle velux invece con HomeKit controller Home Assistant “fa finta” di essere HomeKit e quindi comunica in locale con i device si.
          Spero di aver detto tutto correttamente che non ho device Apple quindi non ho mai provato di persona.

          1. Marco

            Si tutto corretto. Pensa che ci stavo sbattendo da parecchio per integrare le Velux in HA; poi da qualche parte ho letto che con questo “trucchetto” (quindi di farli passare da HomeKit e poi eliminarli) per magia HA li vedeva…) ho risolto un grande problema. Ora posso integrare le Velux nelle automazioni ed è molto comodo. Penso che si possa fare con tutti quei dispositivi che non hanno l’integrazione nativa in HA ma sono visti in HomeKit. Tieni presente che ho potuto farlo perchè ho il sistema Velux Active che funge da gateway altrimenti con i telecomandi vecchi di Velux non si può fare (funzionano solo in RF 833 e non sono visibili in rete).

          2. Marco

            Solo per una precisazione: il telecomando Velux funziona in RF a 868 Mhz…

  23. Paolo

    Ciao Henrik, ottimo articolo.
    Ho provato l’altro ieri sera ad aggiungere sulla configuration.yaml l’abilitazione per gli aggiornamenti OTA dei dispositivi IKEA e LEDVANDE collegate al dispositivo ZB della Sonoff (la chiavetta USB per intenderci).
    Non so se casualmente o per quell’aggiornamento sto riscontrando problemi sui Tradfri IKEA Motion Sensor che sembrano impazziti: alcuni vanno offline, altri segnano movimento e restano così per lungo tempo finchè non vanno offline etc…
    Ho provato a riaccoppiarli al Sonoff, li vede, li riconosce come prima (provato sia riaccoppiando senza eliminarli in precedenza che eliminarli e poi riaccoppiarli) ma alcuni funzionano in maniera parziale (la batteria segna per esempio 200% o 170% random) ma almeno la funziona la fanno, altri (uno in particolare) li riesco a riaccoppiare ma resta con sensore movimento attivo…
    Che sia l’aggiornamento che ha creato problemi? forse ha mandato in tilt la loro configurazione? E’ possibile resettare a condizioni di fabbrica o ripristinarli in qualche modo? altrimenti mi tocca buttarli…

  24. Michele

    volevo solo ringraziarti per la guida grazie a te sono riuscito a configurare il tutto. GRAZIE davvero

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.