Wahrscheinlich falsche ModBus Adresse. Wenn alle Geräte am gleichen RS485 Bus hängen, was Vorteile bei der Verkabelung hat und man benötigt dann nur einen RS485 Adapter, müssen alle Geräte eine jeweils andere Slave-Adresse bekommen.
Also ich habe das wie folgt configuriert:
host: homeassistant.local # hier IP des hosts
port: 502
id: 2 # Die ID die ich auch im Sunsync/Deye Inverter Add-On sowie auf dem Wechselrichter eingerichtet habe
Das Sunsync Add-On bekommt werte, bei allen anderen bekomme ich ein Connection closed by peer
. Dachte das sei der Vorteil das ich mit verschiedenen Devices auf den Bus zugreifen kann...
Achso evtl. noch dazu gesagt, die Geräte hängen nicht am bus sondern sollen eigentlich per TCP die daten vom Wechselrichter beziehen.
Uff, du benutzt also einen TCP auf ModBusRTU-> RS485 Adapter? Da kenne ich mich nicht mit aus.
Müsste da als Host nicht die IP dieses Adapter drinnen stehen? Due hast Homeassistant.local drinnen stehen, das erscheint mir falsch.
Nein, ich habe den 4CH Modbus USB Adapter an meinem Home Assistant und nutze darin das kellerza/sunsynk addon. Man kann nur eine Connection zu dem USB Device Nutzen steht in der Doku, braucht man mehrere Connections soll man das mdbus plugin verwenden und sich mit dem addon dagegen verbinden.....
Naja, mir ist sowieso eben aufgefallen das mir ein wichtiger Wert fehlt bei kellerza/sunsynk der mir Solar-Assistant gibt: current battery power so kann ich nicht sehen ob die batterie gerade geladen oder entladen wird zu früh gefreut!
Sorry, irgendwie verstehe ich deine Sätze nicht!
- im SunSynk AddOn kannst du natürlich nur auf einen WR zugreifen
- deine obige Konfig dieses AddOn scheint falsch zu sein
- gehe in Home Assistant auf "Einstellungen -> System ->Hardware -> gesamte Hardware"
- es erscheint ein Dialog mit der Hardware
- suche darin nach "ttyACM0" bis §ttyACM3". Das sind die Ports eines 4ch-USB-RS485 Adapters
- einer dieser 4 Ports hast du an deinem Wechelrichter per Kabel am BMS oder ModeBus Port aangeschlossen
- wenn ttyACM0 ist Port 1 des Adaptes und ttyACM3 ist Port 4 des Adapters
- schaue welcher Port es ist
- gehe in die Konfig des SynSynk Addons "Einstellungen -> Integrationen -> SunSynk -> Konfiguration"
- Hamburgermenu recht oben auf YAML Modus umstellen
- nachfolgend meine Konfig
DRIVER: pymodbus
INVERTERS:
- SERIAL_NR: "xxxxxxxxxxxx"
HA_PREFIX: sunsynk
MODBUS_ID: 1
DONGLE_SERIAL_NUMBER: "0"
PORT: /dev/ttyACM1
SENSOR_DEFINITIONS: three-phase
SENSORS:
- all
SENSORS_FIRST_INVERTER:
- all
MANUFACTURER: Sunsynk
READ_ALLOW_GAP: 2
READ_SENSORS_BATCH_SIZE: 20
SCHEDULES:
- KEY: any_unit
READ_EVERY: 5
REPORT_EVERY: 5
CHANGE_ANY: true
- KEY: no_unit
READ_EVERY: 5
REPORT_EVERY: 5
CHANGE_ANY: true
NUMBER_ENTITY_MODE: box
PROG_TIME_INTERVAL: 15
MQTT_HOST: xxxxxxxxxxxxxxxx
MQTT_PORT: 1883
MQTT_USERNAME: xxxxxxxxxxxxxxx
MQTT_PASSWORD: xxxxxxxxxxxxxxx
- alles mit xxxxxxxxx markierte musst du bei dir anpassen.
- PORT: /dev/ttyACM1 musst du anpassen
- Integration neu starten
wie du siehst gibt es einen "Battery Power", also den Lade/Entladestrom des Akkus den du suchst.
- alle anderen RS485 Geräte kannst du an die verbleibenden 3 Kanäle des USB-RS485 Adapters anschließen oder aber verkettet alle an einem Kabel = Bussystem. Dann müssen sie aber andere ModBus-Adressen = IDs bekommen.
PS: übrigens bin ich mir nicht sicher ob du auf den Wechselrichter mit zwei Master zur gleichen Zeit zugreifen kannst. Wie es mir scheint hast du ja SolarAssitent installiert der über RS232 Dongle auf den WR zugreift und möchtest per RS485 am BMS/Modebus des WR nun mit Homeasisstant zugreifen. Das sind also dann zwei master die per ModBus auf den WR zugreifen wollen. Ob das sauber geht weiß ich nicht.
PPS: deine obige Konfig des SunSynk AddOns scheint nicht über USB->RS485 Adapter zu laufen sondern über TCP/IP zum SolarAssitant. Anders kann ich mir nicht erklären warum du bei dieser Konfiguration überhaupt Werte von SunSynk AddOn bekommst.
Vielen Dank für die ausführliche Ausführung .
Ich versuche mich verständlicher auszudrücken:
Ich habe mehrere Systeme die auf den Modbus vom Wechselrichter zugreifen sollen, da währen das SunSynk AddOn, meine Wallbox (dort kann man den Wechselrichter hinterlegen, damit die Wallbox überschussladen realisieren kann) und EVCC (System zum Überschussladen) damit es die Daten direkt an der Quelle beziehen kann und nicht über MQTT.
Ich habe den Fehler diesbezüglich gefunden. Unter Sensors hast du - all
angegeben weswegen du auch die Battery Power
bekommst. Wer nicht - all
eingeben möchte, der kann hier battery_power
eingeben und bekommt diese somit auch.
Ich habe für den Port halt den mdbus entpoint eingetragen so wie es in der Dokumentation beschrieben ist. Funktioniert auch gut, nachdem ich die vertauschten Kabel richtig installiert habe.
Was mir aktuell negativ auffällt ist das Updateintervall welches wesentlich langsamer ist als bei solar_assistant. Hier habe ich mich mal an deinen Einstellungen unter SCHEDULES
orientiert, ändert jedoch nichts. Hier mal ein Vergleich zwischen Solar Assistant (gelb) und SunSynk AddOn (grün). Ich habe die SunSynk Daten extra als Balken dargestellt damit man sie überhaupt sehen kann....
Das geht nicht und ich glaube auch nicht das es bei dir schon sauber funktioniert haben kann, Wenn Ja dann ist das Zufall. Auf einem ModBus mit mehreren Geräten kann nur ein Master existieren. Bei dir sind es aber drei Master, HomeAssistant mit SunSynk AddOn dann Wallbox und noch dazu EVCC.
Du benuzt MBus und das greift letzendlich auch auf den Seriellen Port zu geht aber dann den Umweg über zusätzlich über TCP/IP. Ich würde das nicht so machen, sondern pyModBus mit direktem Serial Port nutzen. Also ohne Umwege.
Ändere das mal und schaue ob das was am Update Intervall verändert.
Am Anfang war ich auch so versessen und wollte so schnell und so viele Daten wie möglich haben. Das hat sich mittlerweile geändert und viele Daten frage ich nicht mehr vom Deye ab.
Moin
Ich gebe mal meine Senf dazu ..
Ich glaube es gibt Module/Konverter die aus dem ModbusRTU/RS485 ein ModbusTCP machen. Das ModbusModul ist der einzige Master auf dem RS485-Bus und stellt dann mehreren TCP-Clients die Register über TCU/UDP bereit.
Vieleicht wäre das eine Lösung.
Ich habe soetwas noch nie selber benutzt. Nur Halbwissen!!
Oder, wenn es nur um das Daten lesen geht eben doch MQTT als Mutiplikator.Aber da sind wir auch schon wieder im Netzwerk.
Vieleicht hilfts ja ...
Grüsse Leiner
Ich habe nie behauptet das es bei mir schon geklappt hat, aber evtl. hast du dir den verlinkten teil der Anleitung mal angeschaut, dort steht exakt das beschrieben was ich gesagt habe.
genau so habe ich das verstanden. Wenn man den mdbus dazwischen hängt fungiert der als master und als proxy für die clients hinten dran. Leider bekomme ich es so nicht zum laufen....
Übrigens @pv-soko ich brauche auch nicht alle Daten vom Wechselrichter, jedoch habe ich ja nach einer Lösung gesucht die mir die benötigten Daten möglichst in Echtzeit zur Verfügung stellt, sonst kann man ja auch bei Solarman bleiben oder?
Hay
Ich hab gerade noch den hier gefunden ...:
ModBus Proxy in HA
Vieleicht hilft Dir das ja
Gruss Leiner
Hallo zusammen, ich versuche meinen Deye 12k über die Applikation von kellerza dauerhaft auszulesen. Soweit klappt es mit meiner Konfiguration, meine Daten werden ausgelesen und aktualisiert, aber nach ca. 20 Minuten bekomme ich andauernd Time-Outs bis die Daten einfrieren. Die Log-Datei gibt aus:
13:14:44 INFO Loading config: /data/options.json
13:14:44 INFO sunsynk library version: 0.8.2
13:14:44 INFO Schedules:
+-----------+-----+------+--------+-----------+----------+------------+
| Key | src | Read | Report | Change by | Change % | Change any |
+-----------+-----+------+--------+-----------+----------+------------+
| date_time | | 60 | 60 | | | True |
| rw | | 5 | 300 | | | True |
| enum | | 5 | 300 | | | True |
| w | * | 20 | 20 | 80.0 | | |
| kwh | * | 60 | 60 | | | |
| any_unit | * | 60 | 60 | | | |
| no_unit | | 15 | 300 | | | True |
+-----------+-----+------+--------+-----------+----------+------------+
13:14:44 INFO Using three phase sensor definitions.
13:14:44 INFO Added hidden sensors as other sensors depend on it: Device type, Protocol, Serial
13:14:44 INFO Connecting to /dev/ttyUSB0
13:14:44 INFO PyModbus 3.8.3 Serial: /dev/ttyUSB0
13:14:44 INFO Reading startup sensors Device type, Protocol, Serial
13:14:47 INFO ############################################################
13:14:47 INFO Inverter serial number '*******'
13:14:47 INFO ############################################################
13:14:47 INFO Device type: Low voltage three phase hybrid, using the three-phase sensor definitions
13:14:47 INFO Protocol version: 1.4
13:14:47 INFO Reading all sensors Device type, Protocol, Serial, Battery temperature, Battery voltage, Battery SOC, Battery power, Battery current, Inverter power, Inverter L1 power, Inverter L2 power, Inverter L3 power, Grid power, Grid L1 power, Grid L2 power, Grid L3 power, Load power, Load L1 power, Load L2 power, Load L3 power, PV power, PV1 power, PV1 voltage, PV1 current, PV2 power, PV2 voltage, PV2 current, Day Battery Charge, Day Battery discharge, Day Grid Import, Day Gen Energy, Day Load Energy, Day PV Energy, Total Battery Charge, Total Battery Discharge, Total Grid Import, Total Load Energy, Total PV Energy
13:14:48 INFO MQTT: Connecting to ****@core-mosquitto:1883
13:14:48 INFO MQTT: Connection successful
13:14:49 INFO Read every (inverter 1)
+----+--------------------------------------------------------------------------------+
| s | Sensors |
+----+--------------------------------------------------------------------------------+
| 5 | device_type |
| 15 | serial, protocol |
| 20 | grid_l3_power, load_power, load_l3_power, inverter_power, inverter_l1_power, |
| | battery_power, grid_power, load_l1_power, pv1_power, pv_power, |
| | inverter_l2_power, pv2_power, grid_l2_power, inverter_l3_power, load_l2_power, |
| | grid_l1_power |
| 60 | pv1_current, day_battery_charge, total_battery_discharge, battery_temperature, |
| | pv1_voltage, day_pv_energy, battery_voltage, day_battery_discharge, |
| | day_gen_energy, battery_soc, total_load_energy, battery_current, |
| | total_battery_charge, pv2_current, day_grid_import, total_grid_import, |
| | total_pv_energy, day_load_energy, pv2_voltage |
+----+--------------------------------------------------------------------------------+
13:14:49 INFO Report every (inverter 1)
+----+--------------------------------------------------------------------------------+
| s | Sensors |
+----+--------------------------------------------------------------------------------+
| 20 | grid_l3_power, load_power, load_l3_power, inverter_power, inverter_l1_power, |
| | battery_power, grid_power, load_l1_power, pv1_power, pv_power, |
| | inverter_l2_power, pv2_power, grid_l2_power, inverter_l3_power, load_l2_power, |
| | grid_l1_power |
| 60 | pv1_current, day_battery_charge, total_battery_discharge, battery_temperature, |
| | pv1_voltage, day_pv_energy, battery_voltage, day_battery_discharge, |
| | day_gen_energy, battery_soc, total_load_energy, battery_current, |
| | total_battery_charge, pv2_current, day_grid_import, total_grid_import, |
| | total_pv_energy, day_load_energy, pv2_voltage |
+----+--------------------------------------------------------------------------------+
13:34:15 ERROR OSError in callback read_ss: timeout reading 1 registers from 590; timeout reading 4 registers from 622; timeout reading 4 registers from 633; timeout reading 4 registers from 650; timeout reading 4 registers from 672 poll_need_to_read
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/timer_callback.py", line 81, in wrap_callback
await cb_call
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/sensor_callback.py", line 110, in callback_sensor
await ist.read_sensors(
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 55, in read_sensors
await self.inv.read_sensors(sensors)
File "/usr/local/lib/python3.12/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors
raise IOError("; ".join(errs))
OSError: timeout reading 1 registers from 590; timeout reading 4 registers from 622; timeout reading 4 registers from 633; timeout reading 4 registers from 650; timeout reading 4 registers from 672 poll_need_to_read
13:36:06 ERROR OSError in callback read_ss: timeout reading 8 registers from 0; timeout reading 7 registers from 514; timeout reading 2 registers from 522; timeout reading 4 registers from 526; timeout reading 3 registers from 534; timeout reading 6 registers from 586; timeout reading 4 registers from 622; timeout reading 4 registers from 633; timeout reading 4 registers from 650; timeout reading 8 registers from 672 poll_need_to_read
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/timer_callback.py", line 81, in wrap_callback
await cb_call
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/sensor_callback.py", line 110, in callback_sensor
await ist.read_sensors(
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 55, in read_sensors
await self.inv.read_sensors(sensors)
File "/usr/local/lib/python3.12/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors
raise IOError("; ".join(errs))
OSError: timeout reading 8 registers from 0; timeout reading 7 registers from 514; timeout reading 2 registers from 522; timeout reading 4 registers from 526; timeout reading 3 registers from 534; timeout reading 6 registers from 586; timeout reading 4 registers from 622; timeout reading 4 registers from 633; timeout reading 4 registers from 650; timeout reading 8 registers from 672 poll_need_to_read
13:40:00 ERROR (2 in 5 min) OSError in callback read_ss: timeout reading 8 registers from 0; timeout reading 7 registers from 514; timeout reading 2 registers from 522; timeout reading 4 registers from 526; timeout reading 3 registers from 534; timeout reading 6 registers from 586; timeout reading 4 registers from 622; timeout reading 4 registers from 633; timeout reading 4 registers from 650; timeout reading 8 registers from 672 poll_need_to_read
Da der WR in einem wlan-freien Bereich liegt habe ich ein Netzwerkkabel (CAT7) bis zum Zählerschrank gelegt (ca. 30m). Auf 6 Adern des Kabels sind die CT angeschlossen. Auf den restlichen zwei Adern habe ich A und B aus dem ModBus-Port meines Deye abgezweigt, die auf einen USB-to-RS485 Adapter gehen. Ich habe schon zwei unterschiedliche Adapter probiert und jeweils das gleiche Fehlerbild. Am BMS-Port hängt meine Batterie (ebenfalls über RS485, CAN nur bedingt möglich). Ich habe die Firmware C037 und 1144-1807 drauf und bekomme auch Daten aus dem ModBus-Port. Wenn die Batterie abgeklemmt ist, habe ich ebenfalls das gleiche Problem. Mein Wifi-Dongle ist nicht montiert. Der Deye ist auf Master und die Modbus SN auf 01 gestellt.
Meine Konfiguration ist wie folgt:
DRIVER: pymodbus
INVERTERS:
- SERIAL_NR: "****"
HA_PREFIX: SS
MODBUS_ID: 1
DONGLE_SERIAL_NUMBER: "0"
PORT: /dev/ttyUSB0
SENSOR_DEFINITIONS: three-phase
SENSORS:
- battery_temperature
- battery_voltage
- battery_soc
- battery_power
- battery_current
- inverter_power
- inverter l1_power
- inverter l2_power
- inverter l3_power
- grid_power
- grid_l1_power
- grid_l2_power
- grid_l3_power
- load_power
- load_l1_power
- load_l2_power
- load_l3_power
- pv_power
- pv1_power
- pv1_voltage
- pv1_current
- pv2_power
- pv2_voltage
- pv2_current
- day_battery_charge
- day_battery_discharge
- day_grid_import
- day_gen_energy
- day_load_energy
- day_pv_energy
- total_battery_charge
- total_battery_discharge
- total_grid_import
- total_load_energy
- total_pv_energy
SENSORS_FIRST_INVERTER: []
MANUFACTURER: Deye
READ_ALLOW_GAP: 2
READ_SENSORS_BATCH_SIZE: 8
SCHEDULES:
- KEY: W
READ_EVERY: 20
REPORT_EVERY: 20
CHANGE_ANY: false
CHANGE_BY: 80
CHANGE_PERCENT: 0
- KEY: KWH
READ_EVERY: 60
REPORT_EVERY: 60
- KEY: any_unit
READ_EVERY: 60
REPORT_EVERY: 60
NUMBER_ENTITY_MODE: auto
PROG_TIME_INTERVAL: 15
MQTT_HOST: core-mosquitto
MQTT_PORT: 1883
MQTT_USERNAME: ****
MQTT_PASSWORD: ****
Die Ausgabe im MQTT ist:
2025-02-02 13:23:04: New connection from 172.30.32.1:41259 on port 1883.
2025-02-02 13:23:04: New client connected from 172.30.32.1:41259 as 2yj9e3FMxADw8jbJ0SzxAZ (p2, c1, k60, u'****').
2025-02-02 13:42:49: New connection from 172.30.33.1:48375 on port 1883.
2025-02-02 13:42:49: New client connected from 172.30.33.1:48375 as auto-D9BA70F1-08F2-8C43-5491-0E1EA2500D4D (p2, c1, k60, u'****').
2025-02-02 13:52:15: Saving in-memory database to /data//mosquitto.db.
2025-02-02 14:12:27: Client auto-D9BA70F1-08F2-8C43-5491-0E1EA2500D4D closed its connection.
Als möglichen Lösungsweg habe ich auch wie in dem Beitrag (Timeout with 3 different USB-RS485 adapters · kellerza/sunsynk · Discussion #98 · GitHub) empfohlen auf mbusd umgestellt und die Konfiguration wie folgt angepasst:
DRIVER: pymodbus
INVERTERS:
- SERIAL_NR: "****"
HA_PREFIX: SS
MODBUS_ID: 1
DONGLE_SERIAL_NUMBER: "0"
PORT: tcp://homeassistant.local:502
Dann erhalte ich ebenfalls nach ca. 20-30 min einen EXCEPTION Fehler:
13:45:17 INFO Connecting to tcp://homeassistant.local:502
13:45:17 INFO PyModbus 3.8.3 tcp: homeassistant.local:502
13:45:17 INFO Reading startup sensors Device type, Protocol, Serial
13:45:17 INFO ############################################################
13:45:17 INFO Inverter serial number '*******'
13:45:17 INFO ############################################################
13:45:17 INFO Device type: Low voltage three phase hybrid, using the three-phase sensor definitions
13:45:17 INFO Protocol version: 1.4
13:45:17 INFO Reading all sensors Device type, Protocol, Serial, Battery temperature, Battery voltage, Battery SOC, Battery power, Battery current, Inverter power, Inverter L1 power, Inverter L2 power, Inverter L3 power, Grid power, Grid L1 power, Grid L2 power, Grid L3 power, Load power, Load L1 power, Load L2 power, Load L3 power, PV power, PV1 power, PV1 voltage, PV1 current, PV2 power, PV2 voltage, PV2 current, Day Battery Charge, Day Battery discharge, Day Grid Import, Day Gen Energy, Day Load Energy, Day PV Energy, Total Battery Charge, Total Battery Discharge, Total Grid Import, Total Load Energy, Total PV Energy
13:45:20 INFO MQTT: Connecting to *****@core-mosquitto:1883
13:45:20 INFO MQTT: Connection successful
13:45:21 INFO Read every (inverter 1)
+----+-------------------------------------------------------------------------------+
| s | Sensors |
+----+-------------------------------------------------------------------------------+
| 5 | device_type |
| 15 | serial, protocol |
| 20 | grid_power, inverter_power, inverter_l3_power, grid_l1_power, pv2_power, |
| | grid_l3_power, load_l1_power, load_power, pv1_power, inverter_l1_power, |
| | grid_l2_power, pv_power, load_l2_power, inverter_l2_power, load_l3_power, |
| | battery_power |
| 60 | total_battery_discharge, day_grid_import, day_battery_discharge, battery_soc, |
| | pv2_voltage, pv1_current, pv2_current, total_grid_import, battery_voltage, |
| | day_pv_energy, battery_current, total_battery_charge, day_load_energy, |
| | day_gen_energy, pv1_voltage, total_pv_energy, battery_temperature, |
| | day_battery_charge, total_load_energy |
+----+-------------------------------------------------------------------------------+
13:45:21 INFO Report every (inverter 1)
+----+-------------------------------------------------------------------------------+
| s | Sensors |
+----+-------------------------------------------------------------------------------+
| 20 | grid_power, inverter_power, inverter_l3_power, grid_l1_power, pv2_power, |
| | grid_l3_power, load_l1_power, load_power, pv1_power, inverter_l1_power, |
| | grid_l2_power, pv_power, load_l2_power, inverter_l2_power, load_l3_power, |
| | battery_power |
| 60 | total_battery_discharge, day_grid_import, day_battery_discharge, battery_soc, |
| | pv2_voltage, pv1_current, pv2_current, total_grid_import, battery_voltage, |
| | day_pv_energy, battery_current, total_battery_charge, day_load_energy, |
| | day_gen_energy, pv1_voltage, total_pv_energy, battery_temperature, |
| | day_battery_charge, total_load_energy |
+----+-------------------------------------------------------------------------------+
13:48:46 ERROR Exception response 131 / 0
13:48:46 ERROR OSError in callback read_ss: OSError reading 8 registers from 0: failed to read register 0 - function code: 131 poll_need_to_read
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/timer_callback.py", line 81, in wrap_callback
await cb_call
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/sensor_callback.py", line 110, in callback_sensor
await ist.read_sensors(
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 55, in read_sensors
await self.inv.read_sensors(sensors)
File "/usr/local/lib/python3.12/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors
raise IOError("; ".join(errs))
OSError: OSError reading 8 registers from 0: failed to read register 0 - function code: 131 poll_need_to_read
14:10:45 ERROR Exception response 131 / 0
14:12:27 ERROR Exception response 131 / 0
14:12:27 ERROR OSError in callback read_ss: OSError reading 1 registers from 0: failed to read register 0 - function code: 131 poll_need_to_read
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/timer_callback.py", line 81, in wrap_callback
await cb_call
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/sensor_callback.py", line 110, in callback_sensor
await ist.read_sensors(
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 55, in read_sensors
await self.inv.read_sensors(sensors)
File "/usr/local/lib/python3.12/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors
raise IOError("; ".join(errs))
OSError: OSError reading 1 registers from 0: failed to read register 0 - function code: 131 poll_need_to_read
14:12:32 ERROR Exception response 131 / 0
14:12:37 ERROR Exception response 131 / 0
14:12:42 ERROR Exception response 131 / 0
14:12:44 ERROR Exception response 131 / 0
14:12:46 ERROR Exception response 131 / 0
14:12:48 ERROR Exception response 131 / 0
14:12:50 ERROR Exception response 131 / 0
14:12:53 ERROR Exception response 131 / 0
14:12:53 ERROR OSError in callback read_ss: OSError reading 1 registers from 0: failed to read register 0 - function code: 131; OSError reading 1 registers from 590: failed to read register 590 - function code: 131; OSError reading 4 registers from 622: failed to read register 622 - function code: 131; OSError reading 4 registers from 633: failed to read register 633 - function code: 131; OSError reading 4 registers from 650: failed to read register 650 - function code: 131; OSError reading 4 registers from 672: failed to read register 672 - function code: 131 poll_need_to_read
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/timer_callback.py", line 81, in wrap_callback
await cb_call
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/sensor_callback.py", line 110, in callback_sensor
await ist.read_sensors(
File "/usr/local/lib/python3.12/site-packages/ha_addon_sunsynk_multi/a_inverter.py", line 55, in read_sensors
await self.inv.read_sensors(sensors)
File "/usr/local/lib/python3.12/site-packages/sunsynk/sunsynk.py", line 134, in read_sensors
raise IOError("; ".join(errs))
OSError: OSError reading 1 registers from 0: failed to read register 0 - function code: 131; OSError reading 1 registers from 590: failed to read register 590 - function code: 131; OSError reading 4 registers from 622: failed to read register 622 - function code: 131; OSError reading 4 registers from 633: failed to read register 633 - function code: 131; OSError reading 4 registers from 650: failed to read register 650 - function code: 131; OSError reading 4 registers from 672: failed to read register 672 - function code: 131 poll_need_to_read
14:12:56 ERROR Exception response 131 / 0
14:13:01 ERROR Exception response 131 / 0
14:13:04 ERROR Exception response 131 / 0
14:13:06 ERROR Exception response 131 / 0
14:13:08 ERROR Exception response 131 / 0
14:13:10 ERROR Exception response 131 / 0
14:13:12 ERROR Exception response 131 / 0
14:13:15 ERROR Exception response 131 / 0
14:13:17 ERROR Exception response 131 / 0
14:13:19 ERROR Exception response 131 / 0
Das Log des mbusd gibt aus:
[14:44:23] INFO: Starting mbusd -d -L - -v 2 -p /dev/ttyUSB0 -s 9600 -m 8N1 -P 502
02 Feb 2025 14:44:23 mbusd-0.5.1 started...
02 Feb 2025 14:44:23 tty: trying to open /dev/ttyUSB0 (speed 9600 mode 8N1)
02 Feb 2025 14:45:17 conn_open(): accepting connection from 172.30.33.1
Seht ihr einen mögliche Lösung, um die Timeout zu verhindern? Habe ich eine Kleinigkeit in der Konfiguration übersehen?
Ich bedanke mich herzlich im Voraus
Ich habe mich jetzt dem Waveshare RS485 to RJ45 POE Module bedient das @FiRE93 erwähnt hat. Funktioniert einwandfrei und sowohl die Wallbox, als auch EVCC und das Deye/Sunsynk Addon können parallel auf den Bus zugreifen. Jeder bekommt die Daten so schnell wie er sie benötigt und es hat noch einen weiteren Vorteil: Weniger Fehlerquellen! Das Modul kann in den Schaltschrank, wo es als Infrastrukturhardware auch hingehört und solange das Netzwerk läuft, sollte irgendwer auf den Bus zugreifen können. Die USB Lösung ist abhängig davon das MQTT sowie auch Home Assistant laufen und das Addon und so weiter....
@pv-soko modbus tcpip ist multimaster fähig, das ist in einer so komplexen infrastruktur auch mehr als sinnvoll. Ich persönlich finde es gut wenn jeder die Daten direkt von der Quelle bezieht und nicht über 50 Umwege!
Kannst du mir bitte nochmal erklären wie du was verkabelt hast? Also wieviel dieser RJ45 POE Module benutzt du? an deren RS485 Bus hängen welche Geräte? Wie greifen Wallbox/EVCC/SunSynk Addon auf den Bus zu?
Sind diese Master am RS485 Bus oder per TCP LAN Kabel angeschlossen?
Hardware:
- 1x Eastron SDM630 v2 (Smart Meter für den Wechselrichter)
- 1x DEYE Sun-12k-sg01hp3-eu am2 (Wechselrichter)
- 1x Waveshare RS485-to-ETH-B mit POE
Anschluss:
- Eastron per Modbus am Deye
- Deye per Modbus am Waveshare (oder besser gesagt Waveshare als Master)
- Waveshare an meinem POE Switch und somit im Netzwerk
Connection:
Alle Systeme die etwas vom Wechselrichter wollen/brauchen verbinden sich per tcpip zum Waveshare welcher wiederrum als Master am Wechselrichter hängt.
- Wallbox: um die Ladeleistung im Log zu haben und theoretisch kann sie direktes Überschuss laden
- EVCC: weil es etwas schicker ausschaut als die Wallbox und noch ein paar mehr funktionen bietet. Wenn der Wechselrichter und Akku ordentlich integriert sind, sind auch weitere Funktionen erhalten, wie beispielsweise die Vermeidung vom Laden des EV aus dem Akku.
- SunSynk: Um alle Daten nochmal in MQTT und Home Assistant zu haben für weitere Automationen, steuerungen und zum einbinden in ein umfangreicheres Energiemanagement Systems (evtl. EOS)
Hallo, ich habe den Deye12K über den Waveshare RS485 zu USB an den Home Assistant angeschlossen.
Die Modbus Werte werden mit dem Add-On von kellerza ausgelesen. Das funktioniert gut und zuverlässig.
Leider fehlen mir die Werte zu den Spannungen der einzelnen Batteriezellen. Des weiteren würde ich gerne über Modbus den GEN Port auf Mi-Inverter ein und ausschalten (habe noch weitere Wechselrichter). Wie kann ich die Werte hinzufügen? Über Modbus sollten die ja eigentlich gesendet werden.
Ok. Dann ist es also doch kein RS485 Multi-Master-Bus. Am RS485 Bus hängen also nur Slaves und es gibt nur einen Master, der WaveShare-ModBus-TCP/IP Adapter. Erst dieser multiplext die Anfoderungen die über TCP rein/raus gehen auf den RS485 ModBus.
Hallo zusammen
Bis vor kurzem hatte ich die Solarman Integration in HA laufen.
Leider gibt es da immer wieder mal Verbindungsabbrüche, die nur behebbar sind wenn ich das WLAN Modul neu konfiguriere.
Komischerweise funktioniert die Android App die ganze Zeit.
Nervt gewaltig.
Nun habe ich mal umgestellt auf ESP-Home mit RS485 to TTL
Im Log von ESP Home kann ich sehen das da Daten ausgelesen werden.
Ich bekomme jedoch keinerlei Entitäten im HA angezeigt.
Muss ich da noch irgendwas machen, installieren, um die Daten aus ESP-Home zu bekommen ?
Gruß
Stefan
Welche Integration wurde verwendet? Es gibt zwei. Ich benutze die Integration von David, ein Problem mit der Neukonfiguration des WLAN-Moduls ist mir nicht bekannt.
Ja genau diese habe ich verwendet.
Ich hatte die letzten Tage immer wieder das Problem das die Integration folgenden Fehler meldet:
"Inverter
Keine Geräte oder Entitäten
Einrichtungsfehler, wird erneut versucht: [xxxxxxxxxx] Device setup failed. [TimeoutError]"
Es ist keine Verbindung möglich.
Beim letzten Mal habe ich das WLAN Modul aufgerufen, sprich mit dessem AP verbunden und die Weboberfläche aufgerufen und die Einstellungen für mein WLAN erneut eingegeben.
Dann ging es eine Zeit wieder.
Seit ein paar Tagen läuft es nicht mehr.
Deswegen der Umstieg auf ESP_Home
Ich antworte mir mal selber ...
Ich habe gerade gesehen das bei Geräte und Dienste unter ESPHome der Deye nicht aufgeführt war.
Ich habe dann unten rechts auf Gerät hinzufügen geklickt und den Deye ausgewählt.
Jetzt habe ich meine Daten.
Ich meine das ich das nicht für meine anderen ESPs gemacht habe.
Ist das neu ?