Einbindung ir lesekopf in Venus OS über Home assistant

Grüße

ich habe vor mir ein ESS System zu bauen und dafür einen victron multiplus2 zu verwenden.

Ich habe bereits ein Raspi 4 am laufen mit dem Venus OS Large.

Homeassistant läuft auch schon wo die daten vom IR Lesekopf mit Tasmota an HA geschickt und angezeigt werden.

wollte jetzt über mqtt die daten zu Venus OS schicken (ich denke da müsste ja nur die aktuelle Leistung reichen).

Habe es hinbekommen das Homeassistant den wert bereits pushed (über node-red).

wollte jetzt die daten mittels dbus-mqtt-grid (das addon ist bereits installiert) auf das Venus OS schicken. dafür muss ich den wert allerdings in ein Json format umwandeln glaube ich?

jetzt ist die frage wie bekomme ich das umgewandelt?

Danke.

Ich würde nicht den Weg über HA gehen.. der dbus-treiber kann direkt von Tasmota lesen.

@mdkeil kann tasmota an HA und venus gleichzeitig senden? würde nämlich die anzeige vom HA gerne behalten.

Sollte gehen... Wenn nicht holt sich HA den Wert halt über VenusOS/ Node-Red.

Kannst auch esphome nutzen,
Hat mir auch erst hier im Forum jemand gesagt, esphome kann mqtt und api gleichzeitig verwenden.
Das ging in der Anfangszeit noch nicht. Du kannst dort einfach eigen Mqtt Botschaften zusätzlich zu dem api kram verschicken und auch abonnieren.
Er kann sich nur nicht an verschiedene MQTT Server anklöppeln.

@und-mehr ok da müsste ich mir noch ein esp kaufen oder?. wollte das halt wie er machen in dem video: https://www.youtube.com/watch?v=gXUjioDFYBg&t=1050s.

nur halt mit HA und nicht über loxone.

hab das auch soweit hinbekommen nur diese function die er hat funktioniert bei mir nicht, hab auch keine ahnung wie man so eine funktion schreibt.

@und-mehr nach langen rumprobieren habe ich jetzt chatgpt gefragt, damit konnte ich ein kurzes script schreiben was die daten in das benötige format umwandelt.

Danke für eure Hilfe.

Der Code hinter dem IR Lesekopf für den MetCom MCS301 mit VenusOS bei Jörg stammt von mir.

Das ist ein ESPHome mit einem Modbus TCP Slave. VenusOS unterstützt diese API nativ ohne Änderung mittels dbus-modbus-client.

Leider wird der vorhandene Code nicht vielen weiterhelfen. Die Idee lässt sich mit den vorhandenen ESPHome Komponenten plus eine Modbus TCP Slave Komponente adaptieren für eure Zähler.

Hallo, genau so wie du es vor hast habe ich es umgesetzt, nur nicht mit MQTT (da hier die Daten nur alle 10 sec gesendet werden).

Mein Flow im Node RED besteht aus timestamp; http request; function1 +2 (eine hätte aucch gereicht); PV_Power, Datenübertragung frei wählbar.

Gruss Sobo

@Sobo,

Genau das Thema suche ich gerade. Kannst du genauer ausführen was du gemacht hast?

Hallo Idstein,

du beschreibst genau das was ich suche!
Ich lese meinen Zähler bereits mit einem IR Lesekopf über das SML Protokoll, das ganze geschieht über ESP Home, meine Daten kommen auch sauber in HomeAssistant an.

Gerne würde ich den Lesekopf nativ als Modbus Energiemeter direkt in Venus OS einbinden und mir den Umweg über MQTT sparen (eine Störquelle weniger). Mein Code sieht bisher so aus:

esphome:
  name: stromzaehler
  friendly_name: ESPHome Stromzähler
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:
  reboot_timeout: 0s

# Allow Over-The-Air updates
ota:
- platform: esphome

mqtt:
  broker: 192.168.1.9
  discovery: false


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

uart:
  id: uart_bus
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600
  debug:

sml:
  id: mysml
  uart_id: uart_bus

sensor:
  - platform: sml
    name: "Bezug Gesamt"
    sml_id: mysml
    obis_code: "1-0:1.8.0"
    unit_of_measurement: kWh
    accuracy_decimals: 3
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.0001

  - platform: sml
    name: "Einspeisung Gesamt"
    sml_id: mysml
    obis_code: "1-0:2.8.0"
    unit_of_measurement: kWh
    accuracy_decimals: 3
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.0001

  - platform: sml
    name: "Aktuelle Frequenz"
    sml_id: mysml
    obis_code: "1-0:14.7.0"
    unit_of_measurement: Hz
    accuracy_decimals: 2
    device_class: frequency
    state_class: measurement 
    filters:
      - multiply: 0.01

  - platform: sml
    name: "Aktuelle Wirkleistung Gesamt"
    sml_id: mysml
    obis_code: "1-0:16.7.0"
    unit_of_measurement: W
    accuracy_decimals: 0
    device_class: power
    state_class: measurement

  - platform: sml
    name: "Aktuelle Wirkleistung L1"
    sml_id: mysml
    obis_code: "1-0:36.7.0"
    unit_of_measurement: W
    accuracy_decimals: 0
    device_class: power
    state_class: measurement

  - platform: sml
    name: "Aktuelle Wirkleistung L2"
    sml_id: mysml
    obis_code: "1-0:56.7.0"
    unit_of_measurement: W
    accuracy_decimals: 0
    device_class: power
    state_class: measurement

  - platform: sml
    name: "Aktuelle Wirkleistung L3"
    sml_id: mysml
    obis_code: "1-0:76.7.0"
    unit_of_measurement: W
    accuracy_decimals: 0
    device_class: power
    state_class: measurement

  - platform: sml
    name: "Aktuelle Spannung L1"
    sml_id: mysml
    obis_code: "1-0:32.7.0"
    unit_of_measurement: V
    accuracy_decimals: 2
    device_class: voltage
    state_class: measurement
    filters:
      - multiply: 0.01

  - platform: sml
    name: "Aktuelle Spannung L2"
    sml_id: mysml
    obis_code: "1-0:52.7.0"
    unit_of_measurement: V
    accuracy_decimals: 2
    device_class: voltage
    state_class: measurement
    filters:
      - multiply: 0.01

  - platform: sml
    name: "Aktuelle Spannung L3"
    sml_id: mysml
    obis_code: "1-0:72.7.0"
    unit_of_measurement: V
    accuracy_decimals: 2
    device_class: voltage
    state_class: measurement
    filters:
      - multiply: 0.01

  - platform: sml
    name: "Aktueller Strom L1"
    sml_id: mysml
    obis_code: "1-0:31.7.0"
    unit_of_measurement: A
    accuracy_decimals: 3
    device_class: current
    state_class: measurement 
    filters:
      - multiply: 0.001

  - platform: sml
    name: "Aktueller Strom L2"
    sml_id: mysml
    obis_code: "1-0:51.7.0"
    unit_of_measurement: A
    accuracy_decimals: 3
    device_class: current
    state_class: measurement
    filters:
      - multiply: 0.001

  - platform: sml
    name: "Aktueller Strom L3"
    sml_id: mysml
    obis_code: "1-0:71.7.0"
    unit_of_measurement: A
    accuracy_decimals: 3
    device_class: current
    state_class: measurement
    filters:
      - multiply: 0.001

Weißt du wie ich den Code um die Modbus komponente dafür erweitern muss, damit er als Modbus Energy Meter in Venus OS erkannt wird?

Vielen Dank vorab und Gruß
Pierre