Benötige etwas Unterstützung bei der Integration meines BMS-Systems in HA.
Konkret versuche ich alle Daten aus meinem BMS auszulesen und hierzu habe ich eine Abfrage über Modbus Poll erstellt.
Diese Abfrage funktioniert dort und es kommen auch jede Sekunde neue Daten an, siehe hier:
Und hier mein YAML von HA, aktuell nur mit der Abfrage einer Zellspannung.
- name: "BMS"
type: tcp
host: 192.168.178.99 # IP-Adresse des Modbus-Geräts (BMS)
port: 502 # Modbus Standard-Port
delay: 5 # Warten zwischen Anfragen (in Sekunden, falls Gerät langsam antwortet)
timeout: 5 # Timeout auf 5 Sekunden erhöhen
sensors:
# Einzelzellenspannungen (75 Zellen)
- name: "Cell Voltage 1"
unique_id: "cell_voltage_1"
address: 48195 # Adresse ohne hex
unit_of_measurement: "V"
input_type: input
scale: 0.001 # Skalierungsfaktor, um von Millivolt in Volt umzuwandeln
precision: 3 # Nachkommastellen
device_class: voltage
state_class: measurement
slave: 1
In HA kommen sporadisch Werte an, und diese sind auch noch falsch.
Habe auch die Adressen 48193-48195 getestet, immer das gleiche Ergebnis.
Auch habe ich den input_type von holding auf input umgestellt, immer das gleiche.
Und das Log von HA. irgendwie scheint es ein Verbindungsproblem zu geben, aber warum funktioniert es dann über Modubus Poll?
2024-12-27 10:41:51.549 ERROR (MainThread) [homeassistant.components.modbus.modbus] Pymodbus: BMS: Error: device: 1 address: 48195 → Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Bitte gebt mir ein paar Tipps, denn ich finde meinen Fehler nicht.
Danke
Wechselrichter :
Bei mir steht unter „sensors“ noch der eintrag „device_address: 1“
und der Eintrag „data_type: uint16“
„precision“ habe ich auskommentiert. gibt ne fehlermeldung.
„slave:“ gibt es garnicht.
Vieleicht einfach soviel auskommentieren wie geht, und dann sehen was als Daten kommt.
Also ich habe jetzt versucht das YAML etwas zu kürzen, nun sieht es wie folgt aus:
- name: "BMS"
type: tcp
host: 192.168.178.99 # IP-Adresse des Modbus-Geräts (BMS)
port: 502 # Modbus Standard-Port
delay: 5 # Warten zwischen Anfragen (in Sekunden, falls Gerät langsam antwortet)
timeout: 5 # Timeout auf 5 Sekunden erhöhen
sensors:
# Einzelzellenspannungen (75 Zellen)
- name: "Cell Voltage 1"
unique_id: "cell_voltage_1"
address: 48195 # Adresse ohne hex
unit_of_measurement: "V"
# input_type: input
# scale: 0.001 # Skalierungsfaktor, um von Millivolt in Volt umzuwandeln
# precision: 3 # Nachkommastellen
device_class: voltage
state_class: measurement
device_address: 1
data_type: uint16
Die Fehlermeldung sieht nun etwas anders aus, allerdings immer noch keine Daten:
2024-12-28 18:31:22.839 DEBUG (MainThread) [homeassistant.components.modbus.modbus] Pymodbus: BMS: Error: device: 1 address: 48195 → Modbus Error: [Input/Output] ERROR: No response received after 3 retries
2024-12-28 18:31:22.840 DEBUG (MainThread) [homeassistant.components.modbus.modbus] Pymodbus: BMS: Error: device: 1 address: 48195 → Modbus Error: [Connection] Not connected[AsyncModbusTcpClient 192.168.178.99:502]
Das Device, die Adresse und der Port stimmen.
Hab auch anschließend über Modubus Poll erneut getestet und dort kommen die Daten an. Ich bin echt schon am verzweifeln…
Ich vermute mal Modbus Poll und HA laufen nicht auf derr gleichen Maschine.
Sonnt Netzwerk Probleme mit HA ?
Alles weg was nicht unbedingt benötig wird.
Anbei ein Beispiel das bei mir funktioniert hat. (Den go-e gibts nicht mehr)
modbus:
- name: "go-eCharger"
type: tcp
host: 192.168.19.21
port: 502
sensors:
- name: "go-eCharger Allow"
unique_id: "go-echarger_allow"
address: 200 # allow_charging: 0: nein 1: ja
input_type: holding
state_class: measurement
data_type: uint16
- name: "go-eCharger Volt L1"
unique_id: "go-echarger_volt_l1"
address: 108 # Spannung auf L1 in Volt
input_type: input
unit_of_measurement: V
state_class: measurement
data_type: uint32
swap: word
Noch eine Anmerkung. Meine configuration.yaml ist aufgeteilt und wird mit „include_dir_named“ eingelesen.
Das Beispiel ist also evtl. so nicht direkt zu verweden.
Also HA läuft bei mir in einem Docker Container und Modbus Poll auf meinem PC.
Von daher gibt es sicherlich auch Unterschiede in der Geschwindigkeit, allerdings habe ich in HA auch andere Geräte integriert und diese funktionieren tadellos. Zum Beispiel habe ich einen Goodwe Wechselrichter ergänzt und dessen Daten werden auch über Modbus TCP übertragen.
Also irgendwie komme ich hier nicht weiter.
Ach ja, habe auch die Konfiguration aufgeteilt mit einem Include in der Configuration.Yaml
# Loads default set of integrations. Do not remove.
default_config:
logger:
default: info
logs:
homeassistant.components.modbus: debug
pymodbus.client: debug
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Automations, Scripts und Scenes sollten direkt inkludiert werden
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Modbus TCP Konfiguration
modbus: !include modbus.yaml
Und einer Modbus.Yaml, welche ich ja bereits eingangs gepostet habe.
Kann es sein, dass ich die Adresse in einem anderen Format angeben muss?