PV-Überwachung ohne Cloud - Seite 3
|
|
||
|
Da kommen mit mbpoll ja auch viele Fehler. Funktioniert das Python-Script nie, egal wie oft du es wiederholst? Ich kenne mich mit modbus (noch) nicht aus, aber die Verbindung scheint hier nicht zuverlässig zu funktionieren. Versuche mal retries=5. |
||
|
||
|
Blockiert was anderes den modbus? Der arbeitet sequenziell, wenn vorher was abschmiert und fehler wirft, geht der Rest eventuell auch nicht mehr. War bei meiner Victron Integration der Fall |
||
|
||
|
worüber ich oft gestolpert bin: Register-Adressen sind mal 0-basiert, mal 1-basiert. Probier mal in python 32063 statt 32064 ansonsten mal beide Varianten mit tcpdump vergleichen |
||
|
||
|
Chatgpt meint dazu: "Huawei Smart Dongle ist leider bekannt für: - gelegentliche Timeout-Frames - inkonsistente Antworten bei schneller Pollrate - Probleme mit 1s Default-Timeout" ... und schlägt deshalb vor den Timeout (timeout=5 ) zu erhöhen. Aber das modbus-Skript funktioniert leider noch immer nicht. Ich wüsste nicht was blockieren sollte. Die Verbindung ist so: Dongle hängt am Wechselrichter ==>Netzwerkkabel ==> direkt in Router Thinclient hängt auch per Netzwerkkabel am Router Beim Router sollte je im internen Netz nichts blockiert sein, hoffe ich. Beim Fernzugriff hat er zuerst Mätzchen gemacht , weil bei den Huawei-LTE-Routern scheinbar Port Forwarding unterbunden wird. Aber via Tailscale komme ich rein. Ich hoffe nicht, dass das damit zu tun hat. Ich freu mich schon so wenn endlich das Glasfasernetz bei mir ins Haus eingezogen wird. Leider ist die Ortschaft gross und es wird schon seit 2 Jahren gebuddelt, aber meine Hood war noch nicht an der Reihe. Der LTE-Router geht mir echt schon auf die Nerven. Benji schrieb: worüber ich oft gestolpert bin: Register-Adressen sind mal 0-basiert, mal 1-basiert. Probier mal in python 32063 statt 32064 ansonsten mal beide Varianten mit tcpdump vergleichen" Das werde ich wenn ich zuhause bin probieren. Ich habe gestern übrigens noch gelesen, dass pymodbus 3 scheinbar mit Probleme haben kann in Verbindung mit Huawei-WR und man stattdessen auf "pymodbus==2.5.3" downgraden soll. Allerdings hab ich das gestern abend nicht mehr zusammengebracht. Übrigens: vielen Dank für eure Unterstützung @ALL 😀👍 |
||
|
||
|
Erhöh mal bei ModbusTcpClient timeout (10 oder 20) und setze retries (5 oder mehr) und schau, ob es dann auch immer fehlschlägt, oder auch hier ab und zu funktioniert. Wegen Version, frag ChatGPT wie du ein virtuelles Environment verwendest und dort die Dependencies (requirements) verwaltest, da kannst du dann die Versionen pinnen. Das solltest sowieso machen: jedes Python Script/Projekt = eigenes virtual Environment. Und Versionen pinnen macht auch Sinn, weil sonst hast du immer "latest" was bei größeren Updates mit breaking changes schnell zu Problemen führt. |
||
|
||
|
Lokale Firewall am Client könnte noch reinspucken. Ist auch immer wieder ein Stolperstein. Aber dann würde konsistent nichts am Client ankommen. Und zudem gehst Du ja vom Client raus und fetched die Daten. Daher sollte das eigentlich kein Thema sein. |
||
|
||
|
das ist auch meine Erfahrung (mpboll 1-basierend, rest der Welt 0-basierend?! 😅) Nachdem es ja mit mbpoll geht würde ich ein Netzwerkproblem eher mal ausschliessen. Ausserdem würde ich mal Wireshark anwerfen und vergleichen was mbpoll vs. der python code schickt. Ich kann mich leider nicht mehr genau erinnern, aber ich hatte auch vor ein paar Monaten mit dieser Python Library ein Problem als ich auf master geupdated habe, es war was rund um Endianess. Testweise kannst du mal Addresse 16509 probieren (32064 -> 0x7d40 was dann geswapped 0x407d -> 16509 ergibt. Oder für 32063 -> 0x7d3f geswapped 0x3f7d -> 16253 könntest du auch probieren). |
||
|
||
Ich hab gerade Sonne auf der PV und habe ausprobiert mit 32064... mbpoll -m tcp -p 502 -a 1 -t 4:int -r 32064 -c 2 192.168.8.101 ...und hier mit 32063... mbpoll -m tcp -p 502 -a 1 -t 4:int -r 32063 -c 2 192.168.8.101 Beim einen kommt etwas mit 260mio, beim anderen 34mio. Ist das ok, dass das ganz unterschiedliche Werte sind? Jetzt mach ich mich ans Werk und probier das Python mit alter Version in den Griff zu bekommen. |
||
|
||
|
Naja, du fragst auch zwei unterschiedliche Register ab. Welchen WR WR [Wechselrichter] genau hast du eigentlich? Und vergiss nicht die Retries... ;) |
Beitrag schreiben / Werbung ausblenden?
Einloggen
Kostenlos registrieren [Mehr Infos]

