Questo sito si serve dei cookie tecnici di Google per l'erogazione dei servizi e ospita cookie di profilazione di terze parti, utilizzati per la personalizzazione degli annunci pubblicitari. Cliccando su "OK" o proseguendo nella navigazione si acconsente tacitamente al loro uso.
Informativa estesa

Cookie Policy

Uso dei cookie

Il "Sito" (www.vincenzocaputo.com) utilizza i Cookie per rendere i propri servizi semplici e efficienti per l’utenza che visiona le pagine di www.vincenzocaputo.com. Gli utenti che visionano il Sito, vedranno inserite delle quantità minime di informazioni nei dispositivi in uso, che siano computer e periferiche mobili, in piccoli file di testo denominati “cookie” salvati nelle directory utilizzate dal browser web dell’Utente. Vi sono vari tipi di cookie, alcuni per rendere più efficace l’uso del Sito, altri per abilitare determinate funzionalità.

Analizzandoli in maniera particolareggiata i nostri cookie permettono di:

  • memorizzare le preferenze inserite;
  • evitare di reinserire le stesse informazioni più volte durante la visita quali ad esempio nome utente e password;
  • analizzare l’utilizzo dei servizi e dei contenuti forniti da www.vincenzocaputo.com per ottimizzarne l’esperienza di navigazione e i servizi offerti.

Tipologie di Cookie

Cookie tecnici

Questa tipologia di cookie permette il corretto funzionamento di alcune sezioni del Sito. Sono di due categorie: persistenti e di sessione:

  • persistenti: una volta chiuso il browser non vengono distrutti ma rimangono fino ad una data di scadenza preimpostata
  • di sessione: vengono distrutti ogni volta che il browser viene chiuso

Questi cookie, inviati sempre dal nostro dominio, sono necessari a visualizzare correttamente il sito e in relazione ai servizi tecnici offerti, verranno quindi sempre utilizzati e inviati, a meno che l’utenza non modifichi le impostazioni nel proprio browser (inficiando così la visualizzazione delle pagine del sito).

Cookie analitici

I cookie in questa categoria vengono utilizzati per collezionare informazioni sull’uso del sito. www.vincenzocaputo.com userà queste informazioni in merito ad analisi statistiche anonime al fine di migliorare l’utilizzo del Sito e per rendere i contenuti più interessanti e attinenti ai desideri dell’utenza. Questa tipologia di cookie raccoglie dati in forma anonima sull’attività dell’utenza e su come è arrivata sul Sito. I cookie analitici sono inviati dal Sito Stesso o da domini di terze parti.

Cookie di analisi di servizi di terze parti

Questi cookie sono utilizzati al fine di raccogliere informazioni sull’uso del Sito da parte degli utenti in forma anonima quali: pagine visitate, tempo di permanenza, origini del traffico di provenienza, provenienza geografica, età, genere e interessi ai fini di campagne di marketing. Questi cookie sono inviati da domini di terze parti esterni al Sito.

Cookie per integrare prodotti e funzioni di software di terze parti

Questa tipologia di cookie integra funzionalità sviluppate da terzi all’interno delle pagine del Sito come le icone e le preferenze espresse nei social network al fine di condivisione dei contenuti del sito o per l’uso di servizi software di terze parti (come i software per generare le mappe e ulteriori software che offrono servizi aggiuntivi). Questi cookie sono inviati da domini di terze parti e da siti partner che offrono le loro funzionalità tra le pagine del Sito.

Cookie di profilazione

Sono quei cookie necessari a creare profili utenti al fine di inviare messaggi pubblicitari in linea con le preferenze manifestate dall’utente all’interno delle pagine del Sito.

www.vincenzocaputo.com, secondo la normativa vigente, non è tenuto a chiedere consenso per i cookie tecnici e di analytics, in quanto necessari a fornire i servizi richiesti.

Per tutte le altre tipologie di cookie il consenso può essere espresso dall’Utente con una o più di una delle seguenti modalità:

  • Mediante specifiche configurazioni del browser utilizzato o dei relativi programmi informatici utilizzati per navigare le pagine che compongono il Sito.
  • Mediante modifica delle impostazioni nell’uso dei servizi di terze parti

Entrambe queste soluzioni potrebbero impedire all’utente di utilizzare o visualizzare parti del Sito.

Siti Web e servizi di terze parti

Il Sito potrebbe contenere collegamenti ad altri siti Web che dispongono di una propria informativa sulla privacy che può essere diverse da quella adottata da www.vincenzocaputo.com e che che quindi non risponde di questi siti.

Ultimo aggiornamento 8 marzo 2016

<

Come disabilitare i cookie mediante configurazione del browser

Se desideri approfondire le modalità con cui il tuo browser memorizza i cookies durante la tua navigazione, ti invitiamo a seguire questi link sui siti dei rispettivi fornitori.

Mozilla Firefox https://support.mozilla.org/it/kb/Gestione%20dei%20cookie
Google Chrome https://support.google.com/chrome/answer/95647?hl=it
Internet Explorer http://windows.microsoft.com/it-it/windows-vista/block-or-allow-cookies
Safari 6/7 Mavericks https://support.apple.com/kb/PH17191?viewlocale=it_IT&locale=it_IT
Safari 8 Yosemite https://support.apple.com/kb/PH19214?viewlocale=it_IT&locale=it_IT
Safari su iPhone, iPad, o iPod touch https://support.apple.com/it-it/HT201265

Nel caso in cui il tuo browser non sia presente all'interno di questo elenco puoi richiedere maggiori informazioni inviando una email all'indirizzo info@nibirumail.com. Provvederemo a fornirti le informazioni necessarie per una navigazione anonima e sicura.

Questa pagina è stata generata ed è ospitata sul portale nibirumail.com - Il contenuto di questa pagina è stato generato 08 marzo 2016 attraverso il servizio Cookie Policy Generator. Il marchio Nibirumail e le aziende ad esso collegate non sono responsabili per informazioni erronee o non più aggiornate. Se desideri ricevere una versione aggiornata di questi contenuti contatta il proprietario di dalla pagina precedente.

OK

L'angolo dei lettori

Installazione chiavetta USB ZiGBEE su RPi

Autore: Vincenzo Caputo | Data: 08 ottobre 2018

Benvenuti nella rubrica "l'angolo dei lettori". Questo spazio altro non è che una sezione del blog che permette a chiunque di scrivere un articolo o realizzare un video, effettuare prove e test che riguardano il mondo della tecnologia e proporne la pubblicazione su queste pagine.

Oggi Gianpiero Ammendola, che ringraziamo per questa splendida guida, ci spiegherà come configurare una chiavetta USB Zigbee su Raspberry al fine di realizzare un hub per dispositivi compatibili. In pratica con un’unica chiavetta potremmo controllare per esempio PIR e sensori Porta/Finestra Xiaomi, luci Philips Hue e Ikea Tradfri senza dover acquistare 3 diversi gateway.

Requisiti

Conoscenze dell’utente

Conoscenza degli strumenti di base dei sistemi Linux ed utilizzo di editor come nano.

Requisiti tecnici

I requisiti hardware sono:

I requisiti software sono:

  • Broker MQTT tipo Mosquitto installato su Raspberry o broker integrato nel controller domotico (ad esempio Home Assistant): potete seguire la guida pubblicata qui: (https://www.vincenzocaputo.com/picoblog/view/66/installare_mqtt_broker_su_raspberry)

  • Software di domotica (Controller), in questa guida vedremo i passaggi per utilizzare Home Assistant, ma è possibile utilizzare anche altri controller come Domoticz

Installazione firmware custom su USB Sniffer

Il primo passo consiste nel caricare (“flashare”) un firmware custom sulla chiavetta USB zigbee, per fare questo ci sono almeno due modalità:

  1. Utilizzo del CC Debuggerr che è la strada che seguiremo in questa guida
  2. Utilizzo di ESP8266/Arduino, per le guide potete cercare su Google.

Anche utilizzando il CC Debuggerr abbiamo due strade a disposizione:

Flash con MacOS / Linux

È la strada che ho seguito io, utilizzando un iMac, i passaggi sono i seguenti:

  1. Installare le seguenti librerie (per MacOS è neccesario Brew):

    • Ubuntu: libusb-1.0, libboost-all-dev

    • Fedora: boost-devel, libusb1-devel

    • MacOS: libusb boost pkgconfig

  2. Costruzione del cc-tool:

git clone https://github.com/dashesy/cc-tool.git

cd cc-tool

./configure

make

  1. Collegare tra loro CC Debugger, cavetto e chiavetta CC2531

  2. Collegare sia CC Debugger che CC2531 a due porte USB sul PC

  3. Scaricare da qui (https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/CC2531/bin) il firmware CC2531ZNP-Prod.hex

  4. Flashare il firmware con il commando: sudo ./cc-tool -e -w CC2531ZNP-Prod.hex

Flash con Windows

  1. Installare il programmatore SmartRF Flash (http://www.ti.com/tool/FLASH-PROGRAMMER) (non la versione 2). Questo software è gratuito ma richiede un account per il download.

  2. Installare il driver (http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=swrc212&fileType=zip) per il CC Debuggerr CC sul PC Windows. Prima di continuare, verificare che il driver CC Debuggerr sia stato installato correttamente facendo riferimento alla guida Texas Iinstruments (http://www.ti.com/lit/ug/swru197h/swru197h.pdf). Nel caso in cui il CC Debugger non venga riconosciuto correttamente, occorre installare il driver manualmente, come riportato qui: https://www.youtube.com/watch?v=jyKrxxXOvQY.

  3. Collegare tra loro CC Debugger, cavetto e chiavetta CC2531

  4. Collegare sia CC Debugger che CC2531 a due porte USB sul PC

  5. Se la spia sul CC Debugger è ROSSA, premere il pulsante di reset e verificare che la luce diventi VERDE. (N.B a me con il Mac la luce è rimasta rossa e il flashing del firmware è andato comunque a buon fine)

  6. Scaricare da qui (https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/CC2531/bin) il firmware CC2531ZNP-Prod.hex

  7. Flashare il firmware con SmartRF Flash come nell’immagine di seguito.

Configurazione della chiavetta USB zigbee

Per semplicità la guida ipotizza che la chiavetta sia collegata ad un Raspberry Pi3 con OS Raspian Stretch (in particolare ho utilizzato un RPi3 con Hassbian basato sulla distro Stretch).

Verifica installazione chiavetta

Per prima cosa occorre collegare la chiavetta USB zigbee precedentemente “flashata” con il custom firmware ad una porta USB del Raspberry e verificare quale sia il device di comunicazione, di solito /dev/ttyACM0

pi@hassbian:~/HA$ ls -l /dev/ttyACM0

crw-rw---- 1 root dialout 166, 0 Sep 18 16:33 /dev/ttyACM0

Installazione node.js e NPM

Verificate se non abbiate già installati node.je e NPM:

pi@hassbian:~/HA$ npm -version

5.6.0

pi@hassbian:~/HA$ node --version

v8.11.3

Se non lo fossero procedete all’installazione:

#Setup del repository Node.js

sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

# Installazione Node.js

sudo apt-get install -y nodejs git make g++ gcc

Una volta verificato che NPM e node.js siano installati, si procede all’installazione del package zigbee2mqtt:

# Clonazione del repository zigbee2mqtt

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

sudo chown -R pi:pi /opt/zigbee2mqtt

# Installazione  

cd /opt/zigbee2mqtt

npm install

Dopo numerosi messaggi di warning l’installazione si concluderà con il numero di package installati

Configurazione zigbee2mqtt.

Finalmente siamo arrivati alla parte conclusiva della configurazione, occorre ora inserire i parametri affinché il modulo zigbee2mqtt comunichi con il broker MQTT, editando il file configuration.yaml (NON quello di Home Assistant) con il seguente comando:

sudo nano /opt/zigbee2mqtt/data/configuration.yaml

I parametri da inserire saranno user e password, se necessari, l’indirizzo IP o localhost del broker MQTT e la porta dove è collegata la chiavetta USB.

homeassistant: true
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://localhost' #o indirizzo IP del RPI3
  user: USER
  password: PASS
serial:
  port: /dev/ttyACM0

Dopo aver inserito i parametri salvare e chiudere il file.

Eccoci quindi all’avvio del software, occorre digitare:

cd /opt/zigbee2mqtt

npm start

Se è tutto Ok vedrete qualcosa tipo questo: (CTRL + C per uscire):

2018-9-18 18:35:09 INFO zigbee-shepherd ready

2018-9-18 18:35:09 INFO Connected to MQTT server

Utilizzo del gestore di servizi systemd

Avviare a mano zigbee2mqtt non è una buona idea, molto meglio far gestire a systemd il software zigbee2mqtt come daemon che gira in background, ecco come fare:

# Creare il file di configurazione per zigbee2mqtt

sudo nano /etc/systemd/system/zigbee2mqtt.service

# Inserire i seguenti comandi nel file appena creato

[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target

Salvare il file ed uscire.

Ora si può avviare il daemon e verificare che funzioni:

# caricare la configurazione systemd

sudo systemctl daemon-reload

# Avviare zigbee2mqtt

sudo systemctl start zigbee2mqtt.service

# Mostrare lo stato

sudo systemctl status zigbee2mqtt.service

Se va tutto bene dovreste vedere qualcosa come di seguito, importate è lo stato active (running):

● zigbee2mqtt.service - zigbee2mqtt

  Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)

  Active: active (running) since Tue 2018-09-18 21:23:30 CEST; 1 day 12h ago

Main PID: 582 (npm)

  CGroup: /system.slice/zigbee2mqtt.service

          ├─582 npm

          ├─878 sh -c node index.js

          └─879 node index.js

Per rendere effettiva la configurazione ad ogni riavvio, occorre digitare il seguente comando:

sudo systemctl enable zigbee2mqtt.service

Corretta inizializzazione dei servizi

Affinché Home Assistant funzioni correttamente occorre rispettare la giusta sequenza di avvio dei vari servizi che partono ad ogni reboot del Raspberry: il motivo è che se il daemon home-assistant@homeassistant parte prima di quello zigbee2mqtt Home Assistant non riconoscerà i sensori.

Quindi la giusta sequenza di avvio dei servizi deve essere la seguente:

mqtt (mosquitto) --> zigbee2mqtt --> homeassistant

Per fare questo occorre inserire dei comandi nei file di configurazione dei daemon nella sottosezione [Unit]:

# in /etc/systemd/system/zigbee2mqtt.service

After=network.target mosquitto.service

# in /etc/systemd/system/home-assistant@homeassistant.service

After=network.target mosquitto.service zigbee2mqtt.service

Il problema che si presenta è che il broker MQTT Mosquitto sia configurato con il gestore di servizi init.d e non con systemd, è quindi necessario configurare correttamente Mosquitto con systemd, ecco la procedura:

# Cancellare lo script init.d

sudo systemctl stop mosquitto

sudo update-rc.d mosquitto remove

sudo rm /etc/init.d/mosquito

# Creare il file di configurazione systemd usando l’editor nano

sudo nano /etc/systemd/system/mosquitto.service

#Inserire i seguenti comandi nel file appena creato

[Unit]

Description=MQTT v3.1 message broker

After=network.target

Requires=network.target

[Service]

Type=simple

ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Restart=always

[Install]

WantedBy=multi-user.target

Salvate e uscite, quindi avviate la sequenza di comandi il mosquitto.service:

# caricare la configurazione systemd

sudo systemctl daemon-reload

# Avviare mosquitto

sudo systemctl start mosquitto.service

# Mostrare lo stato

sudo systemctl status mosquitto.service

se è andato tutto bene vedrete qualcosa come di seguito:

● mosquitto.service - MQTT v3.1 message broker

  Loaded: loaded (/etc/systemd/system/mosquitto.service; enabled; vendor preset: enabled)

  Active: active (running) since Tue 2018-09-18 21:23:30 CEST; 1 day 13h ago

Main PID: 579 (mosquitto)

  CGroup: /system.slice/mosquitto.service

          └─579 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Pairing dei device Zigbee

Siamo arrivati finalmente alla fine della guida: la chiavetta USB zigbee è stata configurata con il custom firmware, il Rasperry è stato configurato con i vari componenti software, ora si può disaccoppiare il device domotico dal suo gateway/bridge proprietario e accoppiarlo (“pairing”) alla chiavetta.

Ogni famiglia di prodotti ha la sua procedura di unpairing-pairing, di seguito vi scrivo quella per device Xiaomi testata con il cubo Aqara:

  • tenere premuto il tastino o premere con lo spillino per 5 secondi, il sensore deve fare 3 blink blu,

  • rilasciare il tastino, verificare che faccia un altro blink singolo, aspettare 1 secondo e verificare che ne faccia altri 3 veloci (questo è il segnale che il sensore riesce a vedere qualcosa a cui accoppiarsi).

  • subito dopo i tre veloci cliccare di nuovo in modo da far riaccendere il led e ogni volta che si spegne va ripremuto il tasto fino a che il device non è accoppiato, se il paring non va a buon fine, occorre ricominciare il procedimento da capo.

La procedura sembra complicata ma in realtà con un paio di tentativi dovrebbe andare. Per verificare il pairing si può controllare con sudo systemctl status zigbee2mqtt.service ci saranno dei messaggi con lo stato della procedura.

Se in Home Assistant è configurato l’auto discovery dei device MQTT vedrete dei sensori con il formato sensor.0x0015xxxxxxxxxxxx .

Esempio di automazione con Home Assistant

Una volta correttamente riconosciuti da HA possiamo creare tutte le automazioni che vogliamo, ad esempio propongo questa per aumentare la luminosità di una lampadina Yeelight con il cubo Xiaomi Aqara:

automation:
  - alias: aumenta luminosita luce ingresso con cubo
    trigger:
      platform: mqtt
      topic: 'zigbee2mqtt/0x0015xxxxxxxxxxxx'
    condition:
    - condition: template
      value_template: "{{ 'rotate_right' == trigger.payload_json.action }}"
    - condition: state
      entity_id: light.yeelight_luce_ingresso
      state: 'on'
    action:
    - service: light.turn_on
      entity_id: light.yeelight_luce_ingresso
      data_template:
        brightness: >-
       {{ states.light.yeelight_luce_ingresso.attributes.brightness | round(0) + 50 }}

Per diminuire la luminosità si può creare un’altra automazione che intercetta l’evento “rotate_left”.

STAMPA LA COVER PER LA CHIAVETTA IN 3D

Ciliegina sulla torta: Sandrin Enrico ha gentilmente realizzato per vincenzocaputo.com dei file STL personalizzati con il nostro logo, da stampare in 3D, per realizzare la custodia della chiavetta ZigBee utilizzata per questo progetto. Ringraziamo veramente di cuore Enrico per questa sua stupenda iniziativa. Di seguito potete vedere anche il rendering che ha realizzato e potete scaricare i file STL da stampare in 3D.

https://drive.google.com/open?id=1V2mxNBpBuPV_kky2Jx05nA1ZZGOPDeo3 

https://drive.google.com/open?id=1XuI9ZYJTONtefTeSBewv3_mBUabTRjKp

https://drive.google.com/open?id=1BrRK4KyMFb2hQGDlsyudpNWOUQBRv3tH

https://drive.google.com/open?id=1-fGnOSmIE0XxDmTVWWftVN24BNfBthOx

Appendice

Credits

La guida si basa in gran parte sulla wiki pubblicata su github in lingua inglese: https://github.com/Koenkk/zigbee2mqtt

HASS.io

Per Hass.io è disponibile un add-on ufficiale, qui potete trovare le info necessarie: https://github.com/danielwelch/hassio-zigbee2mqtt



 



domotica
Raspberry
Home Assistant
casa domotica
ZigBee

Seguimi su Youtube

Seguimi su Youtube

Seguimi su Youtube

Seguimi su Telegram

Seguimi su Youtube

Seguimi via RSS

Consigliati da noi

Post piu letti

Autoradio Android ATOTO A61721P - La Prova
Funzionamento Relè eMylo come deviatore
Comandiamo un Relè RF eMylo tramite Broadlink RM PRO
Recensione autoradio Android Seicane S127000
Home Assistant, guida all'installazione su Raspberry

Supportami