Aggiungere un sensore di temperatura 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:
GUIDA maggiormente indicatA 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.

Sonoff TH-16 TH-10 e sensori

Abstract

homebridge-mqtt-temperature-tasmota” è un plugin sviluppato dall’ottimo MacWyznawca al fine di censire rapidamente e in modo semplice la temperatura 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 la temperatura 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-temperature-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-temperature-tasmota",
    "name": "Temperatura",
    "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-temperature-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 alla temperatura
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 temperatura

AGGIORNAMENTO:
quanto segue nel paragrafo è superato a partire dalla versione 12 di iOS, uscita nel settembre 2018. Tale versione introduce (alleluia) la risoluzione al decimo di grado nelle temperature. Quanto segue rimane valido solo per chi continua ad utilizzare versioni di iOS inferiori alla 12.

Purtroppo, alla data di redazione della presente guida il plugin presenta un difetto stupido ma abbastanza significativo. Come si intuisce dalle immagini di cui sopra, la risoluzione del dato esposta da Apple HomeKit sull’app “Casa” è precisa al grado, non al decimo di grado (eg. 31 gradi anziché 31,4).

Si potrebbe facilmente intuire che il plugin, ricevendo un dato preciso al decimo di grado, provveda ad arrotondarlo (per difetto entro 0,4 e per eccesso da 0,5 in su). Purtroppo il difetto (perché di difetto bisogna parlare) sta nel fatto che viene arrotondato dal plugin, che si limita a troncare la parte decimale. Ciò significa che, ricevendo per esempio una temperatura di 31,9 gradi, esporrà 31 gradi, ma si tratta di un’inesattezza, perché sarebbe molto più corretto esporre 32 gradi.

Per risolvere questo problema ci viene in aiuto il firmware Sonoff-Tasmota, il quale può essere istruito ad arrotondare il valore di temperatura, arrotondarlo in modo corretto, intendiamo. Così facendo, si aggira il difetto che, si spera, venga corretto quanto prima possibile da parte dello sviluppatore (lo abbiamo segnalato su GitHub).

Per impostare il Sonoff con una risoluzione al grado, arrodondata, è necessario recarsi da intefaccia web presso la “Console”.

Nella buca di inserimento comandi inserire:

cmnd/Sonoff/TempRes 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à - Temp RES0

Da qui in poi, anche HomeKit esporrà un dato corretto.

Aggiornamento

Per aggiornare il package è sufficiente eseguire il seguente comando:

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

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

🔻 Clicca QUI per commentare l'articolo. 🔻