Integrare le letture di assorbimento elettrico di Sonoff POW su Home Assistant (via 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:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 2.0

Abstract

Home Assistant fornisce un supporto nativo al protocollo MQTT tramite un componente chiamato, per l’appunto, “MQTT“. In caso si possegga un sensore di assorbimento elettrico dotato di supporto a tale protocollo (eg. un Sonoff POW riprogrammato Tasmota), è possibile integrarne le metriche in modo molto semplice su Home Assistant.

In questa pagina vedremo come farlo utilizzando il componente “Sensor” di Home Assistant, nello specifico la piattaforma “MQTT Sensor.

N.b. Questo tipo di integrazioni si presta particolarmente all’uso – oltre che per consultarne le metriche – del tenere sotto controllo i consumi e per determinare lo stato operativo di determinati elettrodomestici.

Assunti

Affinché la configurazione che ci apprestiamo a realizzare funzioni, è necessario che il componente MQTT di Home Assistant sia già configurato e sia presente, sulla rete, un broker MQTT.

Per dotarsi di  un broker e per attivare le funzioni client MQTT su Home Assistant si rimanda a questa guida.

N.b. Se non si ha dimestichezza con il protocollo MQTT, si consiglia di leggere questa scheda ad esso dedicato e a quest’altra dedicata alla configurazione nel proprio ambiente.

Letture POW

Il Sonoff POW è un interruttore intelligente dotato della capacità di fornire svariate metriche – specialmente la versione R2. Come anticipato, l’implementazione del firmware Tasmota lo libera dall’ecosistema di fabbrica e lo rende compatibile con il protocollo MQTT tramite il quale, una volta configurato, produce periodicamente (ogni tot secondi, regolabili) delle telemetrie in notazione JSON ricche di dati interessanti.

Un classico payload JSON proveniente da un POW riprogrammato Tasmota è il seguente:

tele/pow1/SENSOR = {"Time":"2018-02-15T17:37:10","ENERGY":{"TotalStartTime":"2018-11-14T18:39:40","Total":6.294,"Yesterday":5.340,"Today":0.954,"Period":217,"Power":2635,"ApparentPower":2650,"ReactivePower":282,"Factor":0.99,"Voltage":227,"Current":11.661}}

I campi si spiegano così:

Campo Unità Descrizione
TotalStartTime Data Data di aggiornamento per il totale di assorbimento “Total
Total kWh Energia assorbita totale
Yesterday kWh Energia assorbita nel giorno precedente nell’intervallo 00:00 – 23:59
Today kWh Energia assorbita nel giorno corrente
Period kWh Energia assorbita a partire dalla lettura precedente
Power W Potenza istantanea
ApparentPower VA Voltampere
ReactivePower VAR Voltampere reattivo
Factor Fattore di potenza
Voltage V Differenza di potenziale in volt attualmente erogata (voltaggio)
Current A Intensità di corrente in ampere attualmente erogata (amperaggio)

N.b. non tutte le metriche riportate sono disponibili utilizzando il modello Sonoff POW R1.

Configurazione

Tante sono le metriche, tanti possono essere i sensori configurabili presso Home Assistant.
In un unico blocco, vediamo come configurare 11 entità di tipo “sensore”.

N.b. Assumeremo che il nome MQTT del POW sia “SonoffPOW” e che, ovviamente, sia correttamente configurato (alla voce di menu “Configuration” > “Configure Module”) presso l’interfaccia di Tasmota.

sensor:
  - platform: mqtt
    name: "Data aggiornamento"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].TotalStartTime }}"
    qos: 1
    unit_of_measurement : "Date"

  - platform: mqtt
    name: "Assorbimento TOTALE"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Total }}"
    qos: 1
    unit_of_measurement : "kWh"

  - platform: mqtt
    name: "Assorbimento ieri"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Yesterday }}"
    qos: 1
    unit_of_measurement : "kWh"

  - platform: mqtt
    name: "Assorbimento oggi"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Today }}"
    unit_of_measurement: "kWh"

  - platform: mqtt
    name: "Assorbimento da ultima lettura"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Period }}"
    unit_of_measurement: "kWh"

  - platform: mqtt
    name: "Assorbimento istantaneo"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Power }}"
    unit_of_measurement: "Watt"

  - platform: mqtt
    name: "Voltampere"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].ApparentPower }}"
    unit_of_measurement: "Watt"

  - platform: mqtt
    name: "Voltampere reattivo"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].ReactivePower }}"
    unit_of_measurement: "Watt"

  - platform: mqtt
    name: "Voltaggio"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Voltage }}"
    unit_of_measurement: "Volt"

  - platform: mqtt
    name: "Amperaggio"
    state_topic: "tele/SonoffPOW/SENSOR"
    value_template: "{{value_json['ENERGY'].Current }}"
    unit_of_measurement: "Ampere"

Questa configurazione genererà, come spiegato, undici diverse entità di tipo “sensore”:

  • sensor.data_aggiornamento
  • sensor.assorbimento_totale
  • sensor.assorbimento_ieri
  • sensor.assorbimento_oggi
  • sensor.assorbimento_da_ultima_lettura
  • sensor.assorbimento_istantaneo
  • sensor.voltampere
  • sensor.voltampere_reattivo
  • sensor.voltaggio
  • sensor.amperaggio

le quali potranno essere utilizzate sia come lettura istantanea e storica, nonché nelle automazioni più disparate.

Esempi presso il fronted

Home Assistant Sonoff POW Lavatrice - Ampere
Assorbimento espresso in Ampere (Corrente)
Home Assistant Sonoff POW Lavatrice - Watt
Assorbimento espresso in Watt

Nota finale

Spesso i sensori di assorbimento elettrico producono grandi quantità di dati. Questo capita perché tale misurazione è estremamente variabile nel tempo; questo, purtroppo, causa spesso problemi alla domotica Home Assistant la quale, per default, salva qualsiasi dato in ingresso; questa ipertrofia di dati è anche, spesso, diretta conseguenza della rottura delle microSD sul quale l’HUB è installato. Per evitare tutto questo consigliamo, sempre, di far riferimento a questa guida per ridurre in modo importante la mole di dati salvati.


Configurare dei contabilizzatori di consumo su Home Assistant


Assorbimenti elettrici sotto controllo tramite la domotica Home Assistant


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel