Ma gestion du chauffage Thermostat générique

Voilà un petit tuto sur ma gestion du chauffage, je dispose d’une chaudière gaz.

Le pilotage peut se faire en automatique avec un calendrier et des flow nodered ou en manuel.

Matériel pour gérer la chaudière et le thermostat :

  • NodOn SIN-4-1-20 Module multifonction 100% interopérable Zigbee (contact sec chaudière)
  • SONOFF SNZB-02D Mini Capteur ZigBee de Température et d’humidité Intelligent, Thermomètre Hygrometre Intérieur, écran LCD

J’ai créé différents input pour gérer les paramètres :

  • Input_number : consigne confort
  • Input_number : consigne eco
  • Input_number : consigne hors gel
  • Input_boolean : bouton permettant de forcer le passage du mode auto à manuel
  • Input_schedule : calendrier mode confort ou éco
  • Input_select : liste déroulante permettant de sélectionner les modes : confort, eco, hors-gel ou Arrêt

2 flow Nodered :

  • chauffage_planning : se déclenche en fonction du planning, passage du mode éco à confort
  • chauffage_mode : se déclenche si changement du mode manuellement

Carte de commande :

Attention j’utilise decluttering_card pour simplifier mon code.

Ci-dessous le code de la carte :

type: custom:stack-in-card
cards:
  - type: horizontal-stack
    cards:
      - type: custom:decluttering-card
        template: tpl-bouton-entite
        variables:
          - entite: input_boolean.chauffage_mode_auto_input
          - label: Automatique
          - icon_off: mdi:thermostat-auto
          - icon_on: mdi:thermostat-auto
      - type: custom:decluttering-card
        template: tpl_input_select_generic
        variables:
          - newstatelabel: Confort
          - newstate: Confort
          - icon: mdi:fire
          - input_select: input_select.chauffage_selection_consigne
          - ratio: 1/1
      - type: custom:decluttering-card
        template: tpl_input_select_generic
        variables:
          - newstatelabel: Eco / Nuit
          - newstate: Eco
          - icon: mdi:weather-night
          - input_select: input_select.chauffage_selection_consigne
          - ratio: 1/1
      - type: custom:decluttering-card
        template: tpl_input_select_generic
        variables:
          - newstatelabel: Hors-gel
          - newstate: Hors-gel
          - icon: mdi:snowflake
          - input_select: input_select.chauffage_selection_consigne
          - ratio: 1/1
      - type: custom:decluttering-card
        template: tpl_input_select_generic
        variables:
          - newstatelabel: Arrêt
          - newstate: Arret
          - icon: mdi:power
          - input_select: input_select.chauffage_selection_consigne
          - ratio: 1/1
  - type: horizontal-stack
    cards:
      - type: thermostat
        entity: climate.chauffage_thermostat_maison
        name: Chauffage
  - type: horizontal-stack
    cards:
      - type: custom:button-card
        name: Réglage température
        styles:
          card:
            - height: 12px
            - background-color: rgb(196, 171, 45)
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-number-card
        entity: input_number.chauffage_consigne_confort
        name: Confort
        icon: mdi:fire
        fill_container: false
        secondary_info: state
        display_mode: slider
        layout: horizontal
        icon_color: green
        card_mod:
          style:
            mushroom-card:
              div:
                mushroom-number-value-control:
                  $:
                    mushroom-slider:
                      $: |
                        #slider{
                          height: 70%;
                          margin-top: 5px;
                        }
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-number-card
        entity: input_number.chauffage_consigne_eco
        name: Eco
        icon: mdi:weather-night
        fill_container: false
        secondary_info: state
        display_mode: slider
        layout: horizontal
        card_mod:
          style:
            mushroom-card:
              div:
                mushroom-number-value-control:
                  $:
                    mushroom-slider:
                      $: |
                        #slider{
                          height: 70%;
                          margin-top: 5px;
                        }
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-number-card
        entity: input_number.chauffage_consigne_hors_gel
        name: Hors-Gel
        icon: mdi:snowflake
        fill_container: false
        secondary_info: state
        display_mode: slider
        layout: horizontal
        icon_color: orange
        card_mod:
          style:
            mushroom-card:
              div:
                mushroom-number-value-control:
                  $:
                    mushroom-slider:
                      $: |
                        #slider{
                          height: 70%;
                          margin-top: 5px;
                        }
  - type: horizontal-stack
    cards:
      - type: entity
        entity: schedule.chauffage_planning_normal
        attribute: next_event

Le code decluttering à insérer dans la configuration de votre tableau de bord :

decluttering_templates:
  tpl_input_select_generic:
    default:
      ratio: 1/1
    element:
      type: custom:button-card
      icon: '[[icon]]'
      ratio: '[[ratio]]'
      tap_action:
        action: call-service
        service: input_select.select_option
        service_data:
          entity_id: '[[input_select]]'
          option: '[[newstate]]'
      hold_action:
        action: none
      show_icon: true
      show_name: true
      entity: '[[input_select]]'
      name: '[[newstatelabel]]'
      default: Salon
      styles:
        card:
          - background-color: white
          - color: rgb(145, 126, 33)
          - height: 60px
        name:
          - font-size: 12px
        icon:
          - height: 30px
          - color: rgb(145, 126, 33)
      state:
        - value: '[[newstate]]'
          styles:
            card:
              - background-color: rgb(145, 126, 33)
              - color: white
            icon:
              - color: white
  tpl-bouton-entite:
    default:
      - name: Soleil
      - entite: sun.sun
      - icon_off: weather-sunny
    card:
      type: custom:button-card
      entity: '[[entite]]'
      label: '[[label]]'
      show_label: true
      show_state: false
      show_name: false
      state:
        - value: 'off'
          icon: '[[icon_off]]'
          color: red
        - value: 'on'
          icon: '[[icon_on]]'
          color: green
      styles:
        label:
          - font-size: 12px
        icon:
          - height: 30px
        card:
          - height: 60px
  tpl-bouton-volet:
    card:
      type: custom:button-card
      entity: '[[entite]]'
      label: '[[label]]'
      show_label: true
      show_state: false
      show_name: false
      tap_action:
        action: toggle
      state:
        - value: close
          icon: '[[icon_off]]'
          color: rgb(196, 171, 45)
        - value: open
          icon: '[[icon_on]]'
          color: green
      styles:
        label:
          - font-size: 12px
        icon:
          - height: 30px

Flow Nodered :

Code des flows :

[{"id":"0e5d6fb01e4c4243","type":"tab","label":"Chauffage","disabled":false,"info":"","env":[]},{"id":"ca2f80a57cb3bdf1","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Mode Confort","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"preset_mode\":\"comfort\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":560,"y":140,"wires":[["8aa137d7a9144074"]]},{"id":"fdc27427ad9cd3ef","type":"server-state-changed","z":"0e5d6fb01e4c4243","name":"Chauffage Planning","server":"df03acce.f940b","version":5,"outputs":2,"exposeAsEntityConfig":"","entityId":"schedule.chauffage_planning_normal","entityIdType":"exact","outputInitially":false,"stateType":"str","ifState":"on","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":180,"wires":[["5323b7d64e9cf9dd"],["1053d68f3eae69dc"]]},{"id":"89dea17dbe773b20","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Mode Eco Sleep","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"preset_mode\":\"sleep\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":560,"y":220,"wires":[["c69e548faa04ad09"]]},{"id":"8aa137d7a9144074","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Temp Confort","server":"df03acce.f940b","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.chauffage_consigne_confort","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"delay","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":740,"y":140,"wires":[["a6698c4046506008"]]},{"id":"c69e548faa04ad09","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Temp Eco","server":"df03acce.f940b","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.chauffage_consigne_eco","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"delay","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":720,"y":220,"wires":[["a6698c4046506008"]]},{"id":"5323b7d64e9cf9dd","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Mode Auto ou Manuel","server":"df03acce.f940b","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.chauffage_mode_auto_input","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":340,"y":120,"wires":[["ca2f80a57cb3bdf1","eba84e8aaa823fd0"],[]]},{"id":"1053d68f3eae69dc","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Mode Auto ou Manuel","server":"df03acce.f940b","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.chauffage_mode_auto_input","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":340,"y":220,"wires":[["89dea17dbe773b20","1fc78249303ee717"],[]]},{"id":"eba84e8aaa823fd0","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Consigne Confort","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.chauffage_selection_consigne"],"data":"{\"option\": \"Confort\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":550,"y":80,"wires":[[]]},{"id":"1fc78249303ee717","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Consigne Eco","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.chauffage_selection_consigne"],"data":"{\"option\": \"Eco\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":560,"y":280,"wires":[[]]},{"id":"f83a564b762efb0b","type":"comment","z":"0e5d6fb01e4c4243","name":"Mode automatique sur Calendrier","info":"","x":150,"y":40,"wires":[]},{"id":"a6698c4046506008","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"temperature\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":970,"y":160,"wires":[["6ff0d6b5a891a638"]]},{"id":"6ff0d6b5a891a638","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Allumer","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"turn_on","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1160,"y":160,"wires":[[]]},{"id":"5329566fb3751406","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Comfort","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"preset_mode\":\"comfort\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":460,"y":400,"wires":[["569faf8643455bce"]]},{"id":"ccb863c53c2afc4d","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Eco Sleep","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"preset_mode\":\"sleep\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":470,"y":460,"wires":[["2e1da6ed86393f56"]]},{"id":"569faf8643455bce","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Temp Confort","server":"df03acce.f940b","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.chauffage_consigne_confort","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"delay","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":680,"y":420,"wires":[["71ca1c391e474d5a"]]},{"id":"71ca1c391e474d5a","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Maj Temp","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"temperature\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":840,"y":460,"wires":[["11492c769645104b"]]},{"id":"2e1da6ed86393f56","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Temp Eco","server":"df03acce.f940b","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.chauffage_consigne_eco","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"delay","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":660,"y":460,"wires":[["71ca1c391e474d5a"]]},{"id":"48eca92f522369dc","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Hors Gel Away","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"{\"preset_mode\":\"away\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":480,"y":500,"wires":[["6cf72c5cc284f4b2"]]},{"id":"6cf72c5cc284f4b2","type":"api-current-state","z":"0e5d6fb01e4c4243","name":"Temp Hors gel","server":"df03acce.f940b","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.chauffage_consigne_hors_gel","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"delay","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":680,"y":500,"wires":[["71ca1c391e474d5a"]]},{"id":"bd6756365dc71d68","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Arret None","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"turn_off","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":470,"y":560,"wires":[["09bcf5f2a0f0fd8c"]]},{"id":"11492c769645104b","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Allumer","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"climate","service":"turn_on","areaId":[],"deviceId":[],"entityId":["climate.chauffage_thermostat_maison"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1000,"y":460,"wires":[[]]},{"id":"09bcf5f2a0f0fd8c","type":"api-call-service","z":"0e5d6fb01e4c4243","name":"Mode Auto Input","server":"df03acce.f940b","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_off","areaId":[],"deviceId":[],"entityId":["input_boolean.chauffage_mode_auto_input"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":680,"y":560,"wires":[[]]},{"id":"549c33b0c27be5f9","type":"server-state-changed","z":"0e5d6fb01e4c4243","name":"Chauffage Mode","server":"df03acce.f940b","version":5,"outputs":1,"exposeAsEntityConfig":"","entityId":"input_select.chauffage_selection_consigne","entityIdType":"exact","outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":120,"y":460,"wires":[["82e2021584cf437f"]]},{"id":"82e2021584cf437f","type":"switch","z":"0e5d6fb01e4c4243","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Confort","vt":"str"},{"t":"eq","v":"Eco","vt":"str"},{"t":"eq","v":"Hors-gel","vt":"str"},{"t":"eq","v":"Arret","vt":"str"},{"t":"eq","v":"Automatique","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":290,"y":460,"wires":[["5329566fb3751406"],["ccb863c53c2afc4d"],["48eca92f522369dc"],["bd6756365dc71d68"],[]]},{"id":"f1515dddcd7a8def","type":"comment","z":"0e5d6fb01e4c4243","name":"Changement du mode de chauffage","info":"","x":180,"y":340,"wires":[]},{"id":"df03acce.f940b","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Voilà j’espère que cela vous aidera, merci à tous pour vos commentaires et améliorations :grinning:

4 « J'aime »