[Article] Gestion de bout en bout du chauffage

Bon, l’implémentation fait appel à beaucoup de concepts de HA et tu risques de souffrir un peu si tu débutes. Prends le temps de lire la doc des différents concepts utilisés, et bien comprendre comment ça fonctionne avant de l’implémenter. Mais cela peux te permettre d’apprendre et je peux essayer de répondre.

Oui il faut créer des input number, qui seront ensuite affiché dans la carte. Tu peux faire cela avec configuration / entrées (ou alors en yaml).
La puissance sera ensuite calculée et renseignée par le blueprint thermostat.
La consigne pourra être renseignée manuellement (si mode manuel), automatiquement par les programmations faites dans le scheduler (pour les modes auto - confort), ou enfin a une valeur base type 10°c (mode hors gel).

Merci de donner un peu de ton temps !
Je programmais en VB.Net donc certaines notions ne me sont pas étrangères. Entre temps, j’avais lu, recherché et effectivement créé les « Entrées » et réussi à avoir une carte fonctionnelle. Je procède par étapes et je n’ai donc pas encore implémenté la programmation.
Néanmoins, lorsque je sélectionne le mode « Manuel », je n’arrive pas à changer la consigne avec le mini thermostat qui apparaît. Par contre, en cliquant sur le bouton qui affiche la température de consigne, j’ouvre une fenêtre qui me permet de la modifier et de vérifier le bon fonctionnement du thermostat. Une idée ?

Je t’en prie. Si tu as des connaissances de développement, tu devrais rapidement t’approprier les choses.
Le changement de consigne utilise un champs custom:numberbox-card et il semble mal se comporter dans certain cas. Tu peux utiliser un input-number basique : supprime juste la ligne suivante dans la carte :

type: 'custom:numberbox-card'
1 « J'aime »

Bonjour @djal

Je ne comprends pas à quoi correspond chauffage_salon1_round , tu ne le cites pas dans tes posts ?

Salut, c’est un sensor que j’ai créé en + pour qu’il n’affiche dans le glance que la valeur arrondie.

- platform: template
  sensors:
    daily_chauffage_salon1_round:
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.energy_daily_chauffage_salon1') | float|round(2)) }}"

C’est pas clair… je comprends que ta consommation est contenue dans input_number.chauffage_salon_1_index

Je ne vois pas ce que représente chauffage_salon1.

Ma consommation est effectivement contenue dans input_number.chauffage_salon_1_index.

Mais celui ci n’est pas arrondi, avec beaucoup de décimales (avec un pas de 0.00025 c’est normal).

Pour afficher ma consommation quotidienne dans la carte, je passe par un sensor utility meter (a déclarer dans le fichier configuration.yaml) :

  energy_daily_chauffage_salon1:
    source: input_number.chauffage_salon_1_index
    cycle: daily

Mais il n’est pas arrondi non plus, alors je fais un autre sensor qui arrondi celui de l’utility meter (a déclarer dans un fichier sensor.yaml) :

- platform: template
  sensors:
    daily_chauffage_salon1_round:
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.energy_daily_chauffage_salon1') | float|round(2)) }}"

c’est ce sensor (sensor.daily_chauffage_salon1_round) que j’affiche sur la carte.

Merci @djal , c’est plus clair. Encore une dernière question concernant l’affichage du planificateur (custom:scheduler-card) que je trouve intéressant mais la doc sur le GitHub est vraiment succincte.

Pourrais-tu détailler tes commandes pour comprendre ?

Dans mon cas, je souhaite l’afficher sans conditions.

Merci encore.

Merci @Argonaute pour ce tutoriel: cela m’a permis de me passer de 2 flows NodeRed qui n’étaient pas optimaux voire franchement lourdingues à utiliser.

J’ai l’impression par contre, qu’il y a un (petit) bug dans le blueprint Thermostat TPI, dans le calcul de la puissance ici: {% if val > 1 %} {% set val = 100 %} si la condition est validée et la fenêtre est ouverte on a tout de même {% set val = 100 %}, ce qui a pour conséquence de … chauffer, avec la fenêtre ouverte.

Si mon analyse n’est pas mauvaise, alors le calcul de la puissance devrait être:

      puissance: >-
        {%set val = coeff_c * (consigne - temp_int) + coeff_t * (consigne -
        temp_ext) %}  {% if val > 1 and fenetre == 'off' %} {% set val = 100 %}  {% elif val < 0 or
        fenetre == 'on' %} {% set val = 0 %}  {% else %} {% set val = ( (val *
        100) | round(0)) %} {% endif %} {{val}}

Merci encore pour ce tutoriel

1 « J'aime »

Hello @diyanei,
Merci pour ton retour !! Et mon dieu oui, tu as raison il y a bien un bug avec la gestion de la fenêtre. J’aurai du m’en apercevoir.
Je vais republier le code corrigé. J’en profiterai pour mettre les blueprint sous github d’ailleurs, chose qui est resté dans ma todo.
Encore merci.

1 « J'aime »

J’ai republié le code du thermostat sous github avec correction de l’erreur signalée par @diyanei.
https://github.com/argonaute199/chauffage-home-assistant/blob/main/blueprint/thermostat_tpi.yaml
Il faut changer le blueprint avec le nouveau code et les automatisations seront mises à jour automatiquement.
Pour tester : le thermostat ne s’arrêtait pas quand on ouvrait une fenêtre si il était à 100%, et cela doit maintenant fonctionner.
@Dim33 et @djal : si vous avez implémenté le thermostat…

4 « J'aime »

Bonjour,

Effectivement, bien vu @diyanei et merci :wink:

1 « J'aime »

Salut @Dim33 , désolé j’étais passé à coté de ton message.

Voilà le code de mon scheduler :

      type: custom:scheduler-card
      standard_configuration: false
      discover_existing: false
      include:
        - input_number
      time_step: 15
      tags: SALON1
      show_add_button: false
      title: ''
      display_options:
        primary_info:
          - '{action}'
        secondary_info: relative-time

J’utilise TAGS, pour n’afficher que le planning correspondant à mon chauffage, et display_options pour le formater comme je veux, comme c’est marqué dans la doc

Il faut bien entendu « tagger » ton schedule :

image

Salut @Argonaute

Comme quoi, je n’étais pas complètement fou :wink: (voir mes posts plus haut), il y avait bien un bug mais que je n’ai pas su détecter.
Je vais faire la mise à jour même si pour l’instant je n’ai pas de détecteur d’ouverture.

Heuuuu … ça veut dire quoi ?

@Dim33 mettre une balise, comme dans ma capture

Merci, je n’avais pas vu cette option. Grâce à vous, ma carte commence à ressembler à quelque chose :

Y’a moyen de n’afficher que le planning actif (en rouge) ?

merci @djal pour les cartes !! c’est justement ce que je cherchais à faire, je me suis pas mal galérée dessus et par manque de temps j’ai laissé tombé temporairement mais du coup je vais tester ton implémentation !

@marj de rien, mais le gros du boulot est fait par @Argonaute !

1 « J'aime »

Je vais aussi suivre tout cela pour piloter mon chauffage puisque point de vue matériel j’ai tout OK.
Par contre si je veux simplement afficher ma consigne target_temp dans LoveLace j’y fait appel comment, je ne vois pas d’entité ?