community italiana di domotica personale
 
Controllare una stufetta (o analoghi) sulla base di un range termico tramite Home Assistant

Controllare una stufetta (o analoghi) sulla base di un range termico tramite Home Assistant

SCOPI DEL PROGETTO:
  • Gestire accensione e spegnimento di un elemento riscaldante in modo automatico in base a un range (intervallo) di temperature
  • Livello di difficoltà: basso
  • Costo: n.a.
CONCETTI AFFRONTATI:
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • Il computer sul quale è in esecuzione Home Assistant
  • Un ventilatore già modificato/controllato tramite un attuatore domotico (tipo smart plug, o altro, vedi esempi) integrato a Home Assistant
  • Un sensore di temperatura già integrato in configurazione Home Assistant (vedi esempi)
PROGETTO INDICATO a UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione progetto: 1.1

Termoventilatore - Home Assistant

Abstract

D’inverno molti apprezzano l’uso di piccole stufe o elementi riscaldanti elettrici, tipicamente a resistenza, ad elementi ceramici o altro. Queste piccole unità permettono di diffondere un piacevole calore: alcuni sono dotati di termostato, in grado di spegnere l’unità al raggiungimento di determinate soglie, altri invece no. Tuttavia, persino quelle dotate di termostato talvolta sono poco efficaci, perché magari la regolazione è imprecisa o confusa dal calore stesso che l’unità accumula durante l’uso.

La domotica ci viene in aiuto. Il presente progetto permetterà di configurare presso Home Assistant un meccanismo automatico tale da fornire all’utente la possibilità di scegliere una temperatura minima nella stanza a di sotto della quale l’unità riscaldante si accenda automaticamente e una massima al di sopra della quale essa si spenga, sempre automaticamente.

In questa guida utilizziamo un termostato virtuale grazie all’adozione della piattaforma “Generic Thermostat“, una delle figlie del componente “Climate“. Questa piattaforma consente di creare un termostato virtuale che agisca su un dato switch (accendendolo e spegnendolo) a fronte del raggiungimento/allontanamento rispetto a una data temperatura target scelta dall’utente.

N.b. Ovviamente questo mini-progetto può essere applicato a qualsiasi entità di tipo switch: tutto quanto spiegato vale anche per unità riscaldanti di ogni tipo, purché integrati a Home Assistant come “Switch”. La stessa cosa si può fare d’estate coi ventilatori.

ATTENZIONE: delegare l’accensione automatica di un’unità termica può rappresentare un potenziale pericolo. Per quanto la presente guida sia a puro scopo didattico, vi consigliamo di prestare particolare attenzione a ciò che realizzate in proprio. L’automazione è un valore, ma non deve rappresentare un pericolo mai.

Altri progetti disponibili su inDomus dedicate a questi temi sono:

Si parte

Assunzioni

Si assume che presso la configurazione di Home Assistant siano presenti le seguenti entità:

  • uno “Switch chiamato “stufetta” (“switch.stufetta”) che corrisponda all’attuatore che eroga/interrompe corrente all’unità riscaldante – in sostanza, che lo accende/spegne (attenzione a scegliere attuatori in grado di supportare l’assorbimento elettrico massimo dell’unità riscaldante);
  • un “Sensor” di temperatura chiamato “temperatura” (“sensor.temperatura”) che fornisca la temperatura istantanea della stanza in cui è presente l’unità riscaldante con una risoluzione al decimo di grado centigrado.
Vetrina Promo

Noi abbiamo testato la cosa utilizzando un sensore di temperatura Xiaomi e una presa intelligente Shelly Plug S; in alternativa si può utilizzare una qualunque sensore integrabile e una qualsiasi presa intelligente integrabile o attuatore a singolo canale, purché adeguata al carico elettrico da supportare.

Creazione del termostato

Creare un termostato dati gli assunti di cui sopra è piuttosto elementare. La configurazione proposta è la seguente:

climate
  - platform: generic_thermostat
    name: Stufetta
    heater: switch.stufetta
    target_sensor: sensor.temperatura
    min_temp: 24
    max_temp: 31
    ac_mode: false
    target_temp: 27
    cold_tolerance: 0.2
    hot_tolerance: 0.2
    initial_hvac_mode: "off"
    precision: 0.1

Questa configurazione definisce un’entità “Climate” chiamata climate.stufetta.

Vediamo i campi relativi alla configurazione:

name Definisce il nome dell’entità
heater Qui si indica quale sia l’entità acceso/spento da controllare (nel nostro caso switch.stufetta)
target_sensor Il sensore di temperatura da utilizzare per capire se lo switch indicato nel campo heater debba venire acceso o spento in relazione alla temperatura target impostata dall’utente
min_temp Indica quale sia la temperatura target minima regolabile
max_temp Indica quale sia la temperatura target massima regolabile
ac_mode Impostato a “false” fa funzionare l’entità “Climate” come gestione di un elemento riscaldante
target_temp La temperatura target di default
cold_tolerance Quanti gradi di tolleranza fredda vengono considerati (se lo imposto a 0.5 e la temperatura target è 27, lo switch viene spento sotto i 26.5)
hot_tolerance Quanti gradi di tolleranza calda vengono considerati (se lo imposto a 0.5 e la temperatura target è 27, lo switch viene acceso sopra i 27.5)
initial_hvac_mode La modalità iniziale (quando parte Home Assistant) dell’entità
precision La precisione di analisi di comparazione temperatura target/temperatura rilevata

Uso

Naturalmente l’entità così generata può essere utilizzata manualmente presso l’interfaccia di Home Assistant, consentendo all’utente di regolare con semplicità la temperatura target tramite l’utilizzo di una “card” grafica di tipo termostato:

Home Assistant - Generic Thermostat - Stufetta

Ovviamente nessuno vieta di utilizzarla anche tramite automazioni, magari attivandola automaticamente impostando delle temperature target a fronte di determinati scenari, oppure disattivandola per esempio quando si esce di casa, e così via.

N.b. Usiamo i termini attivare/disattivare anziché accendere/spegnere per non generare confusione. L’accensione e lo spegnimento dell’entità switch (quale che sia) avviene quando l’entità climate è attiva e quando si raggiunge o meno la temperatura target impostata. Se l’entità climate è disattiva, anche a fronte del raggiungimento (o meno) della temperatura target precedentemente impostata non ci sarà alcuna azione sullo switch

Mettiamo per esempio di voler disattivare l’entità climate (quindi evitare eventuali accensioni non volute dell’unità riscaldante) quando usciamo di casa. In un’ipotetica automazione dentro/fuori casa, nel blocco action da innescare automaticamente quando si abbandona casam imposteremmo qualcosa del genere:

# parte finale dell'automazione che si attiva quando si esce di casa

    action:
      service: climate.turn_off
      entity_id: climate.ventilatore

Così facendo, l’entità climate.stufetta verrà automaticamente disattivata ogni qual volta si esce.

In base all’orario

Utile è anche un’eventuale automazione che attivi/disattivi l’entità climate.stufetta in base agli orari:

automation:
  - alias: "Auto stufetta"
    id: "auto_stufetta"
    trigger:
      - platform: time
        id: "attivazione"
        at: '19:30:00'
      - platform: time
        id: "disattivazione"
        at: '23:30:00'
    condition: []
    action:
      - choose:
          - conditions:
              - condition: trigger
                id: "attivazione"
            sequence:
              - condition: state
                entity_id: group.famiglia
                state: 'home'
              - service: climate.set_hvac_mode
                data:
                  entity_id: climate.stufetta
                  hvac_mode: heat
          - conditions:
              - condition: trigger
                id: "disattivazione"
            sequence:
              - service: climate.turn_off
                entity_id: climate.stufetta 

L’automazione prevede due trigger, uno alle 19.30 per l’attivazione e uno alle 23.30 per la disattivazione. Come si nota facilmente nel blocco action, l’attivazione è subordinata alla presenza di qualcuno in casa (utilizzando l’ipotetico gruppo famiglia chiamato group.famiglia), mentre la disattivazione alle 23.30 viene eseguita a prescindere.

Ovviamente, il limite come sempre  nella redazione di automazioni come questa è la fantasia.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.