Integrer le compteur DDSU666 sur home assistant

Bonsoir à tous

j’essaie d’intégrer mon DDSU666 Hoymiles sur home assistant qui est hébergé sur mon raspberry pi 4
pour cela j’ai acheter une clef Waveshare Industrial USB to RS485 et un openDtu

pour la partie openDtu tout va bien j’ai tous les retours sur mes panneaux solaires j’ai même réussi a créer des cartes avec des jauges une vrai victoire pour moi :joy:

par contre j’ai un vrai soucis avec l’intégration du DDSU666 et la connections a la clef RS485 par une connexion série.
j’ai donc configuré L’intégration Modbus en suivant la documentation officiel.
En cherchant sur google je suis tombé Sigalou Domotique qui explique comment il a intégré
le Power Boost EM112 de chez Carlo Gavazzi dans Home Assistant via le port RS485 (Modbus)
La ou je bloque c’est pour déclarer chaque sensor :scream:
j’ai bien trouver la doc technique du compteur mais pour moi c’est hors de mes compétence :disappointed_relieved:
donc j’ai aucune idée de se qu’il faut mettre pour trouver chaque sensor .
je vous joins mon fichier de configuration yaml

Example yaml: typical serial connection

modbus:

  • name: modbus_hub
    type: serial
    port: /dev/ttyUSB0
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: E
    stopbits: 1

    delay: 0
    message_wait_milliseconds: 30
    timeout: 5

une fois relancer home assistant il me met cette alerte.
« Please add at least one entity to Modbus modbus_hub in your configuration.yaml file and restart Home Assistant to fix this issue. »
donc une fois traduite ça me dit bien qu’il faut que j’indique une entité :sweat_smile:

Voila j’ai besoin d’aide car l’idée d’utiliser le DDSU666 la clef RS485 et l’openDtu vient
d’un sujet sur Intégration global.hoymiles
et surtout sur se qu’écrit Erik06 au niveau du zero injection ça avait l’air simple :scream:

en tout cas merci d’avance et bonne soirée à vous .

Bonsoir à tous
bon j’avais réussi a voir des capteur mais ça me renvoyais des erreurs donc j’ai tous effacer sans prendre de note bien sur :unamused: et la plus rien ne fonctionne sur Modbus :rage:
donc j’ai refait une configuration yaml

# Définition du hub Modbus via port série
modbus:
  - name: modbus_hub
    type: serial
    #port: /dev/ttyUSB0
    port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_BG00Q7UA-if00-port0
    baudrate: 9600 # Vitesse de communication
    bytesize: 8
    parity: E # Parité (E pour Even)
    stopbits: 1
    timeout: 5 # Temps d'attente en secondes
    message_wait_milliseconds: 30
 

# Définition des capteurs  pour lire les différentes valeurs du DDSU666
sensor:
  - platform: modbus
    name: "Consommation Active Positive"
    hub: modbus_ddsu666
    register: 0x000C # Adresse du registre pour l'énergie active positive
    register_type: holding
    unit_of_measurement: "kWh"
    count: 2 # Nombre d'octets à lire
    data_type: int
    scale: 1
    precision: 3

  - platform: modbus
    name: "Tension"
    hub: modbus_ddsu666
    register: 0x2000 # Adresse pour la tension
    register_type: holding
    unit_of_measurement: "V"
    count: 2
    data_type: float
    scale: 1
    precision: 1

  - platform: modbus
    name: "Courant"
    hub: modbus_ddsu666
    register: 0x2002 # Adresse pour le courant
    register_type: holding
    unit_of_measurement: "A"
    count: 2
    data_type: float
    scale: 1
    precision: 2

  - platform: modbus
    name: "Puissance Active"
    hub: modbus_ddsu666
    register: 0x2004 # Adresse pour la puissance active (à confirmer)
    register_type: holding
    unit_of_measurement: "kW"
    count: 2
    data_type: float
    scale: 1
    precision: 2

et la quand je vérifie la configuration yaml ça me met ça comme erreur :
Invalid config for ‹ modbus › at configuration.yaml, line 21: required key ‹ method › not provided
j’ai beaucoup de mal la quelqu’un aurait il une idée :sweat_smile:

merci d’avance et bonne soirée à tous :sunglasses:

Premièrement, je remarque que tu as deux configurations différentes dans ton fichier YAML. La première semble être une configuration de base pour le hub Modbus, tandis que la deuxième définit des capteurs spécifiques pour le DDSU666.

Le problème principal semble être lié à la configuration du hub Modbus. Dans la première partie de ton fichier YAML, tu as défini le hub Modbus avec le nom « modbus_hub », mais dans la définition des capteurs, tu fais référence à un hub nommé « modbus_ddsu666 ». Il faudrait que tu utilises le même nom pour le hub dans les deux parties de la configuration.

Ensuite, l’erreur que tu obtiens lors de la vérification de la configuration YAML indique que la clé « method » est requise mais non fournie. Il faudrait que tu ajoutes la clé « method » avec la valeur « rtu » dans la configuration du hub Modbus, comme dans la première partie de ton fichier YAML.

Voici un exemple de configuration corrigée :

modbus:
  - name: modbus_hub
    type: serial
    port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_BG00Q7UA-if00-port0
    baudrate: 9600
    bytesize: 8
    parity: E
    stopbits: 1
    timeout: 5
    message_wait_milliseconds: 30
    method: rtu

sensor:
  - platform: modbus
    name: "Consommation Active Positive"
    hub: modbus_hub
    register: 0x000C
    register_type: holding
    unit_of_measurement: "kWh"
    count: 2
    data_type: int
    scale: 1
    precision: 3

  - platform: modbus
    name: "Tension"
    hub: modbus_hub
    register: 0x2000
    register_type: holding
    unit_of_measurement: "V"
    count: 2
    data_type: float
    scale: 1
    precision: 1

  - platform: modbus
    name: "Courant"
    hub: modbus_hub
    register: 0x2002
    register_type: holding
    unit_of_measurement: "A"
    count: 2
    data_type: float
    scale: 1
    precision: 2

  - platform: modbus
    name: "Puissance Active"
    hub: modbus_hub
    register: 0x2004
    register_type: holding
    unit_of_measurement: "kW"
    count: 2
    data_type: float
    scale: 1
    precision: 2

Bonsoir hackdiy
merci oui j’avais vu pour la valeur rtu mais je dois avouer que j’ai mélanger plusieurs fichier de configuration yaml de modbus :joy:
en tout cas un grand merci je vais modifier mon fichier yaml en fonction de tes indications et je viendrais vous tenir au courant de mes pérégrinations au royaume du yaml et de modbus :sweat_smile:
Car pour dire la vérité c’est que je fais tout ça pour pouvoir faire du zéro injection sur mes micro onduleurs hoymiles grâce au script de reserve85.
et ça aussi ça s’annonce coton en tous cas encore merci :upside_down_face:

Bonjour hackdiy
bon j’ai modifier le fichier de configuration yaml ce matin mais malheureusement il m’indique cette erreur :disappointed:

Enregistreur: homeassistant.components.modbus.validators
Source: components/modbus/validators.py:128
intégration: Modbus (documentation, problèmes)
S'est produit pour la première fois: 09:10:49 (1 occurrence)
Dernier enregistrement: 09:10:49

Modbus modbus_ddsu666 contain no entities, causing instability, entry not loaded

euh comment dire :sweat_smile:
en tout cas encore merci pour l’aide :upside_down_face:

l’erreur “Modbus modbus_ddsu666 contain no entities” signifie que ton hub est déclaré “modbus_hub” dans modbus:, mais les capteurs pointent vers hub: modbus_ddsu666. Il faut corriger le hub utilisé, ou bien renommer le hub dans modbus: pour qu’il s’appelle modbus_ddsu666.

je joins la doc technique du compteur ddsu666 que j’ai trouvé sur le net https://www.solaxpower.com/uploads/file/ddsu666-user-manual-en.pdf
donc j’ai bien vérifié les branchement sont bons le débit en baud est bien de 9600 bps
par contre l’adresse de communication n’est pas 011 comme indiqué sur la doc mais 028 est ce que ça peut avoir une incidence ?

l’adresse de communication Modbus (adresse esclave) a une incidence essentielle dans une configuration Modbus : c’est ce qui permet à Home Assistant (ou tout maître Modbus) de savoir à quel appareil s’adresser sur le bus RS485

ajoute le champ slave: avec la valeur 28

alors j’ai modifier le fichier comme ça

modbus:
 - name: modbus_hub
   type: serial
   port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_BG00Q7UA-if00-port0
   baudrate: 9600
   bytesize: 8
   parity: E
   stopbits: 1
   timeout: 5
   message_wait_milliseconds: 30
   method: rtu

sensor:
 - platform: modbus
   name: "Tension"
   hub: modbus_hub
   slave: 28
   register: 0x2000
   register_type: holding
   unit_of_measurement: "V"
   count: 2
   data_type: float
   scale: 1
   precision: 1

 - platform: modbus
   name: "Courant"
   hub: modbus_hub
   slave: 28
   register: 0x2002
   register_type: holding
   unit_of_measurement: "A"
   count: 2
   data_type: float
   scale: 1
   precision: 2

 - platform: modbus
   name: "Puissance Active"
   hub: modbus_hub
   slave: 28
   register: 0x2004
   register_type: holding
   unit_of_measurement: "kW"
   count: 2
   data_type: float
   scale: 1
   precision: 2

et ça me met comme erreur

Enregistreur: homeassistant.components.modbus.validators
Source: components/modbus/validators.py:128
intégration: Modbus ([documentation](https://www.home-assistant.io/integrations/modbus), [problèmes](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+modbus%22))
S'est produit pour la première fois: 15:39:31 (1 occurrence)
Dernier enregistrement: 15:39:31

Modbus modbus_hub contain no entities, causing instability, entry not loaded

et

Enregistreur: homeassistant.setup
Source: setup.py:279
S'est produit pour la première fois: 15:39:31 (1 occurrence)
Dernier enregistrement: 15:39:31

Setup failed for 'modbus': Integration failed to initialize.

et aussi

Enregistreur: homeassistant.setup
Source: setup.py:507
S'est produit pour la première fois: 15:39:31 (3 occurrences)
Dernier enregistrement: 15:39:31

Unable to prepare setup for platform 'modbus.sensor': Unable to set up component

en tout cas merci pour l’aide :sunglasses:
la par contre je vais aller me vider la tête chez des amis sinon le raspberry pi 5 va voler et je sais très bien que le bug vient de la personne entre le clavier et la chaise :sweat_smile:
bonne après midi à toi .

Tu n’es pas loin du but ! :muscle:

Ton YAML est presque bon, mais l’erreur vient t d’une mauvaise indentation ou format YAML incorrect (les erreurs validators.py et integration failed to initialize sont typiques de ça). YAML est très sensible à l’indentation. Chaque niveau doit avoir exactement 2 espaces c’est pas le cas dans ta config .
Vérifie toujours ton fichier avec un validateur YAML comme https://www.yamllint.com/.

Bonjour bon rien y fait ça passe pas :unamused:
j’ai bien utilisé ton lien pour testé mon code ça avait l’air d’aller il annonce valid yaml :thinking:
donc il y a pas ou c’est les adresses des sensors que j’indique qui ne sont pas bonne ou j’ai un problème de câblage mais j’ai suivi la doc je vais quand même reverifier les cablage au cas ou .
je joins la page des adresse pour voir si pour vous je n’ai pas fait d’erreur encore merci pour l’aide

Hypothèse la plus probable : communication série absente ou mauvaise, problème de câblage RS485 et ce n’est pas plug-and-play , attention à l’ordre des fils.

Bonsoir hackdiy,
non pour le câblage il est bon j’ai revérifier cette après midi je suis bien sur le câblage annoncé sur la doc coté ddsu666 24 avec A et 25 avec B coté clef usb rs485.

j’avais tellement mélangé de fichier yaml trouvé sur internet qu’à un moment l’intégration modbus est bien apparue dans appareils et service mais comme j’avais qu’un capteur et que je suis très très con :triumph:
ben j’ai effacer le fichier en me disant je vais le refaire :cold_sweat:
je vais remerdoyer le fichier a force avec un peut de chance ça devrait refonctionner :joy:

je vais poster aussi sur le sujet " intégration global hoymiles" sur ce forum puisque apparemment certains ont la même installation que j’essaie tant bien que mal de faire fonctionner :sweat_smile:
en tout cas merci pour l’aide grâce à toi en plus j’ai appris pas mal de chose :nerd_face:

1 « J'aime »