statistiche web gratis
-Integrazione Sonoff-Tasmota in Home-Assistant

Integrazione Sonoff-Tasmota in Home-Assistant

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:

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:

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 :

allow_anonymous false
password_file /etc/mosquitto/pwfile
listener 1883

fino ad ottenere il file come sotto:

# 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:

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:

more /etc/mosquitto/pwfile

USERNAME:$6$SZbtIJxowZsuJCai$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCWPWmA/EAJUI2bHey0+z9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxLQ==

Restartartiamo il servizio di Mosquitto per far prendere le nuove configurazioni:

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:

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:

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.

mosquitto_pub -d -u USERNAME -P PASSWORD -t /dev/test -m "Ciao Ciao"

questa la risposta:

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:

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.

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

Apriamoil  file configuration.yaml e inseriamo quanto segue in fondo al file (attenzione agli spazi)

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.

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: true

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!!!

By |2019-01-22T17:21:15+00:00Novembre 22nd, 2018|Categories: Domotica, Tutorial|0 Comments

About the Author:

Leave A Comment