Ich habe gestern meine Wärempumpe bekommen und davor einen Tecget Drehstromzähler eingebaut bekommen. Dieser hat Modbos.
Nun lese ich hier, dass man den Waveshare Amazon Link einbauen kann um vom Modbus auf RJ45 zu kommen und das Gerät somit im Netzwerk einbinden kann.
Nun meine eigentlichen Fragen:
Der Tecget hat nur 2 RS485 Anschlüsse Link , bei den Waveshare braucht man aber 3 (485A, 485B, GND). Woher soll ich dann GND nehmen?
Und da der Waveshare auch Spannung braucht nimmt man am besten den mit PoE?
Es gibt viele RS485/TCP Adapter auf dem Markt. Waveshare ist in der Community beliebt, ich finde sie aber etwas teuer. Die Adapter brauchen Strom, ob du POE, 12V oder 230V ist dabei erstmal egal. Nimm das, was für dich am einfachsten zu installieren ist. Auch WLAN Adapter gibt es.
Für den RS485 BUS braucht man nur 2 Adern. Der GND ist nicht notwendig.
Die Hardware ist verkabelt nun stehe ich etwas auf dem Schlauch wie ich die Daten in Home Assistant bekomme um dann den Verbraucher ins Energy Dashboard zu intigrieren.
Habe ich aufgearbeitet. Ist somit alt.
Was ich bisher verstanden habe:
Modbus wird in die configuration.yaml eingetragen. In etwa also so:
Modbus zaehlerwaermepumpe contain no entities, causing instability, entry not loaded
Ich lese aber keinen “richtigen” Stromzähler aus, sondern nur einen zwischengeschalteten Drehstromzähler für die Wärmepumpe. Kann mir jemand einen Denkanstoß geben?
Die derzeitige configuration.yaml sieht so aus:
modbus:
- name: zaehlerwaermepumpe
type: rtuovertcp
host: 10.10.3.52
port: 502
delay: 0
message_wait_milliseconds: 30
timeout: 5
sensors:
# Spannung L1
- name: Phase A voltage
address: 97
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: V
state_class: measurement
device_class: voltage
# Spannung L2
- name: Phase B voltage
address: 98
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: V
state_class: measurement
device_class: voltage
# Spannung L3
- name: Phase C voltage
address: 99
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: V
state_class: measurement
device_class: voltage
# Strom L1
- name: Phase A active power
address: 356
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: A
state_class: measurement
device_class: current
# Strom L2
- name: Pahse B active power
address: 358
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: A
state_class: measurement
device_class: current
# Strom L3
- name: Phase C active power
address: 360
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: A
state_class: measurement
device_class: current
# Gesamtleistung aktiv
- name: Current total active power
address: 0
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: W
state_class: measurement
device_class: power
# Gesamtenergie (kWh)
- name: Total active power
address: 362
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
Nun startet HA und ich sehe die Modbus integration. Allerdings habe ich noch keine Werte. Die Adressen habe ich aus dieser Modbus Tabelle
Die von Dir verlinkte Modus Tabelle ist nur eine Beispiel Tabelle, wie sowas aussehen könnte.
Du brauchst von dem Hersteller des Stromzähler die richtigen Adressen. Es ist nur drauf zu achten, das die Adressen manchmal in HEX und manchmal in DEZIMAL angegeben sind. Dann muss man es umrechnen.
Auch die Konfig deines Waveshare muss zum Stromzähler passen. Auch hier gibt der Hersteller des Stromzählers vor, wie diese kommunizieren möchte.
Dankeschön! Du hast natürlich Recht. Genau das war der Punkt wo ich auf dem Schlauch stand.
Wie der Zähler und der Waveshare miteinander “Sprechen” (Baudrate, etc.) habe ich schon eingestellt.
Ich habe nun vom Hersteller die Register Tabelle bekommen. Bin nun aber etwas überfordert wie ich das in die configuration.yaml eingeben muss.
Interessant für mich wäre eigentlich nur der Verbrauch damit ich diesen pro Tag in mein Energy Dashboard einfügen kann. Ziel ist es zu sehen wieviel Strom die Heizung gesamt verbraucht.
Kann man in die yaml auch Adressen mit Buchstaben einbinden? Zum Beispiel die 500C für “Strom der A-Phase”. Evtl. würde ich noch die Wirkleistung, Spannung und den Strom mit einbauen.
Ich hab es mal durch Gemini gejagt. Einzig die IP Adresse die du angibst, ist keine typische HeimNetzwerkDingens. Du muss sicher stellen, das dein HA diese Adresse erreichen kann, wenn du den Wave Share so konfiguriert hast.
modbus:
- name: zaehlerwaermepumpe
type: rtuovertcp
host: 10.10.3.52
port: 502
delay: 0
message_wait_milliseconds: 30
timeout: 5
sensors:
- name: "Gesamtenergie"
address: 5999 # Wichtig: Falls der Wert nicht stimmt, probiere 6000
data_type: float32
precision: 2
input_type: input
slave: 1
unit_of_measurement: "kWh"
device_class: energy # Korrigiert von 'kWh' auf 'energy'
state_class: total_increasing # Korrigiert für das Energie-Dashboard
Was korrigiert werden muss:
device_class: Der Wert kWh ist keine gültige Geräteklasse. Die richtige Klasse für Energie ist energy.
state_class: Für Zählerstände, die sich kontinuierlich aufsummieren (wie die Gesamtenergie), nutzt man in Home Assistant total_increasing. Wenn du measurement nutzt, kann Home Assistant den Wert nicht sauber im Energie-Dashboard verwenden.
Register-Adressierung (Offset): Modbus-Geräte in Home Assistant nutzen standardmäßig die 0-basierte Adressierung. Wenn in deinem Tecget-Handbuch steht, dass die Adresse 6000 (oder 36001) ist, musst du in Home Assistant oft 5999 eintragen (Handbuch-Adresse minus 1). Falls das Handbuch bereits 0-basiert ist, bleibt es bei 6000.
Klappt leider nicht. Ich habe den Waveshare nun rausgeworfen und würde lieber mit einem ESP32 und ESPHome arbeiten. Ich glaube es ist sinnvoll das nicht hier zu besprechen. Daher habe ich hier einen eigenen Beitrag gemacht.