Modbus TCP/IP - Ecriture variable INT f(liste de choix dans HA) vers un équipements

Bonjour ce n’était pas du tout une critique :wink:
On a tous une vie en dehors du forum.

T’inquiète je ne l’ai pas mal pris, je voulais juste expliquer le pourquoi :wink:

bonjour
tu as reçu ta passerelle ? la mienne délais repoussé par le fabricant en 2023 sans date précise … elle est à 409€ chez maison energy mais en fait ils n’ont pas de stock (alors que marqué en stock sur leur site) !
je sent que je vais tenter aussi en allemagne (c’est chez kimacorner.de ?)

Vous n’avez pas tenté cette approche ? Ce serait à refaire je tenterai.

je sens que je vais craquer et vais essayer cette technique. il me reste 1 raspberry pi3…
mais c’est unidirectionelle :(.
La principale info que je veux lui communiquer et le passage en mode eco et forcage ECS. Je crois qu’on peut le faire via contacte sec, il me reste qq relais aussi. j’y réflechis ce WE :slight_smile:

Je sais pas si le bus est le même mais je me dis que tenter si on a le matériel ne coûte pas très chère !

Oui bien commandé chez klimacornerde, mais eu aussi on dit après la commande qu’il ne save pas quand ça sera dispo, mis a part mention de semaine 52 possiblement.

Il faut que je rappel mon installateur, car lui a dit pouvoir le procurer, pour 350€ HT je crois.

De toute façon on attend encore Enedis pour confirmation de la date pour passage en triphasé avant qu’on puisse installé la PAC.

Au pire on se contentera de la liaison simple cable pour contrôler chauffage (j’utilise un WiFi MQTT Relay / Thermostat de OpenEnergyMonitor) en attendant la passerelle modbus, comme avec la vieille chaudière fioul.

Pour ce qui est de la config Home Assistant, je me dis qu’on pourrais éviter Node Red puisque les valeur commence toujours par 0, alors on peut convertir l’option du input_select en « integer » lorsqu’on passe la valeur à modbus dans l’automation.
Pas encore entièrement tester en pratique, seulement sur la théorie pour l’instant

Disons que nos input_select sont du genre:

input_select:
  pac_mode:
      name: Mode Pompe a Chaleur
      options:
        - Froid
        - Chaleur
        - Auto
      initial: Auto
      icon: mdi:heat-pump

Si on met bien les options dans l’ordre de leur numéro, alors dans un automation on devrait pouvoir récupérer/convertir en numéro dans l’action avec quelque chose du genre:

data_template:
  value: "(state_attr('input_select.pac_mode','options').index(states('input_select.pac_mode')))|int"

Et pour réduire au minimum le nombre d’automation nécessaire on peut mettre tout les entity comme trigger, et dans l’action on utilise trigger, ce qui nous donne

data_template:
  value: "(state_attr('trigger.entity_id','options').index(trigger.to_state.state)))|int"

Pour ce qui est de l’adresse modbus je pense qu’on peut définir ça avec un mapper

- service: modbus.write_register
        data_template:
          address: >-
                    {% set mapper =
                      { 'input_select.pac_mode':'1001',
                        'input_select.pac_eco_mode':'1007',
                        'input_select.pac_ecs_boost':'1026' } %}
                    {{ mapper[trigger.entity_id]|int }}
          value: '{{ (state_attr('trigger.entity_id','options').index(trigger.to_state.state)))|int }}'

Ceci dit c’est ma premiere fois avec Modbus alors garantie que je me plante quelques parts.

Encore faut-il le mécanisme pour que les changement fait directement sur la pac met à jour Home Assistant dans la foulé. Mais je pense que vu les sensors mis en place par neuvidor on devrait pouvoir faire un automation similaire, ou bien utiliser des template pour les input_select justement.

Mais la pour convertir le numéro en valeur on fait un peut l’inverse, on prend la valeur numérique du sensor pour appliquer la valeur correct au input_select

value: '{{ state_attr('input_select.pac_mode', 'options')[states('sensor.pac_1051_unit_mode')|int] }}'
# si valeur de 'sensor.pac_1051_unit_mode` passe a 1, alors 'value' sera 'Chaleur'

Une fois que tout sera installé je tenterais de bidouiller avec tout ça et peut-être tenté mon premier Blueprint.