🔥 con AUTO-DOWNLOAD, AUTO-CONFIG E VIDEO PASSO PASSO 🔥
Sommario |
---|
Introduzione |
Prerequisiti |
Dispositivi |
Funzionamento |
User interface |
Installazione |
Configurazione |
Conclusioni |
Paragrafi obbligatori:
Livello | Novizio (Novizio, Esperto, Pro) |
Difficoltà | Bassa (Bassa, Media, Alta) |
Ti piace questo package? Lascia una stella su Github e supportami per realizzarne altri!
L'articolo riprende quanto avevamo già scritto nel 2020 con l'articolo Elettrodomestici Smart che ha introdotto:
- 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,
- una card Lovelace con effetti grafici CSS ed informazioni di funzionamento.
In particolare in questo articolo descriveremo le procedure di installazione e configurazione per questi quattro elettrodomestici:
- Asciugatrice
- Lavatrice
- Lavastoviglie
- Forno
Nell'edizione 2023 sono usati 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 le perle che rendono l'uso del package veramente superiore sotto tutti punti di vista rispetto a pacchetti analoghi sono:
- l'utilizzo di una "macchina a stati finiti" FSM che restituisce lo stato del dispositivo in maniera molto precisa.
- Un Blueprint semplificherà la configurazione e contemporaneamente darà ottima precisione nella rilevazione delle fasi di asciugatura.
- 🔥E novità assoluta, il tutto sarà auto-configurante senza necessità di scrivere complesse istruzioni YAML 🔥
Riepiloghiamo i punti di forza di questo pacchetto sono:
- Adattabile per l'uso su tablet, smartphone, PC;
- Macchina a stati finiti per ricavare lo stato della elettrodomestico;
- Utilizzo di codice YAML non obsoleto e riduzioni del "codice inutile";
- Versioni grafica unificata per dashboard "yaml" e "storage", vedi Dashboard;
- Riduzione del numero di componenti custom necessari;
- Utilizzo dei dati statistici conservati nel DB di HA senza quindi richiedere uan retention "infinita" o cmq molto estesa del DB stesso;
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/Custom | Uso |
---|---|
Button Card | Obbligatorio |
ApexChart Card | Obbligatorio |
Browser Mod | Obbligatorio |
Card Mod | Obbligatorio |
Layout Card | Usato ma non indispensabile |
Bar Card | Usato ma non indispensabile |
Multiple Entity Row | Usato 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 card 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 (potete saltare questa parte se avete già tutto configurato):
- abilitare i packages come descritto qui: Packages oppure su HassioHelp;
- configurare Home Assistant per avere i sensori di tempo e di data come spiegato qui: Time & Date o nelle guide HassioHelp;
- impostazione dei servizi di notifica: ad esempio Telegram, Google, Mobile App la scelta migliore rimane sempre l'uso del Centro Notifiche che centralizza la configurazione di tutti i servizi di notifica.
- 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:
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 dall'elettrodomestico.
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 ognuno dei quattro elettrodomestico: le transizioni da uno stato ad un altro sono guidate dalla potenza assorbita dall'elettrodomestico stesso e dal tempo di permanenza nello stato:
Stato | Caratteristiche | Elettrodomestico |
---|---|---|
Idle | Stato iniziale a riposo della asciugatrice | Asciugatrice |
Asciugatura | Avvio del programma di asciugatura dei panni | Asciugatrice |
Mantenimento | Fase di mantenimento a bassa potenza | Asciugatrice |
Svuotare | Stato finale del programma di asciugatura | Asciugatrice |
Idle | Stato iniziale a riposo della lavatrice | Lavatrice |
Lavaggio | Avvio del programma con il riscaldamento dell'acqua e lavaggio dei panni vero e proprio | Lavatrice |
Risciacquo | Fase di risciacquo in cui sono eliminati i residui di detersivo | Lavatrice |
Svuotare | Stato finale del programma di lavaggio | Lavatrice |
Idle | Stato iniziale a riposo del forno | Forno |
Riscaldamento | Avvio del programma di cottura con il riscaldamento del forno | Forno |
Mantenimento | Fase di mantenimento della temperatura | Forno |
Raffreddamento | Stato finale di raffreddamento | Forno |
Idle | Stato iniziale a riposo della lavastoviglie | Lavastoviglie |
Lavaggio | Avvio del programma di lavaggio con il riscaldamento dell'acqua | Lavastoviglie |
Risciacquo | Fase di risciacquo | Lavastoviglie |
Asciugatura | Stato finale di asciugatura delle stoviglie | Lavastoviglie |
Anche chi possiede un elettrodomestico smart che espone in HA lo stato dell'elettrodomestico potrà utilizzare il package adattando il codice ai dati esposti dall'integrazione smart.
Il package e la relativa card espongono una serie di dati, funzionalità, grafici, 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 asciugatura effettuati
- Durata dei cicli giornalieri, settimanali, mensili ed annuali di asciugatura effettuati
- Numero e durata totale dei cicli effettuati
- Durata, energia e costo dell'ultimo asciugatura
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 dell'elettrodomestico per tenere sotto controllo il tempo trascorso
- Notifiche per i cambi di stato
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.
🖥 Desktop 🖥 | 📱 Mobile 🔋 |
---|---|
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 dell'elettrodomestico, i CSS presenti nella configurazione fanno in modo che ad ogni stato corrisponda una animazione.
- nella parte centrale è collocato il grafico della potenza assorbita dalla elettrodomestico.
- nella parte destra è presente il grafico a barre dei cicli di asciugatura 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 dell'elettrodomestico è presente la scelta del programma dell'elettrodomestico con il tempo rimasto.
La sezione orizzontale di bottoni in basso ("button container") presenta le seguenti informazioni:
Bottone | Cosa fa |
---|---|
Info | cliccando si apre una finestra con le informazioni di dettaglio relative alla consumi/cicli/costi per giorno, settimana, mese, anno ed aspetti di configurazione |
Settimana / Mese / Anno | informazioni relative all'energia consumata e i costi associati |
Elettrodomestico | 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 una card responsive ma si è cercato di rendere la fruizione buona sia su smartphone che su PC o tablet.
🎫 Info Card 🎫 | ☢ Energy Card ☢ |
---|---|
🌀 Centrifuga in corso 🌀 | 🎽 E' l'ora di tendere i panni 🎽 |
Dopo aver configurato tutti i vari custom componments e aver otemperato ai prerequisiti è venuto il momento di iniziare con l'installazione vera e propria dei packages, che si compone di quattro passaggi:
- download da Github dello script di installazione
- avvio dello script in modalità "download"
- completamento del blueprint relativo all'elettrodomestico scelto
- avvio dello script in modalità "config"
Vediamo nel dettaglio i passaggi.
Download dello script |
---|
Il download automatico dei packages è possibile con l'utilizzo dello script smart_config.sh
, per cui è necessario effettuare il download del file e il posizionamento nella dir /config
o altra nella propria istanza di Home Assistant e quindi dare i giusti permessi di esecuzione, tutto questo è possibile con i seguenti passaggi attraverso la CLI (Command Line Interface) messa a disposizione dall'addon SSH (NON usare l'addon core-ssh) oppure da CLI del container di Home Assistant o su host nel caso di installazione HA Core su VENV:
- avviare l'addon SSH o collegarsi alla CLI del container;
- posizionarsi nella cartella
/config
; - scaricare lo script da github
smart_config.sh
; - dare i giusti permessi allo script con il comando
chmod
;
Di seguito la sequenza dei comandi:
cd /config
wget https://raw.githubusercontent.com/jumping2000/ha-packages/main/smart_config.sh
chmod +x smart_config.sh
NOTA: Se non riesci a lanciare i comandi precedenti dall'addon SSH, utilizza nella conf dell'addon l'username root, potrai ripristinare il precedente username alla fine della configurazione.
Struttura dei file |
---|
La struttura dei file è rappresentata di seguito, lo script di download utilizzerà questa alberatura, in alternativa l'utente esperto può riposizionare i files nella maniera che più preferisce.
La card Lovelace è unica ed è disponibile sia per chi usa la modalità YAML o storage.
NOTA: Saranno presenti due cartelle autoconfig, una per PC (autoconfig_x86_64) e una per Raspberry (autoconfig_rpi).
.
├── addons/
├── backup/
│
├── config/
│ │
│ ├── lovelace/
│ │ └── card_elettrodomestici/
│ │ ├── card_lavastoviglie.yaml
│ │ ├── card_forno.yaml
│ │ ├── card_lavatrice.yaml
│ │ └── card_asciugatrice.yaml
| |
│ ├── packages/
│ │ ├── autoconfig/
│ │ │ ├── pyarmor_runtime_000000/
│ │ │ └─── auto_config.py
│ │ ├── keys.txt
│ │ └── elettrodomestici/
│ │ ├── washing_machine.yaml
│ │ ├── dishwasher.yaml
│ │ ├── oven.yaml
│ │ └── dryer.yaml
│ │
│ ├── www/
│ │ └── hassiohelp/
│ │ └── pkg_elettrodomestici/
│ │ ├── XXXXX.png
. . ... XXXXX.png
│ │ ├── XXXXX.png
│ │ ├── sfondo_black.png
│ │ ├── sfondo_white.png
│ │ ├── sfondo_gray.png
│ │ └── sfondo_gray2.png
│ │
│ ├── home-assistant.log
│ └── secret.yaml
├── share/
└── ssl/
Tutti i packages "Elettrodomestici" dipendono da un unico blueprint e da uno script che permette download e configurazione automatici.
Download package & card |
---|
Effettuare i seguenti passaggi attraverso l'addon SSH oppure da CLI del container:
- effettuare il backup di HA;
- avviare lo script
smart_config.sh
con l'opzionedownload
(-->config# ./smart_config.sh download
<--), questo script si preoccuperà di effettuare il download di tutti i files necessari; - seguire le istruzioni dello script rispondendo "Si" alle prime tre domande relative alla scrittura dei file (ovviamente se si tratta della prima installazione di un package, già per i successivi occorre prestare attenzione altrimenti sovrascriverete i package già configurati), inserendo l'elettromestico da configurare e l'entità di energia;
Fatto questo riavviate Home Assistant e verificate che non ci siano nel log errori relativi al nuovo package (ad esempio dryer.yaml oppure oven.yaml, etc).
In particolare occorre prestare attenzione a non avere entità con lo stesso nome di altri package, un esempio è input_number.costo_energia
che è presente in tutti e quattro i packages di Elettrodomestici 2023, per cui se si installano due o più package occorre fare in modo che questa entità sia unica.
Blueprint |
---|
Lanciare il blueprint CN FSM :
- impostare le entità richieste come sensori di potenza e energia e le soglie di potenza relative all'attivazioni dell'elettrodomestico
- impostare le modalità di notifica, il blueprint funziona sia con il Centro Notifiche che senza;
- nel link precedente trovi la descrizione delle funzionalità offerte.
Nel blueprint occorre indicare i sensori relativi a potenza ed energia, i servizi di notifica, alcuni helper e le entità relative allo stato dell'eletrodomestico scelto, anche se poi ogni utilizzatore è libero di cambiarli; il tutto è abbastanza semplice poichè è organizzato in maniera ordinata secono questo ordine:
- prima si inseriscono i dati relativi alla presa/dispositivo di misurazione, quindi potenza, energia, tensione, corrente etc
- dopo si inseriscono le entità relative all'elettrodomestico scelto e specificati di seguito, per facilitare la compilazione si può inserire il nome ad esempio "asciugatrice" nel campo di inserimento.
- quindi si inseriscono le varie soglie di innesco delle varie fasi di lavaggio/cottura etc
- come ultimo punto si inseriscono le informazioni necessarie per le notifiche
Vediamo ora le entità relative al punto 2. da inserire per singolo eletrodomestico:
ASCIUGATRICE
input_select.dryer_status
sensor.dryer_status
input_boolean.asciugatrice_runtime
input_number.asciugatrice_energia_iniziale
counter.cicli_asciugatrice
FORNO
input_select.oven_status
sensor.oven_status
input_boolean.forno_runtime
input_number.forno_energia_iniziale
counter.cicli_cottura_forno
LAVATRICE
input_select.washing_machine_status
sensor.washing_machine_status
input_boolean.lavatrice_runtime
input_number.lavatrice_energia_iniziale
counter.cicli_lavaggio_lavatrice
LAVASTOVIGLIE
input_select.dishwasher_status
sensor.dishwasher_status
input_boolean.lavastoviglie_runtime
input_number.lavastoviglie_energia_iniziale
counter.cicli_lavaggio_lavastoviglie
Configurazione package & card |
---|
Dopo le operazioni preliminare sul package e il completamento del blueprint si passa alla fase finale di configurazione "automatica":
-
avviare lo script
smart_config.sh
con l'opzioneconfig
(-->config# ./smart_config.sh config
<--), questo script si preoccuperà di configurare il pacchetto con i dati inseriti nel blueprint; -
controllare package e card con un editor di testo e verificare che non ci siano tag "ENTITA' NON NEL BLUEPRINT" o "TAG_XX", che può indicare 2 cose:
- hai dimenticato di inserire nel blueprint delle entità necessarie;
- ci sono delle entità da cancellare poichè non significative nella tua configurazione;
-
finiti questi passaggi inserire la card dell'elettrodomestico (es. card_lavatrice.yaml) nella propria configurazione Lovelace in YAML oppure nella propria interfaccia costruita tramite UI come di seguito riportato;
-
controllare che non ci siano errori nel log di HA.
Avvertenze:
- ricordarsi di seguire i passaggi nell'ordine presentato in questo articolo;
- se sbagli qualcosa conviene cancellare i files scaricati e ripartire dall'inizio; oppure se si è più esperti effettuare le correzioni sui file YAML;
Lovelace - Storage |
---|
Chi usa questa modalità potrà fare copia e incolla del file Lovelace (es. card_asciugatrice.yaml) nella UI, dopo aver completato i passi precedenti, e variare sempre da UI gli aspetti che più interessano.
🚀 Modalità UI storage 🚀 |
---|
Per quanto riguarda le impostazioni grafiche è possibile agire sul proprio "tema" del Frontend oppure scegliere tra i vari sfondi presenti e su alcuni parametri relativi alla parte inferiore realizzata con button-card, in particolare:
- raggio del bordo
- colore del bordo
- colore di background
- altezza dei button inferiori
Alcune considerazioni |
---|
Il diagramma FSM realizzato dal blueprint é il seguente (in questo caso è visualizzato il diagramma relativo all'asciugatrice).
stateDiagram-v2
direction LR
[*] --> Idle
Idle --> Asciugatura: POWER/TIME_1
Asciugatura --> Mantenimento: POWER/TIME_2
Mantenimento --> Asciugatura: POWER/TIME_3
Mantenimento --> Svuotare: POWER/TIME_4
Svuotare --> Idle: TIME_1
Per quanto riguarda lo script python, esso effettua una serie di operazioni di _"ricerca e sostituzione"_ all'interno del container, quindi il suo utilizzo è assolutamente sicuro: nel caso di problemi basterà cancellare lo script e riavviare HA.
Con questo package abbiamo visto come combinare insieme diversi elementi:
- un blueprint per semplificare la configurazione
- una grafica accattivante con alcuni effetti visuali.
- un uso moderno dei dati statistici di HA
- la grande novità della funzionalità di auto-download e auto-configurazione!!
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 discussione nel forum di HA. Per la parte FSM in ESPHOME Mikhail Diatchenko ha realizzato un ottimo componente: ESPHome State Machine.
Tutti i nostri "follower" 😄
Supporto |
---|
Ti piace questo package? Lascia una ⭐ su Github e supportami per realizzarne altri!