Communication Modbus multiple slaves

Bonjour,

J’essaye d’intégrer de vieux onduleurs SMA (2018, donc sans WebUI) via Modbus. Comme le dit le titre, il y en a plusieurs et qui sait, d’autres éléments Modbus pourraient j’ajouter par la suite.

Lorsque je veux communiquer avec un seul module, pas de soucis, mais j’essaye de communiquer avec 2 éléments et là, ca bloque. Soit j’ai un message d’erreur (genre l’usage de hub), soit j’ai la vérification qui tourne sans résultats.

Evidemment, la doc de HA ne prend pas ce cas en compte et les exemples que je trouve sur le net ne semblent plus valables au fils des versions du core.

Vous faites comment ?

modbus:
# STP 6.0 configuration.yaml entry
  - type: tcp
    host: 10.10.10.57
    port: 502
    name: inverter_pv_stp6

# SB 2.5 configuration.yaml entry
  - type: tcp
    host: 10.10.10.58
    port: 502
    name: inverter_pv_sb2.5

#sensors: !include sensor.yaml
    sensors:
      - name: Puissance_AC_Total_SB2.5
#        hub: inverter_pv_sb2.5
        device_class: power
        unit_of_measurement: W
        data_type: int
        slave: 3
        address: 30775
#        register: 30775
#        register_type: holding
        count: 2

j’ai pour ma par un fichier par équipement modbus, dans lequel j’ai la partie configuration
et les sensors indentés à la suite de la configuration.
ton soucis pour moi, est que tes sensors ne sont pas associés au bon modbus

mon fichier compteurs elec

modbus:
  - name: schneider
    type: tcp
    host: !secret schneider_host
    port: 502
    sensors: # https://www.home-assistant.io/integrations/modbus#configuring-platform-sensor

      - name: Compteur Prises
        unit_of_measurement: kWh
        slave: 150
        address: 3203
        input_type: holding
        data_type: int64
        # count: 4
        scale: 0.001
        precision: 3

mon fichier compteur d’eau

modbus:
  - name: hwg_pwr
    type: tcp
    host: !secret hwg_host
    port: 502
    sensors: # https://www.home-assistant.io/integrations/modbus#configuring-platform-sensor

      - name: Compteur Eau Froide
        unit_of_measurement: m³
        slave: 1
        address: 1049
        input_type: input
        data_type: int32
        # swap: word
        # count: 2
        scale: 0.001
        precision: 3

Yes, j’avais vu ce type de config qque part, mais c’était un vieux truc et je ne suis pas resté dessus car ce système ne me permet pas d’avoir la config dans configuration.yaml et les sensors dans un fichier dédié. Après, je ne suis pas un pro de yaml. Il y a donc peut être moyen de contourner la chose avec des packages ou templates.

Cela dit, dans un premier temps, je vais essayer ça, merci.

Ok, c’est ce que je craignais, les 2 modbus dans le fichier config ca ne va pas. Et si je n’en met que 1, j’ai les mêmes valeurs pour les 2 slaves.
Je dois donc trouver le moyen d’avoir la communication modbus dans 2 fichiers différents.

Comment faites vous pour avoir 2 fichiers avec du modbus ?
Quel est la configuration à indiquer au fichier config ?

dans mon fichier config

homeassistant:
  packages: !include_dir_named integrations

ensuite les deux fichiers yaml (ainsi que tous les autres) son placé dans mon répertoire intégrations
ça ne change en rien ta configuration précedente, et cela permet surtout de ‹ centraliser › tous les parametres dans un fichier dédié, plutôt que de les morceler dans X fichiers

Bon, je n’ai plus de soucis de communication, mais j’ai partout la même valeur pour un device et d’autres pour l’autre device et complètement absurde…
Je n’ai donc pas encore trouvé la bonne solution… :frowning: