Elettrodomestici Smart 2023 – 👨‍🍳 Forno 🍖

Elettrodomestici Smart 2023 – 👨‍🍳 Forno 🍖

forno smart
Sommario
Introduzione
Prerequisiti
Dispositivi
Funzionamento
User interface
Installazione
Configurazione
Conclusioni

Paragrafi obbligatori:

Ti piace questo package? Lascia una stella su Github e supportami per realizzarne altri! 

Websitebadge
Forum
telegrambadge
facebookbadge

Articolo completo e package qui: https://github.com/jumping2000/ha-packages/tree/main/elettrodomestici_2023

Introduzione

L’articolo riprende quanto avevamo già scritto nel 2020 con l’articolo Elettrodomestici Smart che ha introdotto:

  1. un package per poter monitorare lo stato degli elettrodomestici non smart utilizzando una presa o dispositivo in grado di effettuare delle misurazione dei livelli di potenza,
  2. una card Lovelace con effetti grafici CSS ed informazioni di funzionamento.

In particolare in questa edizione 2023 useremo alcuni custom ricchi di funzionalità come Button Card ed ApexChart Card che oramai sono diventati dei veri e propri classici delle interfacce sviluppate per Home Assistant e introdurremo ulteriori elementi sia a livello di dati disponibili che a livello di grafica, ma la perla che rende l’uso del package veramente superiore sotto tutti punti di vista rispetto a pacchetti analoghi, è l’utilizzo di una “macchina a stati finiti” FSM sviluppata in ESPHome che restituisce lo stato del dispositivo in maniera molto precisa. Ovviamente è disponibile anche la versione lite per chi non vuole cimentarsi nella configurazione ESPHOME della presa smart ed utilizzare i dati messi a disposizione dalla presa. In questo caso un fantastico Blueprint semplificherà la configurazione e contemporaneamente darà ottima precisione nella rilevazione delle fasi.

Riepiloghiamo i punti di forza di questo pacchetto sono:

  1. Adattabile per l’uso su tablet, smartphone, PC;
  2. Macchina a stati finiti ESPHOME o lite per ricavare lo stato del forno;
  3. Utilizzo di codice YAML non obsoleto e riduzioni del “codice inutile”;
  4. Uso estensivo degli “anchor” per centralizzare le parti YAML da personalizzare nel package e nella GUI;
  5. Versioni grafica per dashboard “yaml” e la traccia per usare la dashboard “storage“, vedi Dashboard;
  6. Riduzione del numero di componenti custom necessari;
  7. Utilizzo dei dati statistici conservati nel DB di HA senza quindi richiedere uan retention “infinita” o cmq molto estesa del DB stesso;

🚨 Come usuale prestate attenzione a collegare il vostro forno ad un dispositivo smart che sia in grado di supportarne il carico, purtroppo gli incidenti domestici sono sempre dietro l’angolo. 🚨

Prerequisiti

Per poter utilizzare il packages occorrono alcune card e alcune configurazioni abbastanza comuni, le card e i custom sono disponibili sul community store HACS , sul sito HassioHelp.eu sono presenti numerose guide, prestate particolare attenzione alla data di rilascio della guida, alcune sono datate e potrebbero essere da ricontrollare, in questo caso il gruppo Telegram HassioHelp è un validissimo aiuto.

Card/CustomUso
Button CardObbligatorio
ApexChart CardObbligatorio
Browser ModObbligatorio
Card ModObbligatorio
Layout CardUsato ma non indispensabile
Bar CardUsato ma non indispensabile
Multiple Entity RowUsato ma non indispensabile

L’utilizzo delle card non indispensabili permette una migliore visualizzazione delle informazioni soprattutto con i dispositivi smartphone ma nulla vieta di poterle rimuovere utilizzando dei layout più scomodi ma comunque fruibili (questo vale per la Layout Card e la Multiple Entity Row). La rimozione dei componenti custom e dl relativo adattamento del codice YAML è lasciato al lettore “evoluto” in grado di procedere in autonomia.

Configurazioni obbligatorie

Per poter procedere con l’installazione del package ci sono alcuni passi da effettuare:

  • abilitare i packages come descritto qui: Packages;
  • configurare Home Assistant per avere i sensori di tempo e di data come spiegato qui: Time & Date o nelle guide HassioHelp;
  • configurare il sensore che restituisce il costo dell’energia (a breve ci sarà package accessorio ad hoc) scegliendo tra un sensore che recupera direttamente il PUN oppure un helper input_number configurabile;
  • impostazione dei servizi di notifica: ad esempio TelegramGoogleMobile App la scelta migliore rimane sempre l’uso del Centro Notifiche che centralizza la configurazione di tutti i servizi di notifica.
  • per la versione lite configurare il blueprint ad hoc.
Guide HassioHelp

Ecco alcune guide pubblicate da HassioHelp.eu che sicuramente sono meno aggiornate della documentazione ufficiale ma restano valide:

Dispositivi

E’ fondamentale avere una presa, o un relay “smart” (come la famiglia Shelly PM) o altro sistema smart basato su pinza amperometrica come Shelly EM o PZEM che restituisca la potenza assorbita in watt/Kw del forno. Per ottenere il massimo risultato ed utilizzare quindi la FSM occorre un dispositivo in grado di essere configurato con il firmware ESPHome, se non è possibile ci sono due alternative:

  1. utilizzare una versione ridotta (lite) del package;
  2. adattare le automazioni già sviluppate nell’articolo del 2020 al proprio caso.

Nel repository su Github sono presenti due packages già pronti per l’uso, la versione FSM e la versione lite, che utilizza una FSM semplificata e realizzata con un blueprint.

Funzionamento

L’idea alla base dell’articolo è che grazie alle informazioni di potenza restituite dalla presa smart siamo in grado di capire in che stato si trova il nostro elettrodomestico e quindi possiamo costruire una serie di sensori che diano delle informazioni da visualizzare nella UI di Home Assistant o piuttosto per avvertirci quando stendere i panni tramite un servizio di notifica.

Vediamo in dettaglio quali sono gli stati per il forno, le transizioni da uno stato ad un altro sono guidate dalla potenza assorbita dalil forno stessa e dal tempo di permanenza nello stato:

StatoCaratteristiche
IdleStato iniziale a riposo del forno
RiscaldamentoAvvio del programma di cottura con il riscaldamento del forno
MantenimentoFase di mantenimento della temperatura
RaffreddamentoStato finale di raffreddamento

Questo stati sono calcolati nella versione FSM full esphome del package e nella versione lite rispettivamente da:

  • FSM implementata nel codice ESPHome e restituita dal sensore Esphome sensor.oven_status
  • FSM realizzata con blueprint, restituisce il template sensor sensor.oven_status

Ovviamente la versione FSM realizzata con ESPHOME sarà più precisa, se opportunamente configurata con cura con i dati di potenza del proprio forno, perché lo stato del forno dipenderà da un’analisi più fine della potenza assorbita e degli stati.

Anche per la versione lite gli stati dell’automa sono quattro e identici alla versione FSM ESPhome, nulla vieta di personalizzare i nomi degli stati andando ad agire sull’apposita entità input_select.

Anche chi possiede un forno smart che espone in HA lo stato dell’elettrodomestico potrà utilizzare il package aggiustando il codice in maniera minimale adattandolo ai dati esposti dall’integrazione smart, vediamo come nel seguente paragrafo.


Se l’utente possiede una forno smart è possibile adattare il package e la card Lovelace: il lavoro non è immediato ma modificando opportunamente le principali entità con i dati provenienti dall’integrazione è fattibile.

A titolo di esempio l’integrazione Home Connect Bosch espone alcune tipologie di identità che possono sostituire le principali entità del package, oltre alle entità dei programmi di lavaggio:

Entità Home ConnectContenutoEntità Package
sensor.forno_operation_statestato operativosensor.oven_status
sensor.forno_remaining_program_timetempo rimastosensor.oven_time_left
switch.forno_program_auto1programma 1da esporre nella card
switch.forno_program_auto2programma 2da esporre nella card

Il package espone una grande serie di dati, funzionalità, grafici e configurazioni, proviamo a riassumerle:

Dati

  • Dati giornalieri, settimanali, mensili ed annuali di energia (kWh) consumata e relativo costo in €
  • Numero dei cicli giornalieri, settimanali, mensili ed annuali di lavaggio effettuati
  • Durata dei cicli giornalieri, settimanali, mensili ed annuali di lavaggio effettuati
  • Numero e durata totale dei cicli effettuati
  • Durata, energia e costo dell’ultimo lavaggio

Grafici

  • Grafico X-Y della potenza consumata
  • Grafico a barre dei cicli di funzionamento per programmare la manutenzione
  • Grafico a istogramma dell’energia consumata negli ultimi 30 giorni
  • Grafico a barre per corrente, tensione, potenza attiva, apparente e reattiva se restituiti dalla presa smart o altro sistema di misura.

Funzionalità presenti

  • Timer con vari programmi forno per tenere sotto controllo il tempo trascorso
  • Actionable Notification configurabili con Telegram e Companion app alla fine del ciclo di lavaggio
  • Notifiche per i cambi di stato

Per evitare l’uso inutile di entità per configurare alcune aspetti “statici” o comunque poco variabili, relativi al funzionamento, abbiamo preferito usare gli anchor impostabili nella sezione “IMPOSTAZIONI DEL PACKAGES”. Al contrario gli aspetti di configurazione che sono più soggetti a variazioni sono configurabili dalla card. Per i template sensor sarà comunque necessario personalizzare leggermente il codice visto che non è possibile usare gli anchor, ma in questo caso è chiaramente indicato.

Altra funzionalità innovativa del package è l’uso delle funzionalità di esposizione dei dati statistici delle card standard Lovelace e Apex senza quindi incidere nelle dimensioni del DB, il recorder può quindi rimanere configurato con i classici 5-10 giorni di memorizzazione dei dati ma è possibile visualizzare i dati di energia consumata degli ultimi 30 giorni o più se uno desidera.

User Interface

La card è, in sostanza, una custom button-card con funzionalità di container che al suo interno contiene due importanti sezioni:

  • la parte superiore è costituita da una picture-elements card
  • la parte inferiore è costituita da una fila orizzontale di 5 bottoni a loro volta realizzati con custom button-card

La picture-elements card ha la funzione di contenitore sia per elementi grafici che informazioni testuali:

  • sulla parte sinistra è presente l’immagine grafica del forno, i CSS presenti nella configurazione fanno in modo che ad ogni stato corrisponda una animazione.
  • nella parte centrale è collocato il grafico della potenza assorbita dal forno.
  • nella parte destra è presente il grafico a barre dei cicli di lavaggio che indica quanti cicli sono stati effettuati e dove il 100% rappresenta il numero di cicli dopo il quale è necessario effettuare una manutenzione.
  • in alto a destra troviamo le informazioni testuali relative ad energia, potenza, stato, n° cicli.
  • in basso sotto l’immagine del forno è presente la scelta del programma del forno con il tempo rimasto.

La sezione orizzontale di bottoni in basso (“button container“) presenta le seguenti informazioni:

  • Info: cliccando si apre una finestra con le informazioni di dettaglio relative ai consumi/cicli/costi per giorno, settimana, mese, anno oltre alle durate e cicli totali. Sono inoltre presenti le informazioni relative alla manutenzione da effettuare e la sua configurazione e le impostazioni relative alle notifiche.
  • Settimana / Mese / Anno: informazioni relative all’energia consumata e i costi associati.
  • Forno: bottone che con il tocco singolo spegne/accende la presa collegata all’elettrodomestico, con il tocco prolungato apre la finestra con i dati e i grafici di energia recuperati dalle informazioni statistiche contenute nel DB di HA.

Come detto la card è adattabile al dispositivo usato e al suo orientamento, non si tratta ina card pienamente responsive ma si è cercato di rendere la fruizione buona sia su smartphone che su PC o tablet.

Installazione

Download

Github permette di effettuare il completo download dei file che costituiscono il pacchetto, quindi file yaml e immagini. Una volta inserito tutto nella propria installazione di Home Assistant seguendo le indicazioni presenti nel seguito, occorre seguire i passi base per procedere alla configurazione:

  1. Scegliere tra i package in versione FSM o in versione lite, l’utente dovrà cancellare i file YAML che non sono di interesse.
  2. Scegliere tra la grafica Lovelace in formato YAML o Storage, l’utente dovrà cancellare i file YAML che non sono di interesse.
  3. solo per chi usa la versione lite, procedere alla configurazione del Blueprint FSM. Qui occorre indicare i sensori relativi a potenza ed energia, i servizi di notifica, alcuni helper e due entità relative allo stato del forno che nel package sono i seguenti, anche se poi ogni utilizzatore è libero di cambiarli:
    • input_select.oven_status.yaml
    • sensor.oven_status.yaml
    • input_boolean.forno_runtime
    • input_number.forno_energia_iniziale
    • counter.cicli_cottura_forno
Struttura dei file

La struttura dei file è rappresentata di seguito, quindi occorre rispettare la posizione dei file nel filesystem come da schema sottostante, in alternativa l’utente esperto può riposizionare i files nella maniera che più preferisce. L’unica eccezione è la card Lovelace che può essere posizionata nelle viste – View Lovelace – già presenti nella propria configurazione.

Per chi usa la modalità Lovelace YAML occorre fare in modo che la custom button-card possa utilizzare i templates: quindi bisogna inserire la seguente configurazione in ui-lovelace.yaml. Per ulteriori informazioni fate riferimento alla documentazione della card custom Configuring templates.

Per chi usa la modalità storage è presente un unico file (card_forno_storage.yaml) che include la parte Lovelace.

Configurazione

Impostazioni Package

Nella sezione “IMPOSTAZIONI DEL PACKAGE” presente nella parte iniziale nel file oven_xxx.yaml sono da configurare una serie di parametri:

  1. servizi di notifica;
  2. i dati necessari per il funzionamento come lo switch della presa a cui è collegata il forno o il sensore di potenza.

Per i servizi di notifica sono da configurare i seguenti parametri, con le entità corrette:

  • SCRIPT Centro notifiche: &DEFAULT_SCRIPT se utilizzate il famoso Centro Notifiche di HassioHelp avete già finito 😜, gli altri parametri non sono usati;
  • SERVIZIO Notify: &DEFAULT_NOTIFY dove inserire l’entità notify principale, ad esempio notify.telegram;
  • SERVIZIO Mobile: &DEFAULT_NOTIFY_MOBILE dove inserire l’entità notify del servizio di notifica della Companion App di HA;
  • MEDIA PLAYER Alexa: &DEFAULT_MEDIA_PLAYER_ALEXA deve inserire un’ entità media player tra quelle configurate, ad esempio _media_player.alexa_sala;
  • MEDIA PLAYER Google: &DEFAULT_MEDIA_PLAYER_GOOGLE deve inserire un’entità media player Google Home, ad esempio _media_player.google_sala;
  • SERVICE TTS: &DEFAULT_SERVICE_TTS dove inserire il servizio TTS, ad esempio tts.google_translate_say.

Andando nel dettaglio i seguenti sono i parametri che si possono modificare, quindi l’utilizzatore deve necessariamente inserire la corretta entità:, gli altri presenti non sono da cambiare:

  • PLUG FORNO SWITCH: &CONF_SWITCH_ENTITY dove inserire l’entità switch che comanda la presa smart;
  • PLUG FORNO POTENZA (W): &CONF_POWER_ENTITY dove inserire l’entità sensor che espone la potenza;
  • PLUG FORNO ENERGIA (kWh): &CONF_ENERGY_ENTITY dove inserire l’entità sensor che espone l’energia;
  • RITARDO TRA LE VARIE NOTIFICHE IN MINUTI: &DELAY_NOTIFICATION indica quanti minuti passano tra una notifica ed un altra.

Per il package lite i parametri da configurare sono tutti compresi nel blueprint.

Altri parametri di configurazione sono presenti nella card Lovelace:

  • Ripetizioni Notifica” indica il numero di ripetizioni della notifica di fine lavaggio.
  • Cicli di avviso manutenzione” indica dopo quanti cicli il sistema manda una notifica per effettuare operazioni di manutenzione (esempio lavaggio interno).
Lovelace – YAML

Anche nella parte lovelace è stato fatto un uso estensivo degli anchor in modo da centralizzare le impostazioni da personalizzare, purtroppo questo tipo di modifica è possibile solo con la modalità lovelace YAML, per la modalità storage non è possibile inserire anchor.

Vediamo i principali aspetti di configurazione dell’interfaccia Lovelace, per ogni parametro va impostata da parte dell’utilizzatore la corretta entità:

  • SFONDO_IMMAGINE: &CONF_BACKGROUND_IMAGE scelta dell’immagine di sfondo tra quelle presenti;
  • GRANDEZZA_CARATTERI_BASE: &CONF_FONT_SIZE grandezza caratteri per gli elementi della picture-elements card;
  • GRANDEZZA_CARATTERI_APEX: &CONF_FONT_SIZE_APEX grandezza caratteri per gli elementi di APex Card;
  • ALTEZZA_LINEA: &CONF_LINE_HEIGHT altezza dell’elemento di stile CSS line-height;
  • COLORSCHEME_RGB_XXX: &CONF_COLOR_XXX definizione di colori;
  • PLU_FORNO_XXX: associazione con le entità relative a vari parametri come potenza, energia etc.

Per quanto riguarda le impostazioni grafiche è possibili, oltre alle personalizzazioni appena descritte, agire sul proprio “tema” del Frontend e su alcuni parametri relativi alla parte inferiore realizzata con button-card, in particolare:

  1. raggio del bordo
  2. colore del bordo
  3. colore di background
  4. altezza dei button inferiori

Il codice da modificare è il seguente, nella parte “variables“; nulla vieta, nel caso si voglia standardizzare le card, di riportare queste configurazioni nel button template.

Template button card

Come riportato nel paragrafo di Installazione per i button-card templates occorre procedere alla seguente configurazione nel proprio file ui-lovelace.yaml o in altro file, se avete configurate più interfacce Lovelace in modalità YAML.

Lovelace – Storage

Chi usa questa modalità potrà caricare l’intero file di configurazione dell’interfaccia grafica nella UI e variare sempre da UI gli aspetti che più interessano.

Principali entità

Di seguito sono elencate le principali entità e il loro ruolo all’interno del package:

  • sensor.oven_status: sensore che riporta lo stato in cui si trova il forno;
  • sensor.oven_time_left: l’entità contiene il tempo alla fine del programma di lavaggio;
  • sensor.PUN_f1: sensore scraping che restituisce il costo dell’energia PUN in EUR/kWh nella fascia F1;
  • binary_sensor.oven_status: sensore che riporta lo stato on/off;
  • binary_sensor.oven_maintenance: indica che è venuto il momento di fare una pulizia approfondita 😜;
  • input_number.forno_ripetizioni_notifica: numero di ripetizioni della notifiche a fine lavaggio;
  • input_number.forno_avviso_manutenzione: numero di cicli di manutenzione dopo i quali HA invia una notifica di avviso;
  • input_number.costo_energia: costo dell’energia in EUR/kWh configurato dall’urgente se non si vuole il sensore scraping;
  • automation.forno_status: è la principale automazione del package “FSM full” che notifica gli eventi di cambio di stato;
  • automation.avviso_manutenzione_forno: notifica l’avvertimento per fare le operazioni di manutenzione programmata;
  • automation.forno_program: è l’automazione che permette il cambio di programma;
ESPHome

Questa parte di configurazione è relativa alla versione FSM del package, se si è scelto di utilizzare la versione lite si può saltare. Nel file su Github è riportata la configurazione relativa alla presa Blitzwolf BW-SHP2, sul sito Esphome Devices si trovano configurazioni relative a diverse decine di prese diverse.

I passi necessari per effettuare la configurazione ESPHome sono:

  • inserire la configurazione relativa alla presa in proprio possesso;
  • inserire la configurazione relativa alla macchina a stati finiti;
  • effettuare la calibrazione dei valori di tensione, corrente, e potenza della presa.

La configurazione FSM è basata sul componente aggiuntivo ESPHome State Machine, consiglio di leggere le informazioni contenute in questa pagina. Il cuore della configurazione è il seguente codice che riassume gli stati e le transizioni permesse a fronte degli input ricevuti che in questo caso sono livelli di potenza esposti dalla presa smart.

La parte di calibrazione é piuttosto noiosa ma di vitale importanza per avere dei dati di potenza che si avvicinano il più possibile alla realtà, esistono alcuni siti che spiegano come effettuare questa operazione:

Conclusioni

Articolo completo e package qui: https://github.com/jumping2000/ha-packages/tree/main/elettrodomestici_2023

Con questo package abbiamo visto come combinare insieme diversi elementi:

  • una raffinata modellazione dei consumi elettrici del forno (ESPhome FSM)
  • un blueprint per semplificare la configurazione (FSM lite)
  • una grafica accattivante con effetti visuali
  • un uso moderno dei dati statistici di HA

Il risultato sembra piacevole, lasciate pure le vostre impressioni sui nostri canali social.

Ispirazione e ringraziamenti

L’idea alla base di questo package è sempre l’ottimo lavoro di Phil Hawthorne del 2017 ma sempre fonte di ispirazioni per tutti i lavori di questo tipo. Per la parte FSM realizzata con blueprint esiste una buona discussion nel forum di HA. Per la parte FSM in ESPHOME Mikhail Diatchenko ha realizzato un ottimo componente: ESPHome State Machine.

Supporto

Ti piace questo package? Lascia una stella su Github e supportami per realizzarne altri! 

Websitebadge
Forum
telegrambadge
facebookbadge

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Advertisment ad adsense adlogger