Interfaçage HITACHI Yutaki S (Pompe à chaleur)

Oui, c’est ce que j’avais compris à l’époque.
L’ajout est fait, puis après redémarrage je ne vois toujours pas les menus sélect.

Voilà ce que j’obtiens :frowning:

Alors que je devrais obtenir quelque chose comme ce qui suit :

EDIT
Voici mon fichier modbus.yaml, qui est le même que celui posté au dessus.
J’ai juste ajouté le circuit 2.

######################################
### Modbus                           #
######################################

- name: "hitachi"
  type: tcp
  host: 192.168.1.XX
  port: 502
  retry_on_empty: true
  delay: 3

  switches:
    - name: "Marche/Arrêt TOTAL"
      unique_id: pac_1000_system_on_off
      address: 1000
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1050
          state_on: 1
          state_off: 0

    - name: "Zone RDC: Marche/Arrêt"
      unique_id: pac_1002_control_circuit_1_run_stop
      address: 1002
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1052
          state_on: 1
          state_off: 0


    - name: "Zone RDC: ECO mode"
      unique_id: pac_1007_control_circuit_1_eco_mode
      address: 1007
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1057
          state_on: 1
          state_off: 0

    - name: "Zone étage: Marche/Arrêt"
      unique_id: pac_1013_control_circuit_1_run_stop
      address: 1013
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1064
          state_on: 1
          state_off: 0


    - name: "Zone étage: ECO mode"
      unique_id: pac_1018_control_circuit_1_eco_mode
      address: 1018
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1069
          state_on: 1
          state_off: 0

    - name: "Heatpump Hot Water"
      unique_id: pac_1024_dhw_on_off
      address: 1024
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1076
          state_on: 1
          state_off: 0

    - name: "Heatpump DHW Boost"
      unique_id: pac_1026_dhw_boost
      address: 1026
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1078
          state_on: 1
          state_off: 0

  sensors:
    - name: pac_1051_unit_mode
      address: 1051

    # Circuit 1 (RDC = ZONE 2)
    - name: pac_1053_circuit1_heat_control_type
      address: 1053

    - name: pac_1054_circuit1_cold_control_type
      address: 1054

    - name: pac_1055_set_fix_temp_water_hot
      unit_of_measurement: °C
      device_class: temperature
      address: 1055

    - name: pac_1056_set_fix_temp_water_cold
      unit_of_measurement: °C
      device_class: temperature
      address: 1056

    - name: pac_1057_mode_eco_confort
      address: 1057

    - name: pac_1058_set_temp_offset_eco_hot
      unit_of_measurement: °C
      device_class: temperature
      address: 1058

    - name: pac_1059_set_temp_offset_eco_cold
      unit_of_measurement: °C
      device_class: temperature
      address: 1059

    - name: pac_1010_thermostat_available
      address: 1010

    - name: pac_1062_set_temp_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1062

    - name: pac_1063_temp_room_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1063
    
    # Circuit 2 (1er étage = ZONE 1)
    - name: pac_1072_set_temp_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1072
      
    - name: pac_1073_temp_room_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1073  
    
    # Domestic Hot Water
    - name: pac_1077_dhw_set_temp
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1077

    - name: pac_1076_dhw_boost_status
      address: 1078

    - name: pac_1079_dhw_demand_mode
      address: 1079

    - name: pac_1080_dhw_temp
      unit_of_measurement: °C
      device_class: temperature
      address: 1080
     

    # System / General
    - name: pac_1088_unit_mode_control
      address: 1088
      
    - name: pac_1089_unit_system_configuration
      address: 1089

    - name: pac_1090_unit_operational_status
      address: 1090

    - name: pac_1091_temp_outdoor
      unit_of_measurement: °C
      device_class: temperature
      address: 1091

    - name: pac_1092_temp_water_in
      unit_of_measurement: °C
      device_class: temperature
      address: 1092

    - name: pac_1093_temp_water_out
      unit_of_measurement: °C
      device_class: temperature
      address: 1093

    - name: pac_1094_hlink_status
      address: 1094

    - name: pac_1095_PCB_software
      address: 1095

    - name: pac_1096_LCD_software
      address: 1096

    - name: pac_1097_unit_capacity
      unit_of_measurement: kWh
      address: 1097

    - name: pac_1098_unit_power_consumption
      unit_of_measurement: kWh
      device_class: energy
      address: 1098

    - name: pac_1200_temp_water_out_hp
      unit_of_measurement: °C
      device_class: temperature
      address: 1200

    - name: pac_1201_temp_outdoor_average
      unit_of_measurement: °C
      device_class: temperature
      address: 1201

    - name: pac_1206_temp_gas
      unit_of_measurement: °C
      device_class: temperature
      address: 1206

    - name: pac_1207_temp_liquid
      unit_of_measurement: °C
      device_class: temperature
      address: 1207

    - name: pac_1208_temp_gas_discharge
      unit_of_measurement: °C
      device_class: temperature
      address: 1208

    - name: pac_1209_temp_evaporation
      unit_of_measurement: °C
      device_class: temperature
      address: 1209

    - name: pac_1210_expansion_valve_open_indoor
      unit_of_measurement: '%'
      scan_interval: 5
      address: 1210

    - name: pac_1211_expansion_valve_open_outdoor
      unit_of_measurement: '%'
      scan_interval: 5
      address: 1211

    - name: pac_1212_inverter_frequency
      unit_of_measurement: Hz
      scan_interval: 5
      address: 1212

    - name: pac_1213_cause_stoppage
      address: 1213

    - name: pac_1214_compressor_active_current
      unit_of_measurement: A
      address: 1214

    - name: pac_1215_capacity_data
      address: 1215

    - name: pac_1217_defrost
      address: 1217

    - name: pac_1218_unit_model
      address: 1218

    - name: pac_1219_water_temp_setting
      unit_of_measurement: °C
      address: 1219

    - name: pac_1220_water_flow
      unit_of_measurement: m3/h
      scale: 0.1
      precision: 2
      address: 1220

    - name: pac_1221_water_pump_speed
      unit_of_measurement: '%'
      address: 1221

    - name: pac_1223_alarm_number
      address: 1223

    # Outdoor Unit / Coolant
    - name: pac_1224_r134a_discharge_temp
      unit_of_measurement: °C
      address: 1224

    - name: pac_1225_r134a_suction_temp
      unit_of_measurement: °C
      address: 1225

    - name: pac_1226_r134a_discharge_pressure
      unit_of_measurement: bar
      scale: 0.1
      precision: 1
      address: 1226

    - name: pac_1227_r134a_section_pressure
      unit_of_measurement: bar
      device_class: pressure
      scale: 0.1
      precision: 1
      address: 1227

    - name: pac_1228_r134a_compressor_frequency
      unit_of_measurement: Hz
      device_class: frequency
      address: 1228

    - name: pac_1229_r134a_expansion_valve_2_indoor_open
      unit_of_measurement: '%'
      state_class: measurement
      address: 1229

    - name: pac_1230_r134a_compressor_active_current
      unit_of_measurement: A
      address: 1230

EDIT 2:
Tu as raison, le fichier template.yaml contient des erreurs.
Il n’est pas non plus adapté à la gestion de deux zones.
Je suis un peu largué pour la lecture de certains bouts de code, ça va me prendre du temps.

EDIT 3:
quelles parties du système doit redémarrer pour appliquer un changement dans template.yaml ?
je pense que je vais devoir le bosser … et je me louperai certainement plus d’une fois.

Désolé du silence, en voyage et sans ordinateur.

J’avoue que j’ai fait quelques changement de config depuis pour résoudre quelques aspects, surtout pour les templates.
Malheureusement pas eu le temps de regarder config de plus près depuis plusieurs mois.
J’ai surtout « bidouillé » avec les réglages modbus un peu pour tenter de résoudre les fausse valeurs (ou perte de connection) que certain registres reçoivent toutes les quelques minutes (mais je suis presque convaincu que c’est un problème de terminaison du cable rj45 maintenant).

J’essaierai de trouver du temps le mois prochain, une fois rentré, de documenter un peu plus ce que fais quoi.

Mais je n’ai qu’une seule zone de chauffage donc ma config n’est effectivement pas du tout pensé pour 2 zones, froid etc.

A la base je suis parti de la config de Neuvidor, mais j’ai mis en anglais parce que c’est la langue principale parlée a la maison (bien que personne d’autre ne touche au code…)

Pour les changement de templates, tu dois pouvoir juste redémarrer/reload “Template entities” dans Developer Tools, mais modbus requiert un redémarrage complet de HA.

Marci waako pour ces details.
De mon côté, je ne sais pas pourquoi le fichier template ne semble pas avoir d’effet sur le rendu final. Je me retrouve toujours avec un bouton toggle.
As-tu une idée ?

Redémarrage complet, tu veux dire l’os complet ou juste le redémarrage 30 sec ?

Les toggle marche/arret et ECO mode sont des switches modbus, et non pas des template select.
Ils ne seront pas dans le domaine modbus, donc faudra les chercher dans entities.

Désolé dure de bien expliquer sans ordinateur devant moi

On parle bien de ceux la ?

Ils sont bien liés au fichier template ?
Comment je peux les afficher ?

Dans un entities card, tu ajoute cette config par exemple:

type: entities
entities:
  - select.pac_eco_mode
  - select.pac_dhw_demand_mode

Bonjour
Ces 2 entité select ne sont ni dans le modbus.yaml ni dans le template.yaml. tu les as créé autre part?

Si, on les voit bien dans le fichier Template.
Je corrige des choses ce soir, je reviendrai poster une configuration, IHM inclus pour l’exemple.

en effet elle y sont j’avais mal vu, mais
select.pac_eco_mode
select.pac_dhw_demand_mode
semble être des entité introuvable, y doit y avoir un pb ailleurs sans doute le template.yaml qui est mal interprété par ha ( y a des erreurs)

Merci pour ta réponse.
Pour le moment j’arrive à afficher le selecteur.

Mais, j’ai 2 soucis :

  • il est vide
  • quand je sélectionne un item, j’ai cette erreur « Error rendering data template: UndefinedError: ‹ None › has no attribute ‹ index › ».

Voici mes fichiers.
modbus.yaml

######################################
### Modbus                           #
######################################

- name: "hitachi"
  type: tcp
  host: 192.168.1.XX
  port: 502
  retry_on_empty: true
  delay: 3

  switches:
    - name: "Marche/Arrêt TOTAL"
      unique_id: pac_1000_system_on_off
      address: 1000
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1050
          state_on: 1
          state_off: 0

    - name: "Mode Chaud/Froid"
      unique_id: pac_1001_system_hot_cold
      address: 1001
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1051
          state_on: 1
          state_off: 0
          
    - name: "Zone étage: Marche/Arrêt"
      unique_id: pac_1002_control_circuit_1_run_stop
      address: 1002
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1052
          state_on: 1
          state_off: 0


    - name: "Zone étage: ECO mode"
      unique_id: pac_1007_control_circuit_1_eco_mode
      address: 1007
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1057
          state_on: 1
          state_off: 0

    - name: "Zone RDC: Marche/Arrêt"
      unique_id: pac_1013_control_circuit_2_run_stop
      address: 1013
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1064
          state_on: 1
          state_off: 0


    - name: "Zone RDC: ECO mode"
      unique_id: pac_1018_control_circuit_2_eco_mode
      address: 1018
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1069
          state_on: 1
          state_off: 0

    - name: "Heatpump Hot Water"
      unique_id: pac_1024_dhw_on_off
      address: 1024
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1076
          state_on: 1
          state_off: 0

    - name: "Heatpump DHW Boost"
      unique_id: pac_1026_dhw_boost
      address: 1026
      write_type: holding
      command_on: 1
      command_off: 0
      verify:
          input_type: holding
          address: 1078
          state_on: 1
          state_off: 0

  sensors:
    - name: pac_1051_unit_mode
      address: 1051

    # Circuit 1 (Etage)
    - name: pac_1010_circuit1_thermostat_available
      address: 1010
      
    - name: pac_1053_circuit1_heat_control_type
      address: 1053

    - name: pac_1054_circuit1_cold_control_type
      address: 1054

    - name: pac_1055_circuit1_set_fix_temp_water_hot
      unit_of_measurement: °C
      device_class: temperature
      address: 1055

    - name: pac_1056_circuit1_set_fix_temp_water_cold
      unit_of_measurement: °C
      device_class: temperature
      address: 1056

    - name: pac_1057_circuit1_mode_eco_confort
      address: 1057

    - name: pac_1058_circuit1_set_temp_offset_eco_hot
      unit_of_measurement: °C
      device_class: temperature
      address: 1058

    - name: pac_1059_circuit1_set_temp_offset_eco_cold
      unit_of_measurement: °C
      device_class: temperature
      address: 1059

    - name: pac_1061_circuit1_set_temp_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1061

    - name: pac_1062_circuit1_temp_room_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1062
      
    - name: pac_1062_circuit1_set_temp_thermostat_wireless
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1062

    - name: pac_1063_circuit1_temp_room_thermostat_wireless
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1063
    
    # Circuit 2 (RDC)
    - name: pac_1069_circuit2_mode_eco_confort
      address: 1069
      
    - name: pac_1072_circuit2_set_temp_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1072
      
    - name: pac_1073_circuit2_temp_room_thermostat
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1073
      
    - name: pac_1074_circuit2_set_temp_thermostat_wireless
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1074
      
    - name: pac_1075_circuit2_temp_room_thermostat_wireless
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1075  
    
    # Domestic Hot Water
    - name: pac_1077_dhw_set_temp
      unit_of_measurement: °C
      device_class: temperature
      scale: 0.1
      precision: 1
      address: 1077

    - name: pac_1076_dhw_boost_status
      address: 1078

    - name: pac_1079_dhw_demand_mode
      address: 1079

    - name: pac_1080_dhw_temp
      unit_of_measurement: °C
      device_class: temperature
      address: 1080
     

    # System / General
    - name: pac_1088_unit_mode_control
      address: 1088
      
    - name: pac_1089_unit_system_configuration
      address: 1089

    - name: pac_1090_unit_operational_status
      address: 1090

    - name: pac_1091_temp_outdoor
      unit_of_measurement: °C
      device_class: temperature
      address: 1091

    - name: pac_1092_temp_water_in
      unit_of_measurement: °C
      device_class: temperature
      address: 1092

    - name: pac_1093_temp_water_out
      unit_of_measurement: °C
      device_class: temperature
      address: 1093

    - name: pac_1094_hlink_status
      address: 1094

    - name: pac_1095_PCB_software
      address: 1095

    - name: pac_1096_LCD_software
      address: 1096

    - name: pac_1097_unit_capacity
      unit_of_measurement: kWh
      address: 1097

    - name: pac_1098_unit_power_consumption
      unit_of_measurement: kWh
      device_class: energy
      address: 1098

    - name: pac_1200_temp_water_out_hp
      unit_of_measurement: °C
      device_class: temperature
      address: 1200

    - name: pac_1201_temp_outdoor_average
      unit_of_measurement: °C
      device_class: temperature
      address: 1201

    - name: pac_1206_temp_gas
      unit_of_measurement: °C
      device_class: temperature
      address: 1206

    - name: pac_1207_temp_liquid
      unit_of_measurement: °C
      device_class: temperature
      address: 1207

    - name: pac_1208_temp_gas_discharge
      unit_of_measurement: °C
      device_class: temperature
      address: 1208

    - name: pac_1209_temp_evaporation
      unit_of_measurement: °C
      device_class: temperature
      address: 1209

    - name: pac_1210_expansion_valve_open_indoor
      unit_of_measurement: '%'
      scan_interval: 5
      address: 1210

    - name: pac_1211_expansion_valve_open_outdoor
      unit_of_measurement: '%'
      scan_interval: 5
      address: 1211

    - name: pac_1212_inverter_frequency
      unit_of_measurement: Hz
      scan_interval: 5
      address: 1212

    - name: pac_1213_cause_stoppage
      address: 1213

    - name: pac_1214_compressor_active_current
      unit_of_measurement: A
      address: 1214

    - name: pac_1215_capacity_data
      address: 1215

    - name: pac_1217_defrost
      address: 1217

    - name: pac_1218_unit_model
      address: 1218

    - name: pac_1219_water_temp_setting
      unit_of_measurement: °C
      address: 1219

    - name: pac_1220_water_flow
      unit_of_measurement: m3/h
      scale: 0.1
      precision: 2
      address: 1220

    - name: pac_1221_water_pump_speed
      unit_of_measurement: '%'
      address: 1221

    - name: pac_1223_alarm_number
      address: 1223

    # Outdoor Unit / Coolant
    - name: pac_1224_r134a_discharge_temp
      unit_of_measurement: °C
      address: 1224

    - name: pac_1225_r134a_suction_temp
      unit_of_measurement: °C
      address: 1225

    - name: pac_1226_r134a_discharge_pressure
      unit_of_measurement: bar
      scale: 0.1
      precision: 1
      address: 1226

    - name: pac_1227_r134a_section_pressure
      unit_of_measurement: bar
      device_class: pressure
      scale: 0.1
      precision: 1
      address: 1227

    - name: pac_1228_r134a_compressor_frequency
      unit_of_measurement: Hz
      device_class: frequency
      address: 1228

    - name: pac_1229_r134a_expansion_valve_2_indoor_open
      unit_of_measurement: '%'
      state_class: measurement
      address: 1229

    - name: pac_1230_r134a_compressor_active_current
      unit_of_measurement: A
      address: 1230

template.yaml

# Control Heatpump using friendly name values (get initial state from sensor)
- select:
    - name: "Mode Chaud/Froid"
      unique_id: 'pac_mode_status'
      state: >-
        {{ iif(
            states('sensor.pac_1051_unit_mode') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_mode_status','options')[(states('sensor.pac_1051_unit_mode')|int)]),
            (state_attr('select.pac_mode_status','options')[0])
          )
        }}
      options: "{{ ['Froid','Chaud'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1001
            value: >-
              {{ (state_attr('select.pac_mode_status','options').index(option))|int}}

    - name: "Zone Étage : Mode Eco"
      unique_id: 'pac_eco_mode_circuit1'
      state: >-
        {{ iif(
            states('sensor.pac_1057_circuit1_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_eco_mode_circuit1','options')[(states('sensor.pac_1057_circuit1_mode_eco_confort')|int)]),
            (state_attr('select.pac_eco_mode_circuit1','options')[0])
          )
        }}
      options: "{{ ['ECO','Comfort'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1007
            value: >-
              {{ (state_attr('select.pac_eco_mode_circuit1','options').index(option))|int}}

    - name: "Zone RDC : Mode Eco"
      unique_id: 'pac_eco_mode_circuit2'
      state: >-
        {{ iif(
            states('sensor.pac_1069_circuit2_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_eco_mode_circuit2','options')[(states('sensor.pac_1069_circuit2_mode_eco_confort')|int)]),
            (state_attr('select.pac_eco_mode_circuit2','options')[0])
          )
        }}
      options: "{{ ['ECO','Comfort'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1018
            value: >-
              {{ (state_attr('select.pac_eco_mode_circuit2','options').index(option))|int}}

    - name: "Type demande Eau Chaude Sanitaire"
      unique_id: 'pac_dhw_demand_mode'
      options: "{{ ['Standard','Forte demande'] }}"
      state: >-
        {{ iif(
            states('sensor.pac_1079_dhw_demand_mode') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_dhw_demand_mode','options')[(states('sensor.pac_1079_dhw_demand_mode')|int)]),
            (state_attr('select.pac_dhw_demand_mode','options')[0])
          )
        }}
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1027
            value: >-
              {{ (state_attr('select.pac_dhw_demand_mode','options').index(option))|int}}

Bonjour
En fait ces sélects ne sont pas nécessaire car que 2 états donc tu peux laisser sous forme de Switch ça revient au même.
Je suis en train de mettre la température de l’ecs en paramètres via un input_number. Pour le moment le seule moyen que j’ai trouvé est de créer un switch qui a la demande envoie la valeur de mon input_number vers la PAC. Doit bien y avoir moyen d’envoyer la valeur a chaque changement d’état ( sans créer une automatisation…). Si je trouve pas je reviendrai :stuck_out_tongue_winking_eye:

Le but du select est d’avoir quelque chose de plus humain, qui apporte une lecture sans ambiguïté, que tous les membres de ma famille puissent lire facilement.
Éco ou confort sont plus compréhensibles que le ON/OFF du toggle :wink:

bonjour
ma solution (pas très belle mais fonctionnelle) pour modififer la consigne de l’ECS : dans le template.yaml j’ai ajouter :

    - name: "PAC consigne ECS"
      unique_id: 'pac_consigne_ecs'
      options: "{{ ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52'] }}"
      state: >-
        {{ iif(
            states('sensor.pacmb_1077_dhw_set_temp') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_consigne_ecs','options')[(states('sensor.pacmb_1077_dhw_set_temp')|float(0)*10)|int(0)]),
            (state_attr('select.pac_consigne_ecs','options')[50])
          )
        }}
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1025
            value: >-
              {{ (state_attr('select.pac_consigne_ecs','options').index(option))|int(0)}}

dans mon dashbord, j’ai ensuite ajouter l’entité PAc consigne ECS. ca récupère automatiquement la consigne de l’ECS (adresse 1077), et si on change la valeur, ca programme avec la nouvelle valeur (dans l’adresse 1025).
image

1 « J'aime »

Tu peux essayer de faire marcher les autres select stp ?
Je n’y arrive pas. Le tien marche impec.

MAIS MAIS … grosse surprise en rentrant de vacances ce soir.
J’avais remis la PAC en marche à distance depuis deux jours (j’ai un plancher chauffant, avec l’inertie dont il a besoin, il le fallait …).
Grosse déception en rentrant, le PC était froid. La maison froide aussi (sauf l’étage).
J’ai regardé la commande distante, j’ai vu ce qui suit :

  • circuit 1 (Etage) : tourne ok
  • circuit 2 (RDC) : tourne ok
  • Zone 2 (RDC) : OFF.

Avec le modbus, je n’arrive pas à relancer la ZONE2.
Il semble que relancer le circuit 2 (donc lié à cette ZONE 2), ne suffit pas.

  • Est-ce-que vous avez constaté le même fonctionnement de votre coté ?
  • Pourquoi diable avoir fait si compliqué chez Hitachi ?
  • Où sont les registres pour les zone 1 et 2 ?

voici un select qui fonctionne pour le choix du mode, y a juste à mettre dans le templace.yaml :

    - name: "PAC Mode"
      unique_id: 'pac_mode'
      state: >-
        {{ iif(
            states('sensor.pacmb_1057_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_mode','options')[(states('sensor.pacmb_1057_mode_eco_confort')|int(0))]),
            (state_attr('select.pac_mode','options')[0])
          )
        }}
      options: "{{ ['ECO','Comfort'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1007
            value: >-
              {{ (state_attr('select.pac_mode','options').index(option))|int(0)}}

Édit: désolé pour la faute comfort → confort.

Dans ton tableau de bord il faut appeler l’entité PAC Mode et tu auras un selct qui fonctionne :
image
ce select se met bien a jour selon l’état de la pac (soit sur sa telecommande soit via un autre bouton), et ce select programme bien la pac si tu le changes sur ce bouton select.
attention a adapter le nom : sensor.pacmb_1057_mode_eco_confort

C’est tout de même incroyable, j’intègre ton bout de code, il marche.
Je compare avec mes bouts de code, je ne vois rien d’anormal.
Je me dis allez … fais le mec stupide, copie/colle puis adapte, pout être archi sûr de ne rien oublier.
Résultat, le mien ne marche pas.
C’est tout de même incroyable !!

Le tien adapté, et qui fonctionne :

- name: "PAC Mode"
      unique_id: 'pac_mode'
      state: >-
        {{ iif(
            states('sensor.pac_1057_circuit1_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_mode','options')[(states('sensor.pac_1057_circuit1_mode_eco_confort')|int(0))]),
            (state_attr('select.pac_mode','options')[0])
          )
        }}
      options: "{{ ['ECO','Confort'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1007
            value: >-
              {{ (state_attr('select.pac_mode','options').index(option))|int(0)}}

Je refais la même chose, avec juste un changement de nom, résultat : il ne fonctionne pas.

- name: "Mode Eco C1 Etage"
      unique_id: 'pac_emc1'
      state: >-
        {{ iif(
            states('sensor.pac_1057_circuit1_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_emc1','options')[(states('sensor.pac_1057_circuit1_mode_eco_confort')|int(0))]),
            (state_attr('select.pac_emc1','options')[0])
          )
        }}
      options: "{{ ['ECO','Confort'] }}"
      select_option:
        - service: modbus.write_register
          data:
            hub: hitachi
            address: 1007
            value: >-
              {{ (state_attr('select.pac_emc1','options').index(option))|int(0)}}

Il y’a un cache quelque part ?
J’ai même eu des doutes sur la longueur des nom de variables.
Aussi sur le caractère ‹ : › dans les nom, ou ‹ / ›. Bref… je ne vois pas le souci.

dans mon code, le Name est identique au unique_id (aux espace et majuscule pret), pas dans le tien. Essais de changer ton nom et met PAC EMC1.

Je viens de comprendre, quand ça merde, faut supprimer le contenu du fichier, rebooter, supprimer les entités, remettre le contenu, rebooter, et là boom, ça marche.

Il me reste à savoir comment contrôler les ZONES 1 et 2 !

Voici le scénarii habituels, lors d’un départ en vacances, je dois éteindre la PAC.
Scénario 1 : j’éteins sur place. ça éteint les zones 1 et 2.
Je rallume à distance, et bien ça n’allume que les circuits 1 et 2 (sans les zones, donc ça ne chauffe pas !).

Scénario 2 : j’éteins à distance, parce que je suis parti trop rapidement par exemple. ça éteint les circuits, mais pas les zones. Je ne connais pas dans ce cas le comportement de la PAC. Est-ce-qu’elle chauffe finalement ou pas ?
Quand je rallume la PAC à distance, le circuit 1 et 2 sont allumés.
Les zones étaient déjà allumées, donc tout va bien.

D’ailleurs, je ne comprends pas pourquoi Hitachi distingue circuit et zone.
Et pourquoi diable y’a-t-il zero registre zone ?

Je nage.

Bonjour,
Je reviens sur cette histoire d’incohérence.
Est-ce-que vous avez pu faire des essais de votre côté ?
Il semble que certaines valeurs utiles ne sont pas exposés par l’interface modbus d’hitachi.

Comme celles mentionnées ci-dessus, ou aussi la température haute du tank (y’a que la température du capteur bas, pas celle du haut).
Ce dernière aurait été un plus, mais ce n’est pas le cas des valeurs zones, qui elles sont nécessaires de mon point de vue, mais hélas non exposées.

Je me retrouve donc dans l’impasse.
Comment faites-vous pour vos départ de vacances ?