Créer un carte de consigne de température de type Climate

Mon problème

Bonjour à tous,

Il y a quelque temps, j’ai installé ce plugin dans HA pour gérer mon pôele à distance. Seulement les cartes ne sont pas très ergonomique. Les curseur sont impossibles à régler depuis l’appli mobile…

Capture d'écran 2024-03-01 184819

J’ai essayé d’utiliser une entitée climate mais l’attribut heater doit être un toggle et donc il n’est pas possible (sauf erreur de ma part) d’agir sur le set point.

Auriez vous une idée pour rendre la chose plus simple à utiliser et obtenir un résultat dans ce gout là ?

image

Salut,

Tu as 2 pistes :

Merci pour ton retour.

Avant que tu ne me réponde, j’avais essayé de mettre ça dans mon configuration.yaml:

climate:
  - platform: generic_thermostat
    name: Poele
    unique_id: poele_salon
    heater: input_number.setpoint
    target_sensor: sensor.temp_ambiente
    min_temp: 7
    max_temp: 23
    ac_mode: false
    precision: 0.1
    target_temp_step: 1.0

En lisant la doc, j’ai compris que le heater ne pouvais être qu’un toogle mais je ne veux pas que ce soit le on/off du poele et je si je n’en mets pas, ça ne marche pas…

En voyant ton message (premier point), j’ai essayé de mettre ça à la suite :

  target_temperature_template: "{{states ('input_number.setpoint') }}"

  set_temperature:
      - service: input_number.set_value
        target: 
          entity id: input_number.setpoint
        
  # get current temp.
  current_temperature_template: "{{ states('sensor.setpoint') }}"

Mais visiblement HA ne l’accepte pas. Ce ne sont pas des argument pour un climate. Si je comprends bien, il faudrait que je fasse une automation qui :

  • en cas de changement de sensor.setpoint, on copie la valeur avec climate.set_temperature
  • en cas de changement de la temp du climate on change le input_number.setpoint

Et si tu changeait « juste » de carte ?

Par exemple les cartes mushroom_number te proposent soit un slider, soit des boutons +/- plus faciles par exemple pour regler un input number


Et tu peux conserver ta disposition horizontale:
image

Et sans installer Mushroom, tu peux faire la même chose avec les cartes Tuiles:


Effectivement il faut « jouer » sur les attributs du climate T° et la valeur de ton input dans une automation !

Merci pour vos retours,

Je trouvais ça relativement pratique de pouvoir afficher : température de consigne et température de la pièces et éventuellement ventilations dans la même carte…

Sinon, j’arrive à copier la valeur sensor.setpoint vers la température du climate mais pas l’inverse :

- trigger:
  - platform: state
    entity_id:
    - climate.poele
    attribute: temperature
  action:
  - service: input_number.set_value
    data:
      value: "{{states ('temperature')}}"
    target:
      entity_id: input_number.setpoint
  mode: single

Je ne vois pas comment accéder à la température de mon climate. Auriez vous une idée ?

Edit : Je crois avoir trouver :

value: "{{state_attr ('climate.poele', 'temperature')}}"
1 « J'aime »

regarde dans ton entité climate !
tu dois avoir les attributs ?
donc le state_attr

{{(state_attr('climate.poele','temperature')}}
1 « J'aime »

Ca marche, je vais essayer d’intégrer la ventilation et des température prédéfinie pour plus d’ergonomie

Normalement tu retrouves touts les attributs du climate, voir états mode develop !

Résumé
hvac_modes:
  - heat
  - "off"
min_temp: 5
max_temp: 28
preset_modes:
  - none
  - away
  - eco
  - boost
  - comfort
  - home
  - sleep
  - activity
current_temperature: 18.8
temperature: 20
hvac_action: heating
preset_mode: none
away_temp: 15
eco_temp: 17
boost_temp: 28
comfort_temp: 24
home_temp: 21
sleep_temp: 19
activity_temp: 22
control_output: 100
kp: 5
ki: 0.01
kd: 500
ke: 0
pid_mode: auto
pid_i: 100
friendly_name: Climate X
supported_features: 401

A quel endroit ?

Sinon j’ai encore quelques questions :

  1. Tu sais s’il est possible de controler un ventilateur ?
    Ici, il parle de fan_mode mais je ne vois pas d’attributs fan_mode dans la doc
  2. Tu sais comment utiliser les preset_modes ? J’ai tenté ça mais ce n’est pas reconnu…
climate:
  - platform: generic_thermostat
    name: Poele
    unique_id: poele_salon
    heater: input_number.setpoint
    target_sensor: sensor.temp_ambiente
    min_temp: 7
    max_temp: 23
    ac_mode: false
    precision: 0.1
    target_temp_step: 1.0
    preset_mode: 
        - away
        - sleep
        - comfort
    away_temp: 7
    sleep_temp: 16
    comfort_temp: 19

Je me sert de smart_thermostat

Résumé
- platform: smart_thermostat
  name: SALON Thermostat
  unique_id: salon_smart_thermostat
  heater: climate.rad_salon_2
  target_sensor: sensor.tfa_ts34c_cresta_a0_0e_temperature
  outdoor_sensor: sensor.temperature_toit
  min_temp: 7
  max_temp: 28
  ac_mode: False
  target_temp: 19
  keep_alive:
    seconds: 60
  away_temp: 15         # Absent
  eco_temp: 17          # Eco
  sleep_temp: 19        # Nuit
  home_temp: 21         # Présent
  activity_temp: 22     # Activité
  comfort_temp: 24      # Confort
  boost_temp: 28        # MAXI
  kp: 5
  ki: 0.01
  kd: 500
  pwm: 00:15:00

Pour le generic

- platform: generic_thermostat
  name: Salle a Manger generic radiateur
  unique_id: climate.salle_manger_generic_radiateur
  heater: switch.rad_salle_manger
  target_sensor: sensor.rad_salle_manger_temperature
  min_temp: 18
  max_temp: 27
  ac_mode: false
  target_temp: 19
  cold_tolerance: 0.3
  hot_tolerance: 0
  min_cycle_duration:
    seconds: 5
  keep_alive:
    minutes: 3
  initial_hvac_mode: "heat"
  away_temp: 18         # Absent
  sleep_temp: 19        # Nuit
  home_temp: 21         # Présent
  activity_temp: 22     # Activité
  comfort_temp: 24      # Confort
  precision: 0.1

Merci pour le retour. Ca commence à ressembler à ce que je veux.

Problèmes qu’il me reste :

  1. Je n’arrive pas à utiliser la partie fan_mode. Il y a quelque chose à activer dans mon fichier configuration.yaml?
  2. Je ne sais pas trop comment utiliser le switch en bas. Idéalement, j’aurais bien aimé qu’il serve à mettre mon poele en on/off mais je ne veux pas que ce soit le thermostat HA qui pilote le fonctionnement du poele avec un mode off. Le controle interne du poele marche mieux et cela provoque des erreurs.

Sur quelle carte tu as le Mode de ventilation du thermostat ? comment est la config du climate.poele

Sur le smart_thermostat tu peux ajouté des BP, et comme le générique ne pas afficher les ON/OFF du bas !

Désolé, je n’ai pas compris. Et c’est quoi des BP ?

En soit ça m’intéresse de pouvoir utiliser le on/off pour contrôler le bouton on/off de mon poele mais je ne veux pas que quand la température cible est dépassé, ça bascule le switch sur off. Cela risque de me créer des erreurs, encrasser mon poele prématurément et casser ma bougie d’allumage.

Voici ma config :

climate:
  - platform: generic_thermostat
    name: Poele
    unique_id: poele_salon
    heater: input_number.setpoint
    target_sensor: sensor.temp_ambiente
    min_temp: 7
    max_temp: 23
    ac_mode: false

    precision: 0.1
    target_temp_step: 1.0
    away_temp: 7
    sleep_temp: 16
    activity_temp: 18
    comfort_temp: 19

et le code de la carte correspondant :

type: thermostat
entity: climate.poele
features:
  - type: climate-fan-modes
    style: icons
    fan_modes:
      - 'off'
      - low
      - medium
      - high
    show_current_as_primary: true
  - style: icons
    preset_modes:
      - none
      - away
      - comfort
      - sleep
      - activity
    type: climate-preset-modes
  - type: climate-hvac-modes
    hvac_modes:
      - heat
      - 'off'
show_current_as_primary: true

On peut voir que les fan_modes sont bien déclarés mais il ne sont pas disponibles. Il ne sont pas disponible non plus dans les dev_tools. Il doit falloir créer l’attribut dans le fichier de config mais je ne sais pas comment faire.

Slt.
Là il faudrait que la définition du climate soit fait avec autre entité que celle que tu as mis (heater), car c’est sur cette entité que ce fait le on/off.
Possibilité sur une autre entité qui n’aurait pas le off du vrai ! (template).

Pour le fan_modes, il faut que le matériel le gère, ou tricher avec des cde.

BP pour bouton poussoir, on parle aussi d’interrupteur !

Pour résumer, si j’avais voulu que ça marche, il aurait fallut que la personne qui a fait l’intégration la déclare comme une entité climate et non comme avec des input_number, sensor, ect.

Pour information !
Si tu écris dans ta carte les types features !

features:
  - style: icons
    preset_modes:
      - none
      - away
      - eco
      - boost
      - comfort
      - home
      - sleep
      - activity
    type: climate-preset-modes
  - style: dropdown
    hvac_modes:
      - auto
      - heat_cool
      - heat
      - cool
      - dry
      - fan_only
      - 'off'
    type: climate-hvac-modes
  - style: icons
    type: fan-speed
  - style: icons
    type: humidifier-modes
    modes:
      - home
      - eco
  - style: icons
    type: climate-fan-modes
    fan_modes:
      - "off"
      - low
      - medium
      - high

Si ton entité climate ne gère pas les mode écrit dans features
les fonctionnalités ne seront pas dispo, non compatibles !
image