Chauffage électrique sans fils pilote (version par pièces)

bonjour, comme beaucoup me précise que leurs maison est différente de la mienne, ou des pièces moins utilisées , ou que certaines personnes sont absente plusieurs jours de la maison (alternance, étude…).
je vais donc essayer de faire quelques choses de différents de celui-la.

  • climat reste identique

  • consigne réglable , bouton général on/off, bouton horaire et 3 plages de changement: seront conservés, rajout d’un bouton par salle (en manuel mais peut etre pilotable par un calendrier, une automation ou autre) pour pouvoir envoyé une consigne différente de la général (eco). et un sensor de la consigne général.

  • création d’un blueprint par faire les automations par pièces.

* je reste ouvert à vos idées. j’attend vos propositions


1/ le sensor de consigne général:

le sensor

dans le fichier sensor.yaml:

#############################
########  chauffage  ########
#############################
- platform: template
  sensors:
    consigne_generale:
      friendly_name: "consigne générale"
      value_template: >-
          {% if is_state('input_select.chauffage','eco')  %} {{states('input_number.consigne_eco')}}
          {% elif is_state('input_select.chauffage', 'normal') %} {{states('input_number.consigne_normal')}}
          {% elif is_state('input_select.chauffage', 'confort') %} {{states('input_number.consigne_confort')}}
          {% else %}

la carte sur lovelace, couleur à définir vous même.

type: gauge
entity: sensor.consigne_generale
min: 15
max: 25
severity:
  green: 19
  yellow: 20
  red: 21

animiertes-gif-von-online-umwandeln-de

2 /les boutons par salles. à ajuster à vos besoins

les input

dans le fichier input_boolean.yaml

#############################
######## chauffage ##########
#############################    
ch1_on_off:
  name: ch1 on/off
  icon: mdi:thermostat-box
ch2_on_off:
  name: ch2 on/off
  icon: mdi:thermostat-box
ch3_on_off:
  name: ch3 on/off
  icon: mdi:thermostat-box
ch4_on_off:
  name: ch4 on/off
  icon: mdi:thermostat-box
cuisine_on_off:
  name: cuisine on/off
  icon: mdi:thermostat-box
salle_on_off:
  name: salle on/off
  icon: mdi:thermostat-box
salle_de_bain:
  name: sdb on/off
  icon: mdi:thermostat-box

3/ les automations.
3.1/ changement de consigne générale par horaire.
à modifier selon vos besoins nombre de plages. principe:
3.1.1/ 1 plage

pour 1 plage horaire
  • id: ‹ 1 plage confort ›
    alias: CH on/off horaire 3
    description: ‹  ›
    trigger:
    • platform: template
      value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_start_3 ›‹ )[0:5])
      }} ›
    • platform: template
      value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_stop_3 ›‹ )[0:5])
      }} ›
      condition: []
      action:
    • choose:
      • conditions:

        • condition: template
          value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_start_3 ›‹ )[0:5])
          }} ›
          sequence:
        • service: input_select.select_option
          data:
          option: confort
          entity_id: input_select.chauffage
      • conditions:

        • condition: template
          value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_stop_3 ›‹ )[0:5])
          }} ›
          sequence:
        • service: input_select.select_option
          data:
          option: eco
          entity_id: input_select.chauffage
        • service: automation.turn_on
          entity_id: automation.ch_ext_en_baisse
          default: []
          mode: single

3.1.2/ 2 plages

pour deux plages horaire

id: ‹ deux plage normal ›
alias: ‹ CH on/off horaire 1 et 2 ’
description: ‹  ›
trigger:
- platform: template
value_template: ‹ {{ (states( ›‹ sensor.time › ›) == states(‹ ‹ input_datetime.sejour_start_1 › ›)[0:5])
or (states(‹ ‹ sensor.time › ›) == states(‹ ‹ input_datetime.sejour_start_2 › ›)[0:5])
}}’
- platform: template
value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_stop_1 ›‹ )[0:5])
or (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_stop_2 ›‹ )[0:5])
}} ›
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: ‹ {{ (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_start_1 ›‹ )[0:5])
or (states( ›‹ sensor.time ›‹ ) == states( ›‹ input_datetime.sejour_start_2 ›‹ )[0:5])
}} ›
sequence:
- service: input_select.select_option
data:
option: normal
entity_id: input_select.chauffage

    - conditions:
      - condition: template
        value_template: '{{ (states(''sensor.time'') ==  states(''input_datetime.sejour_stop_2'')[0:5])
          or (states(''sensor.time'') == states(''input_datetime.sejour_stop_1'')[0:5])
          }}'
      sequence:
      - service: input_select.select_option
        data:
          option: eco
        entity_id: input_select.chauffage
      - service: automation.turn_on
        entity_id: automation.ch_ext_en_baisse
    default: []
  mode: single

3.2/ ajustement par pièces.
modifier la consigne d’une pièces si elle n’est pas occupé
le bleuprint est a mettre dans le dossier blueprint crée un fichier chauffage puis chauffage.yaml
recharger les automations, puis faire pièce par pièce

le plan
blueprint:
  name: chauffage_piece_
  description: controle du chauffage par piéces
  domain: automation
  input:
    heating:
      name: radiateur
      description: le radiateur de la chambre
      selector:
        entity:
            domain: climate
    piece:
      name: choix piéces
      description: la piece.
      selector:
        entity:
          domain: input_boolean
variables:
  piece: !input piece
trigger:
  - platform: homeassistant
    event: start
  - platform: state
    entity_id: sensor.consigne_generale
  - platform: state
    entity_id: !input 'piece'
action:
 - choose:
      - conditions:
          - condition: state
            entity_id: input_select.chauffage
            state: confort
          - condition: state
            entity_id: !input 'piece'
            state: 'on'
        sequence:
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.consigne_confort'') }}'
            entity_id: !input 'heating'
      - conditions:
          - condition: state
            entity_id: input_select.chauffage
            state: normal
          - condition: state
            entity_id: !input 'piece'
            state: 'on'
        sequence:
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.consigne_normal'') }}'
            entity_id: !input 'heating'
   default:
     - service: climate.set_temperature
       data:
        temperature: '{{ states(''input_number.consigne_eco'') }}'
        entity_id: !input 'heating'
mode: single 

les automations sont dans le fichier automation.yaml c’est différent de celle que vous faites vous même mais toutes modification du plan , suivie d’un recharge des automation à appliquer… géniale je vais donc intégré la baisse rapide de température ext dans mon plan sans avoir à modifier dans chaques automations.
j’adore HA :heart_eyes:

Pas mal le BluePrint !
J’avais fait un truc du genre que j’utilise toujours sur mon installation. Mais pour mon frère j’ai utilisé le Scheduler afin qu’il puisse gérer ses plages horaires par pièces. Perso si je dois refaire je le ferait peut être bien avec Schedy… (My Canaletto | Home Assistant & Planification, Schedy !) qui offre plusieurs avantages, dont la re planification… Après il faut faire un peu d’interface, ou pas si tu es le seul à jouer avec les plages horaires…