Aggiungere un sensore di umidità Sonoff a Homebridge usando Tasmota e MQTT

4 minuti di lettura
Scopi della guida
CONCETTI AFFRONTATI:
  • Installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI
DISPOSITIVI FISICI UTILIZZATI:
PROGETTO MAGGIORMENTE INDICATO PER::

Apple-200x200

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 1.1

Sonoff TH-16 TH-10 e sensori

Abstract

homebridge-mqtt-humidity-tasmota” è un plugin sviluppato dall’ottimo MacWyznawca al fine di censire rapidamente e in modo semplice l’umidità relativa di un certo ambiente tramite utilizzo di sensori ITEAD Sonoff TH-16 o TH-10 che siano stati preventivamente e opportunamente aggiornati a firmware Sonoff-Tasmota.

Quest’ultimo assunto relativo all’aggiornamento del firmware è d’obbligo perché, come noto, il firmware originale non consente di interrogare il sensore in modo diretto, ma solo tramite l’applicazione eWeLink, concepita appositamente da produttore per interfacciarsi a tutta la famiglia di prodotti ITEAD Sonoff Smart Home. L’adozione del firmware Sonoff-Tasmota, invece, abilita l’utente nelllo sfruttare i topic MQTT al fine di censire direttamente le letture rilevate.

Questo plugin è concepito espressamente per estrarre dal topic MQTT prodotto da un Sonoff TH-16/TH-10 con firmware Sonoff-Tasmota. In realtà potrebbero essere utilizzati anche altri plugin – sempre in grado di leggere queste telemetrie – ma il vantaggio dell’adozione di questo plugin specifico è la sua predisposizione nell’estrarre il dato numerico dal topic telemetrico senza bisogno che l’utente configuri manualmente una stringa di parsing ad hoc.

Configurazione lato Sonoff

Prima di addentrarci nella configurazione del plugin è necessario predisporre l’attuatore/sensore Sonoff in modo che misuri ciclicamente l’umidità e la invii al broker MQTT, quindi a chiunque sia iscritto (in ascolta) al quel topic (nel nostro caso, il nostro plugin e quindi la nostra domotica).

Nb. Se non si è pratici di MQTT, si consiglia di leggere questa nostra pagina, è molto più semplice da capire di quanto non si creda.

Colleghiamoci dunque al Sonof in questione utilizzando la sua interfaccia web. Quello che utilizzeremo in questa guida sarà un Sonoff TH-16 dotato di sensore AM2301.
Una volta connessi, cliccare su “Configuration” e poi “Configure Module“.

La schermata che si presenterà ci permetterà di selezionare il “Module Type” (selezionare “Sonoff TH”) e indicare, sul connettore GPIO14, quale tipo di sensore sia in uso, in questo caso l’AM2301.

Sonoff-Tasmota Module Configuration - Sensor-AM2301

Una volta impostata questa configurazione, cliccare su Save e, dopo il riavvio del dispositivo, tornare a menu principale.
Come si noterà, in testa alla home saranno apparse le letture di temperatura e umidità:

Sonoff-Tasmota TH-16 TH-10 Temperatura e Umidità - RES1

Come si nota, la risoluzione del dato di temperatura e umidità è al decimo di grado e di percentuale.
Questo è un aspetto importante che cureremo nel proseguo della guida.

Installazione del plugin

Provvediamo ora ad installare il plugin. Come per tutti i plugin è semplicissima.

Eseguire il seguente comando – su sistemi unix-based (linux, Raspberry ecc.) da terminale, da sistemi windows su prompt dei comandi:

npm install -g homebridge-mqtt-humidity-tasmota

e attendere il termine della procedura.
Nb. In caso Homebridge sia già in esecuzione come servizio (come descritto nelle nostre guide di installazione), provvedere a interromperlo prima dell’installazione tramite il comando:

sudo systemctl stop homebridge

Configurazione presso Homebridge

La configurazione del plugin prevede l’aggiunta al file di configurazione di Homebridge  di uno o più accessori così configurati:

"accessories": [
  {
    "accessory": "mqtt-humidity-tasmota",
    "name": "Umidità",
    "url": "mqtt://127.0.0.1",
    "username": "xxx",
    "password": "xxx",
    "topic": "tele/Sonoff/SENSOR",
    "startCmd": "cmnd/Sonoff/TelePeriod",
    "startParameter": "120",
    "sensorPropertyName": "AM2301",
    "manufacturer": "ITEAD",
    "model": "Sonoff TH-16",
  }
]

Spiegazione dei campi.

CampoDescrizione
accessoryRichiesto – Dev’essere necessariamente “mqtt-humidity-tasmota” (tutto minuscolo).
nameRichiesto – Nome dell’accessorio
urlRichiesto – Indirizzo del broker MQTT. In questo caso è indicato l’indirizzo localhost in quanto tale ruolo risiede sullo stesso computer che ospita Homebridge
usernameOpzionale – Il nome utente per accedere al broker MQTT, se configurato.
passwordOpzionale – La password utente per accedere al broker MQTT, se configurato.
topicRichiesto – Il topic telemetrico da quale attingere l’informazione relativa all’umidità
startCmdOpzionale – Comando da inviare all’avvio di Homebridge (quello indicato nell’esempio indica al Sonoff di inviare una lettura ogni tot secondi, definiti nel parametro “StartParameter“)
StartParameter
Opzionale – Parametro inviato col comando impostato nel campo “startCmd
sensorPropertyNameOpzionale – Una stringa descrittiva del sensore
manufactorer
Opzionale – Una stringa descrittiva del produttore
modelOpzionale -Una stringa descrittiva del modello Sonoff in uso

Utilizzo

Avviando Homebridge, l’accessorio che apparirà figurerà come segue:

Questo slideshow richiede JavaScript.

Arrotondamento del valore di umidità

Purtroppo, alla data di redazione della presente guida, il plugin presenta un difetto stupido ma abbastanza significativo: il dato relativo all’umidità – che a partire da iOS 12 sarebbe consultabile in formato decimale – viene passato dal plugin verso l’app “Casa” in formato decimale. Poco male, non fosse che il dato non viene, dal plugin, neppure arrotondato, ma semplicemente passato in parte decimale. In presenza di un valore, ad esempio, pari a “30,9%”, su iOS “Casa” viene visualizzato “30%”, quando sarebbe a questo punto più corretto “31%”.

A questo punto possiamo sfruttare un comando Tasmota per far sì che sia il firmware del Sonoff (e non il plugin – che comunque non lo fa) ad arrotondare in modo corretto, alla fonte, il dato.

Nella buca di inserimento comandi della console Tasmota inserire:

cmnd/Sonoff/HumRes 1

e premere invio (ovviamente “Sonoff” è il friendy name del dispositivo dell’esempio. In caso l’abbiate modificato, modificate di conseguenza il comando).

A questo punto tornando in home page si noterà come la risoluzione del dato sia stata cambiata:

Sonoff-Tasmota-TH-16 TH-10 Temperatura e Umidità - Um RES0

Da qui in poi, anche “Casa” esporrà un dato corretto.

Aggiornamento

Per aggiornare il package è sufficiente eseguire il seguente comando:

sudo npm update -g -dev homebridge-mqtt-humidityt-tasmota

avendo cura, precedentemente, di aver fermato eventuali esecuzioni di Homebridge in corso.


ITEAD Sonoff BasicATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica ai Sonoff (e più generalmente ai dispositivi ESP8266), per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

Please comment below