Aldes T.One AIR / AquaAIR

Oui y’a rien sur 1056 avec l’ESP sur l’adresse 2

Sinon peut-être explorer encore la liaison télécommande…

Faudrait voir si dans mes logs la télécommande a fait les mêmes requêtes de registres que la passerelle, pour voir si ces grands malades ont implémenté 3 modbus distincts…
Mais ça serait plus simple d’interroger en usb, il faut un câble usb mâle/mâle, ça court pas les rues

@visvic Je sais pas comment t’as eu le doc que t’as posté mais t’as pas moyen d’avoir une table plus complète ou à minima pour récupérer les températures mesurées des thermostats et l’état courant de fonctionnement (on a la position de vanne, mais ça ne dit pas si ça chauffe / refroidit à l’instant, ou pas) ? :stuck_out_tongue_closed_eyes:

On devrait pouvoir trouver les registres modbus en reverse engineerant le firmware, mais c’est plus vite dit que fait…

J’ai essayé de reverse le firmware avec le binaire de la mise à jour avec Ghidra pour activer la clim. J’ai trouvé le modèle exact du STM32 de la carte mère pour avoir le découpage de la mémoire. J’y ai passé pas mal de temps pour avoir quelques lignes d’assembleur mais j’ai jamais fait auparavant donc forcément c’est galère.

Surtout que même si t’avais tous les registres, après faut les interpréter, quand je vois tout ce qu’il y a avec la télécommande, c’est un sacré boulot.
Je pense que c’est plus simple d’espionner l’USB entre la passerelle et la carte mère, surtout que c’est vu comme une liaison série classique.

En attendant qu’on ait plus d’info, j’ai mis au propre celles qu’on avait, en activant la modifiction.
Les icones, classes et compagnie sont remplies donc ça doit apparaitre tout beau dans Home Assistant.

uart:
  baud_rate: 19200 
  tx_pin: GPIO16
  rx_pin: GPIO17
  parity: EVEN
  stop_bits: 1

modbus_controller:
- address: 0x1
  update_interval: 10s


text_sensor:
  ###########################
  # T.One AIR & T.One AquaAIR
  - platform: modbus_controller
    name: "Aiguillage vanne"
    icon: mdi:valve
    entity_category: diagnostic
    register_type: holding
    address: 0x0064
    raw_encode: HEXBYTES
    lambda: |-
      uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      switch (value) {
        case 0: return std::string("Etat initial");
        case 1: return std::string("ECS");
        case 2: return std::string("Air");
        case 3: return std::string("Standby");
        case 4: return std::string("Standby sécurité");
        case 5: return std::string("En cours de modification");
        default: return std::string("Unknown");
      }
      return x;
  # - platform: modbus_controller
    # name: "Mode Air"
    # register_type: holding
    # address: 0x007A
    # raw_encode: HEXBYTES
    # lambda: |-
      # uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      # switch (value) {
        # case 0: return std::string("Off");
        # case 1: return std::string("Confort Chauffage");
        # case 2: return std::string("Eco Chauffage");
        # case 3: return std::string("Prog A Chauffage");
        # case 4: return std::string("Prog B Chauffage");
        # case 5: return std::string("Confort Clim");
        # case 6: return std::string("Boost Clim");
        # case 7: return std::string("Prog C Clim");
        # case 8: return std::string("Prog D Clim");
        # case 9: return std::string("Ventilation");
        # default: return std::string("Unknown");
      # }
      # return x;
  # - platform: modbus_controller
    # name: "Mode ECS"
    # register_type: holding
    # address: 0x0071
    # raw_encode: HEXBYTES
    # lambda: |-
      # uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      # switch (value) {
        # case 0: return std::string("Off");
        # case 1: return std::string("On");
        # case 2: return std::string("Boost");
        # default: return std::string("Unknown");
      # }
      # return x;
  - platform: modbus_controller
    name: "Etat filtre"
    icon: mdi:air-filter
    entity_category: diagnostic
    register_type: holding
    address: 0x0082
    raw_encode: HEXBYTES
    lambda: |-
      uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      switch (value) {
        case 0: return std::string("Bon");
        case 1: return std::string("A changer");
        default: return std::string("Unknown");
      }
      return x;
sensor:
  ###########################
  # T.One AIR & T.One AquaAIR
  - platform: modbus_controller
    name: "Version logiciel régulateur"
    entity_category: diagnostic
    icon: mdi:package
    register_type: holding
    address: 0x0001
    value_type: U_WORD
  - platform: modbus_controller
    name: "Identifiant IHM"
    entity_category: diagnostic
    icon: mdi:identifier
    register_type: holding
    address: 0x000E
    value_type: U_DWORD
  - platform: modbus_controller
    name: "Date/Heure régulateur"
    icon: mdi:calendar-clock
    register_type: holding
    address: 0x001D
    value_type: U_DWORD
  - platform: modbus_controller
    name: "Température pièce principale"
    entity_category: diagnostic
    device_class: "temperature"
    state_class: "measurement"
    icon: mdi:thermometer
    register_type: holding
    address: 0x0078
    value_type: S_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    name: "Volume restant ECS"
    entity_category: diagnostic
    device_class: "volume"
    state_class: "measurement"
    icon: mdi:hydraulic-oil-level
    register_type: holding
    address: 0x006E
    value_type: U_WORD
    unit_of_measurement: "L"
  - platform: modbus_controller
    id: consigne_ecs_lue
    register_type: holding
    address: 0x006F
    value_type: U_WORD
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    name: "Température ECS"
    state_class: "measurement"
    entity_category: diagnostic
    device_class: "temperature"
    icon: mdi:water-thermometer-outline
    register_type: holding
    address: 0x0070
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_1
    internal: yes
    register_type: holding
    address: 0x96
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_2
    register_type: holding
    address: 0x97
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_3
    register_type: holding
    address: 0x98
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_4
    register_type: holding
    address: 0x99
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_5
    register_type: holding
    address: 0x9A
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_6
    register_type: holding
    address: 0x9B
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_7
    register_type: holding
    address: 0x9C
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_8
    register_type: holding
    address: 0x9D
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_9
    register_type: holding
    address: 0x9E
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_10
    register_type: holding
    address: 0x9F
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    name: "Tarif HP"
    register_type: holding
    address: 0xA0
    value_type: U_WORD
    unit_of_measurement: "€"
    accuracy_decimals: 4
    filters:
      - multiply: 0.001
  - platform: modbus_controller
    name: "Tarif HC"
    register_type: holding
    address: 0xA1
    value_type: U_WORD
    unit_of_measurement: "€"
    accuracy_decimals: 4
    filters:
      - multiply: 0.001

number:
  - platform: modbus_controller
    name: "Consigne ECS"
    register_type: holding
    address: 0x006F
    value_type: U_WORD
    step: 0.1
    min_value: 7
    max_value: 61
    use_write_multiple: true
    entity_category: config
    unit_of_measurement: "°C"
    icon: "mdi:thermostat"
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 1"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x96
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 2"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x97
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 3"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x98
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 4"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x99
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 5"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9A
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 6"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9B
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 7"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9C
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 8"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9D
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 9"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9E
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 10"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9F
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
    
select:
  - platform: modbus_controller
    name: "Mode Air"
    icon: "mdi:air-conditioner"
    entity_category: config
    address: 0x007A
    value_type: U_WORD
    use_write_multiple: true
    optionsmap:
      "Off": 0
      "Confort Chauffage": 1
      "Eco Chauffage": 2
      "Prog A Chauffage": 3
      "Prog B Chauffage": 4
      "Confort Clim" : 5
      "Boost Clim" : 6
      "Prog C Clim" : 7
      "Prog D Clim" : 8
      "Ventilation" : 9
  - platform: modbus_controller
    name: "Selection Mode ECS"
    icon: "mdi:water-boiler"
    entity_category: config
    address: 0x0071
    value_type: U_WORD
    use_write_multiple: true
    optionsmap:
      "Off": 0
      "On": 1
      "Boost": 2

L’écriture marche bien alors ! Top !

Au pire, je me dis qu’on peut toujours mettre 1 ESP avec un capteur température dans chaque pièce où il y a un thermostat, et ensuite sous Home Assistant, utiliser un template climate pour regrouper le tout et qui sera beaucoup mieux que les number et select (dont on aura toujours besoin dans ESPHome par contre, vu que le climate template HA s’appuiera dessus). Ah et en fait on a déjà la température des thermostats 1a et 1b, c’est celle de la pièce principale :slight_smile:

Sinon tu as un thermostat en trop, y’en a que 9, car il y a le 1a et le 1b, chez moi c’est la même valeur pour les 2, ça doit être pour un thermostat double pour les grands espaces ouverts.

Aussi, quel intérêt de garder les sensor des consignes de thermostat, vu qu’ils sont aussi en number maintenant ?

Enfin pour le filtre je suggère:

binary_sensor:
  - platform: modbus_controller
    name: "Filtre à changer"
    register_type: holding
    address: 0x0082
    device_class: problem

Edit: bon taf pour les métadonnées, merci !

Les sensors permettent de mettre à jour les consignes si tu les changent via les thermostats muraux. Au début je les avais enlevées et c’était mis à jour qu’au démarrage.
Moi aussi j’ai séjour et cuisine ensemble mais ce sont les thermostats 1 et 3. Je pense que c’est l’installateur qui définit un seul thermostat pour deux bouches, donc suivant où il les a définis c’est pas forcément 1 et 2.
Je trouve dommage de devoir mettre plein d’esp en wifi dans chaque pièce juste pour une température, surtout qu’il faut les alimenter et y mettre un capteur de température fiable.

J’ai pris en compte ta remarque pour le filtre, c’est une bonne idée.
J’ai aussi ajouté les tarifs HP/HC en écriture.
Je pense qu’on est pas mal. Il reste peut-être à optimiser la lecture des registres continus avec register_count (voir Optimizing modbus communications)

Voici la config complèe :

esphome:
  name: aldes

esp32:
  board: esp32dev

substitutions:
  api_key: !secret esphome_api_key

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

web_server:
  port: 80
  local: true
  
ota:

api:
 
logger:

uart:
  baud_rate: 19200 
  tx_pin: GPIO16
  rx_pin: GPIO17
  parity: EVEN
  stop_bits: 1

modbus_controller:
- address: 0x1
  update_interval: 10s


binary_sensor:
  - platform: modbus_controller
    name: "Filtre à changer"
    icon: mdi:air-filter
    register_type: holding
    address: 0x0082
    device_class: problem

text_sensor:
  - platform: modbus_controller
    name: "Aiguillage vanne"
    icon: mdi:valve
    entity_category: diagnostic
    register_type: holding
    address: 0x0064
    raw_encode: HEXBYTES
    lambda: |-
      uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      switch (value) {
        case 0: return std::string("Etat initial");
        case 1: return std::string("ECS");
        case 2: return std::string("Air");
        case 3: return std::string("Standby");
        case 4: return std::string("Standby sécurité");
        case 5: return std::string("En cours de modification");
        default: return std::string("Unknown");
      }
      return x;

sensor:
  - platform: modbus_controller
    name: "Version logiciel régulateur"
    entity_category: diagnostic
    icon: mdi:package
    register_type: holding
    address: 0x0001
    value_type: U_WORD
  - platform: modbus_controller
    name: "Identifiant IHM"
    entity_category: diagnostic
    icon: mdi:identifier
    register_type: holding
    address: 0x000E
    value_type: U_DWORD
 - platform: modbus_controller
    name: "Date et heure"
    device_class: timestamp
    entity_category: diagnostic
    icon: mdi:calendar-clock
    register_type: holding
    address: 0x0010
    value_type: U_DWORD
  - platform: modbus_controller
    name: "Température pièce principale"
    entity_category: diagnostic
    device_class: "temperature"
    state_class: "measurement"
    icon: mdi:thermometer
    register_type: holding
    address: 0x0078
    value_type: S_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    name: "Volume restant ECS"
    entity_category: diagnostic
    device_class: "volume"
    state_class: "measurement"
    icon: mdi:hydraulic-oil-level
    register_type: holding
    address: 0x006E
    value_type: U_WORD
    unit_of_measurement: "L"
  - platform: modbus_controller
    id: consigne_ecs_lue
    register_type: holding
    address: 0x006F
    value_type: U_WORD
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    name: "Température ECS"
    state_class: "measurement"
    entity_category: diagnostic
    device_class: "temperature"
    icon: mdi:water-thermometer-outline
    register_type: holding
    address: 0x0070
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_1
    internal: yes
    register_type: holding
    address: 0x96
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_2
    register_type: holding
    address: 0x97
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_3
    register_type: holding
    address: 0x98
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_4
    register_type: holding
    address: 0x99
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_5
    register_type: holding
    address: 0x9A
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_6
    register_type: holding
    address: 0x9B
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_7
    register_type: holding
    address: 0x9C
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_8
    register_type: holding
    address: 0x9D
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_9
    register_type: holding
    address: 0x9E
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: thermostat_10
    register_type: holding
    address: 0x9F
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - multiply: 0.01
  - platform: modbus_controller
    id: hp
    register_type: holding
    address: 0xA0
    value_type: U_WORD
    unit_of_measurement: "€"
    accuracy_decimals: 4
    filters:
      - multiply: 0.001
  - platform: modbus_controller
    id: hc
    register_type: holding
    address: 0xA1
    value_type: U_WORD
    unit_of_measurement: "€"
    accuracy_decimals: 4
    filters:
      - multiply: 0.001

number:
  - platform: modbus_controller
    name: "Consigne ECS"
    register_type: holding
    address: 0x006F
    value_type: U_WORD
    step: 0.1
    min_value: 7
    max_value: 61
    use_write_multiple: true
    entity_category: config
    unit_of_measurement: "°C"
    icon: "mdi:thermostat"
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 1"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x96
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 2"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x97
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 3"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x98
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 4"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x99
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 5"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9A
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 6"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9B
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 7"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9C
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 8"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9D
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 9"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9E
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Consigne thermostat 10"
    icon: "mdi:thermostat"
    entity_category: config
    unit_of_measurement: "°C"
    address: 0x9F
    value_type: U_WORD
    min_value: 0
    max_value: 31
    use_write_multiple: true
    multiply: 100
  - platform: modbus_controller
    name: "Tarif HP"
    icon: mdi:currency-eur
    entity_category: config
    mode: box
    unit_of_measurement: "€"
    address: 0xA0
    value_type: U_WORD
    min_value: 0.05
    max_value: 1
    use_write_multiple: true
    multiply: 1000
    step: 0.001
  - platform: modbus_controller
    name: "Tarif HC"
    icon: mdi:currency-eur
    entity_category: config
    mode: box
    unit_of_measurement: "€"
    address: 0xA1
    value_type: U_WORD
    min_value: 0.05
    max_value: 1
    use_write_multiple: true
    multiply: 1000
    step: 0.001
    
select:
  - platform: modbus_controller
    name: "Mode Air"
    icon: "mdi:air-conditioner"
    entity_category: config
    address: 0x007A
    value_type: U_WORD
    use_write_multiple: true
    optionsmap:
      "Off": 0
      "Confort Chauffage": 1
      "Eco Chauffage": 2
      "Prog A Chauffage": 3
      "Prog B Chauffage": 4
      "Confort Clim" : 5
      "Boost Clim" : 6
      "Prog C Clim" : 7
      "Prog D Clim" : 8
      "Ventilation" : 9
  - platform: modbus_controller
    name: "Mode ECS"
    icon: "mdi:water-boiler"
    entity_category: config
    address: 0x0071
    value_type: U_WORD
    use_write_multiple: true
    optionsmap:
      "Off": 0
      "On": 1
      "Boost": 2

@djtef Le mode ventilation marche chez toi ? Chez moi si je le mets, à la prochaine lecture il passe en éteint. Je ne connaissais pas l’existence de ce mode ni par la télécommande ni par AldesConnect. Un reliquat d’un autre appareil ou une fonctionnalité cachée ?

@djtef C’est tellement 1000 fois plus rapide qu’avec la passerelle et sûrement autant plus fiable…

  • J’ai ajouté optimistic: true au select, de façon à ce que l’état se mette à jour immédiatement comme pour les autres.
  • Et mis les tarifs en 5 décimales de façon à pouvoir avoir par ex 0.2068
  • Pour les thermostats, j’ai mis min = 16 et laissé le max à 31. La fourchette de température n’est pas la même pour le chauffage (16° => 24°) et la clim (22° => 31°). L’idéal serait de pouvoir implémenter ça en dynamique selon le mode air, mais je ne crois pas qu’on puisse mettre une lambda ou une valeur dynamique dessus

Edit: les 5 décimales redeviennent 4 à la lecture Modbus :frowning:

Non ça ne fonctionne pas non plus chez moi, je pensais que c’était lié à la clim car ça fait pareil avec chez moi, ça revient à off vu que je l’ai pas.

J’avais pas mis optimistic pour savoir si ça a bien été pris en compte. Par exemple si tu mets l’option optimistic et que tu choisis Ventilation, ça se met de suite, mais ça revient à off quand même à la prochaine lecture ?
Je me disais qu’il faudrait mettre un taux de rafraîchissement chaque minute mais forcer une lecture après une écriture dans le lambda pour savoir si c’est pris en compte.
On peut aussi dire de lire certains capteurs une fois sur 10, du genre les version, date, id…

J’avais mis une minimum à 0 pour mettre le thermostat à off sinon il faut créer un bouton qui envoie la commande à 0 pour chaque thermostat pour mettre off.

OK merci, dommage !

Oui, ça marche bien comme ça.

Sûrement, mais pour quoi faire ? J’imagine qu’il n’y a pas de limite sur le nombre de lectures, si ?

Ah je vois. Ça peut être pas mal les boutons, même si perso je laisse toujours à 16 ou 30 au lieu d’éteindre.

Non c’est juste histoire d’optimiser et réduire la probabilité d’erreur, j’ai vu que de temps en temps il y avait des ratés. Je me dis qu’il vaut mieux avoir les températures plus fréquentes et les valeurs fixes moins souvent.
Mais c’est du pinaillage.

Hello les amigos @djtef @guix77 !!!
Désolé, encore un week-end bien chargé en travaux …

Je vois que vous avancé un grand pas :slight_smile: et c’est cool.

Concernant la documentation, on aura pas mieux que cela … Cela fait depuis le mois de Mai que je relance au moins une fois par semaine le support, et je n’ai jamais eu de réponses, autant dire qu’on aura jamais rien de plus … (même les américains sont moins pète sec que ca …)


@djtef , tu es chez quel fournisseur d’électricité toi ??? :face_with_open_eyes_and_hand_over_mouth: :face_with_open_eyes_and_hand_over_mouth: :face_with_open_eyes_and_hand_over_mouth:

Bon va falloir que je commande de l’esp32 et du ttl/modbus. Mais je vais quand même essayé avec l’intégration ModBus de HA :slight_smile:

Si vous avez besoin de rien, n’hésitez pas à me demander :rofl: :rofl:

Ah ah j’avais modifié pour tester que ça fonctionne, j’ai pas trouvé de bon plan :smiling_face_with_tear:

1 « J'aime »