Questa guida riguarda home-assistant senza Hass.io cioè installato direttamente su Raspberry con Raspbian ed i smartswitch Sonoff con Firmware Tasmota.
Piccolo requisito: se volete usare i Sonoff con Home-assistant ed Mqtt dovete prima modificare i Sonoff seguendo questa guida qui, dopo di che seguite le istruzioni di seguito.
Andiamo ad installare per prima cosa il servizio Mosquitto ed il suo Client per fare il test di funzionamento coi seguenti comandi aprendo una shell con un utente a vostra scelta:
1 2 3 4 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install mosquitto sudo apt-get install mosquitto-clients |
Andiamo ad editare il file /etc/mosquitto/mosquitto.conf con il tool nano:
1 |
sudo nano /etc/mosquitto/mosquitto.conf |
Commentiamo la linea che contiene include_dir /etc/mosquitto/conf.d inserendo il “#” davanti
ed aggiungiamo le seguenti linee in fondo al file :
1 2 3 |
allow_anonymous false password_file /etc/mosquitto/pwfile listener 1883 |
fino ad ottenere il file come sotto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log #include_dir /etc/mosquitto/conf.d allow_anonymous false password_file /etc/mosquitto/pwfile listener 1883 |
Aggiungiamo utente e password criptata al servizio Mosquitto ed in particolare nel file /etc/mosquitto/pwfile utilizzando il seguente comando che vi chiederà di inserire una password e di ripeterla, sarà la user e password che poi configureremo in Home-Assistant nel file configuration.yaml:
1 2 3 |
sudo mosquitto_passwd -c /etc/mosquitto/pwfile USERNAME Password: Reenter password: |
Verifichiamo che tutto sia andato correttamente controllando il file “pwfile” e che all’interno ci sia la nostra username scelta e password criptata:
1 2 3 |
more /etc/mosquitto/pwfile USERNAME:$6$SZbtIJxowZsuJCai$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCWPWmA/EAJUI2bHey0+z9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxLQ== |
Restartartiamo il servizio di Mosquitto per far prendere le nuove configurazioni:
1 |
sudo /etc/init.d/mosquitto restart |
Testiamo e verifichiamo se Mosquitto è configurato correttamente.
Apriamo 2 Shell sul nostro Raspberry, sulla prima lanciamo il comando sotto cosi da metterci in ascolto su mosquitto:
1 |
mosquitto_sub -d -u USERNAME -P PASSWORD -t /dev/test |
Sostituendo la USERNAME e la PASSWORD con quelle inseretite precedentemente ed avremo un output appeso come questo:
1 2 3 4 5 |
Client mosqsub/3572-raspiambil sending CONNECT Client mosqsub/3572-raspiambil received CONNACK Client mosqsub/3572-raspiambil sending SUBSCRIBE (Mid: 1, Topic: /dev/test, QoS: 0) Client mosqsub/3572-raspiambil received SUBACK Subscribed (mid: 1): 0 |
Dal secondo terminale lanciamo il comando sotto cosi da inviare una stringa che vedremo poi passare sull’altro terminale.
1 |
mosquitto_pub -d -u USERNAME -P PASSWORD -t /dev/test -m "Ciao Ciao" |
questa la risposta:
1 2 3 4 |
Client mosqpub/3667-raspiambil sending CONNECT Client mosqpub/3667-raspiambil received CONNACK Client mosqpub/3667-raspiambil sending PUBLISH (d0, q0, r0, m1, '/dev/test', ... (11 bytes)) Client mosqpub/3667-raspiambil sending DISCONNECT |
Sul primo terminale se tutto è configurato correttamente vedremo passare la scritta “Ciao Ciao” come sotto:
1 2 3 4 5 6 |
Client mosqsub/3572-raspiambil sending CONNECT Client mosqsub/3572-raspiambil received CONNACK Client mosqsub/3572-raspiambil sending SUBSCRIBE (Mid: 1, Topic: /dev/test, QoS: 0) Client mosqsub/3572-raspiambil received SUBACK Subscribed (mid: 1): 0 Ciao Ciao |
Andiamo adesso a configurare MQTT sul sonoff
Breve descrizione del protocollo:
MQTT (Message Queuing Telemetry Transport)
è un protoccolo standard per l’IoT a basso consumo di banda.
L’Organization for the Advancement of Structured Information Standards (OASIS) ha dichiarato che il protocollo MQTT di IBM è lo standard di riferimento per la comunicazione per l’Internet delle Cose.
per maggiori info leggete questo articolo
Apriamo l’interfaccia web del Sonoff e andiamo in “Configuration” -> “Configure MQTT” e compiliamo i seguenti campi:
Host: ip del vostro Rapsberry
Port: 1883
Client: nome a piacere
User: USERNAME configurato su Mosquitto
Password: PASSWORD configurata su Mosquitto
Topic: il nome che distinguerà poi il Sonoff in home-assistant (Es. sala, cucina, bagno)
Full Topic: lasciamo invariato.
Salviamo il tutto.
adesso facciamo fare un giro di ON OFF cliccano sul tasto “Toggle” e dal menu principale andiamo sulla console e cerchiamo delle righe come le seguenti.
1 2 3 4 |
12:15:31 MQT: stat/sala/RESULT = {"POWER":"ON"} 12:15:31 MQT: stat/sala/POWER = ON 12:15:32 MQT: stat/sala/RESULT = {"POWER":"OFF"} 12:15:32 MQT: stat/sala/POWER = OFF |
in particolare ci interessa questo valore (stat/sala/POWER = OFF)
nel mio caso ho “sala” come nome.
Configuriamo finalmente il Sonoff su Home-Assistant
Apriamo il file configuration.yaml e inseriamo quanto segue in fondo al file (attenzione agli spazi)
1 2 3 4 5 6 |
mqtt: broker: 192.168.1.11 port: 1883 client_id: homeassistant username: USERNAME password: PASSWORD |
subito sotto creiamo uno switch inserendo in state_topic: la stringa presa prima dalla console del Sonoff ed in command_topic: cambia da “stat”, che serve per lo stato, a “cmnd” che serve per inviare il comando.
1 2 3 4 5 6 7 8 9 10 |
switch: - platform: mqtt name: sonoff_sala state_topic: "stat/sala/POWER" command_topic: "cmnd/sala/POWER" qos: 0 payload_on: "ON" payload_off: "OFF" optimistic: false retain: false |
Controlliamo la configurazione con impostazioni -> Generale -> Controlla la configurazione
se Ok restartiamo home-assistant in Gestione del server -> Riavvia
Adesso nella home avremo il nostro switch!!!
Che se esposto a Google assistant, potremmo comandarlo anche a voce.
Buon Divertimento!!!
Scrivi un commento
Devi accedere, per commentare.