Skip to content

Latest commit

 

History

History
474 lines (359 loc) · 28.3 KB

elettrodomestici_2023.md

File metadata and controls

474 lines (359 loc) · 28.3 KB

$$\textbf{\color{lightgreen} \huge 🌀 Elettrodomestici Smart 2023💦}$$

🔥 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)

Elettrodomestici Smart Video


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

Websitebadge Forum telegrambadge facebookbadge

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 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:

  1. Adattabile per l'uso su tablet, smartphone, PC;
  2. Macchina a stati finiti per ricavare lo stato della elettrodomestico;
  3. Utilizzo di codice YAML non obsoleto e riduzioni del "codice inutile";
  4. Versioni grafica unificata per dashboard "yaml" e "storage", vedi Dashboard;
  5. Riduzione del numero di componenti custom necessari;
  6. Utilizzo dei dati statistici conservati nel DB di HA senza quindi richiedere uan retention "infinita" o cmq molto estesa del DB stesso;

$$\textbf{\color{red} \normalsize 🚨 Come usuale prestate massima attenzione ai collegamenti elettrici. 🚨}$$

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/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:

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 dall'elettrodomestico.

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 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.


User Interface

🖥 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 🎽

Installazione

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:

  1. download da Github dello script di installazione
  2. avvio dello script in modalità "download"
  3. completamento del blueprint relativo all'elettrodomestico scelto
  4. 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/

Configurazione

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.shcon l'opzione download (--> 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

$$\textbf{\color{blue} \normalsize 🌀 Ricorda: dovrai eseguire il blueprint per ogni elettrodomestico che vorrai configurare. 🌀}$$

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.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

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:

  1. prima si inseriscono i dati relativi alla presa/dispositivo di misurazione, quindi potenza, energia, tensione, corrente etc
  2. 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.
  3. quindi si inseriscono le varie soglie di innesco delle varie fasi di lavaggio/cottura etc
  4. 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.shcon l'opzione config (--> 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:

  1. ricordarsi di seguire i passaggi nell'ordine presentato in questo articolo;
  2. 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:

  1. raggio del bordo
  2. colore del bordo
  3. colore di background
  4. 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
Loading

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.

Conclusioni

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!

Websitebadge Forum telegrambadge facebookbadge