v0.8.1 ist auf Github. Zieht nur intern was mit den Bibliotheken gerade, wer auf 0.8.0 ist muss eigentlich nicht aktualisieren.
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS: Abfrage von Modbus TCP via Homeserver
Einklappen
X
-
Hallo,
ich habe noch nicht auf 1.0 geupdatet, habe aber jetzt nach wochenlangem problemlosen Betrieb ohne am HS was zu ändern folgende fehler, und keine Datenausgabe mehr aus dem Baustein:Kontext / Instanzen / Threads
- ModulID / FW-Index / Instanzen / Versionhs_modbusTCP_reader14184 / 2 / 2
- 14184 / 5 / 2 / 0.7.1TIMER IN LIST 1 Exceptions 08.01.2023 13:30:10 (2)
File "<Hs_modbusTCP_reader14184>", line 500, in __thread_queue_consumer
File "<Hs_modbusTCP_reader14184>", line 799, in on_input_value
File "<Hs_modbusTCP_reader14184>", line 691, in on_interval
File "<Hs_modbusTCP_reader14184>", line 756, in fetch_register
File "/tmp/hs_modbusTCP_reader14184/pymodbus/payload.py", line 447, in decode_32bit_int
handle = self._unpack_words(fstring, handle)
File "/tmp/hs_modbusTCP_reader14184/pymodbus/payload.py", line 361, in _unpack_words
handle = unpack(up, handle)
error: unpack requires a string argument of length 4
Kannst du dazu was sagen?
Die Werte sind vor 2 Tagen stehen geblieben, den HS habe ich noch nicht neugestartet, den Wechselrichter schon, daran scheint es nicht zu liegen.
Kommentar
-
Gute Frage. Vermutlich kamen keine 32bit an für das Int. Kann z.B. die Ursache haben, dass der WR neugestartet wurde während eines Requests. Hätte mit ner anderen Fehlermeldung dann gerechnet (vom Netzwerkstack).
Also ich fange an der Stelle die Exception nicht, weil dann der Trace geschluckt wird. Könnte ich mal einbauen. Warum? Wenn ein Fehler auftritt der nicht behandelt wird beendet der HS die LBS-Ausführung für die Instanz. Sprich du musst den HS neustarten.
Ich glaube ich knüpfe es an den Debug-Eingang. Sprich ohne Debug fängt er alles und schluckt es. Mit Debug haut es ihn notfalls auf die Nase, sagt aber warum.
Kommentar
-
Version 1.1 ist auf den Weg in den Download. Wenn der LBS nicht im Debug läuft fängt er einfach alles. Ziel: Weiterarbeiten, wird schon vorbeigehen das Aua. Damit werden auch alle Fehler gefangen, die selten / "nie" auftreten.
Einrichten sollte man die Verbindungen im Debug-Modus, da man dann die Einträge auf der Debug-Seite hat und wenn es Probleme gibt er sich lang macht und ihr den Stacktrace hier posten könnt.
Er schriebt vor dem Sterben auch noch die Modbus-Adresse / Parameter in die Debug-Seite. Danach hilft leider nur ein HS-Restart.
Kommentar
-
Hallo,
ich habe folgendes Problem:
Ein alter Wechselrichter lässt sich nur per Webabfrage (html) auslesen, das habe ich auch schon erfolgreich in meinem Gira Homeserver implementiert. Die Daten werden also erfolgreich abgefragt und sind im Homeserver vorhanden.
Jetzt habe ich einen Energiemanager, der (alte) Wechselrichter nur per RS485 Modbus TCP abfragen kann.
Gibt es die Möglichkeit, den Homeserver als "virtuellen" Modbus Server zu betreiben (Logikbaustein) und die vorhandenen Wechselrichter-Daten bei einer Anfrage des Energiemanagers per Modbus zurück zu senden?? Oder gibt es eine andere Möglichkeit, die Daten in den Energiemanager zu bekommen? Es geht nur um 2 Abfragen (aktuelle Leistung und Gesamtertrag). Kann ich das mit den hier beschriebenen Bausteinen machen?
Vielen Dank
Kommentar
-
Servus Zusammen,
erstmal vielen Dank für den super Baustein, ich kann meinen SMA WR damit auch tlw. auslesen nur bei der aktuellen Leistung in W (30775) bekomme ich keinen Wert ausgegeben. der Kanal ist mit 30775 / Typ 2 und bei Data type mit default konfiguriert, ausgegeben wird numeric direkt auf eine HS interne GA vom Typ DPT.7001
Problem ist aber, dass ich keinen Wert angezeigt bekomme, die Werte bei 30517 und 30513 werden perfekt ausgegeben.
Hat jemand eine Idee, wo das Problem liegen könnte?
--> Problem gelöst. Firmwareupdate des SMA Wechselrichters plus ANpassung von Ty2 auf Typ 4 und Datatype auf int32 und schon funktioniert es :-)
Zuletzt geändert von Xavac; 01.02.2023, 12:36.
Kommentar
Kommentar