Victron über modbus integration - Sensoren anlegen scheitert mit Adressfehler

calima

New member
Moin in die Runde,
ich bin neu und habe mich hier angemeldet, weil ich beim Googeln auf viel Sachverstand und gute Vorschläge in diesem Forum gestoßen bin.
Zur Zeit mache ich die ersten Schritte mit Home Assistant und bin begeistert, dass die ganzen Steuerungen, die ich bisher über unterschiedliche Apps auf dem Smartphone bedient habe, jetzt auf meinen HA-Dashboards verfügbar sind. Als technisch einigermaßen versierter Anwender (kann nicht scripten oder programmieren, weiß aber, wie ich snippets an der richtigen Stelle einsetze und mit Anpassungen zum Laufen bekomme), fiel mir Home Assistant bisher ziemlich leicht.

Beim Versuch, eine Victron-Installation per modbus tcp in HA zu integrieren, komme ich allerdings nicht weiter. Auf der configuration.yaml-Übersicht wird modbus mit grünem Haken markiert, wenn ich darauf klicke, aber ich kann keine Sensoren anlegen. Die Konfiguration startet nicht und ein Fehler beim Aufrufen des Dienstes homeassistant/reload_all. 'address' wird angezeigt. Das ist der YAML-Code, erstellt mit Studio Code Server:
YAML:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Example yaml: full tcp connection
modbus:
  - name: venus_os
    type: tcp
    host: 192.168.178.61
    port: 502
    delay: 0
    message_wait_milliseconds: 30
    retries: 3
    timeout: 5
    sensors:
    # BMV
    - name: "Battery SOC"
    data_type: uint16
    unit_of_measurement: "%"
    slave: 238
    address: 289
    scale: 0.1
    device_class: battery
    state_class: measurement

VenusOS 3.10 läuft bei mir auf einem Raspberry Pi 3B. Der Victron MPPT-Regler 100/30 und der Batteriemonitor BMV-712 Smart sind jeweils per VE.Direct zu USB-Kabel mit dem Raspi verbunden. Im VRM-Portal sind die Daten sichtbar. Die Werte für slave (Unit ID) und address (VRM instance) habe ich aus der Victron Remote Console:
victron_units_InstanceIDs01.png
victron_units_InstanceIDs02.png
Zusätzlich habe ich ohne Erfolg sämtliche Address-Werte für VE.Direct to USB aus dem aktuellen Register von Victron ausprobiert:
https://www.victronenergy.com/upload/documents/CCGX-Modbus-TCP-register-list-3.10.xlsx

Was mache ich falsch?
Vielen Dank im Voraus für Eure Hilfe!
 
Nach vielen fehlgeschlagenen Versuchen aus anderen Foren, Blogs und Tutorials brachte mich jemand auf die Idee, die Anfrage mal über ChatGPT zu stellen. Und der Code, den ich von der KI als Antwort bekam, funktioniert. Zumindest für einen Teil der Sensoren. Allerdings wurden mir auf die gleiche Fragestellung unterschiedliche Code snippets in ChatGPT 3.5 und der Bezahlversion 4.0 angezeigt. Die Trainingsdaten von 3.5 gehen nur bis September 2021. Seitdem haben sich einige Definitionen und Register von modbus geändert. Der korrekte Code wurde nur in ChatGPT 4.0 geliefert.

Weil ich ihn einfach eingefügt habe, kann ich nur spekulieren, warum es vorher nicht funktionierte. Evtl. lag es am Einrücken. Im neuen Code ist die Konfiguration der Sensoren weiter eingerückt als bei meinen eigenen Versuchen. Eigentlich hätte der Studio Code Server vorher meckern müssen.

Zur Zeit sind die Sensoren in der globalen configuration.yaml aufgeführt. Es wird vielfach empfohlen, sie in ein eigenes Dokument namens sensors.yaml auszulagern und dies aus der config über sensor: !include sensors.yaml aufzurufen. Das hat bei mir noch nicht geklappt. Ich forsche weiter. Der funktionierende Code (mit einem Sensor als Beispiel) sieht so aus:

YAML:
# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# sensor: !include sensors.yaml

modbus:
  - name: victron
    type: tcp
    host: 192.168.178.61
    port: 502

    sensors:
      # MPPT 100/30 SmartSolar Charger
      - name: MPPT_Charger
        unit_of_measurement: "V"
        slave: 239
        address: 288
        input_type: holding
        data_type: uint16
        scale: 0.01
        precision: 2

Das sind die ersten Versuche, unter Verwendung der Victron entities ein Dashboard für den Batteriespeicher anzulegen:

homeassistant_storage_dashboard.png
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.676
Beiträge
47.748
Mitglieder
4.324
Neuestes Mitglied
Onkel Fritz
Zurück
Oben