Closed Maver2k closed 2 months ago
Hi, ich bin auch auf der Suche nach einer MOD Konfiguration... bzw. zumindest mal eine Basis. Das Beispiel aus dem Wiki funktioniert irgendwie nicht :(
Funktioniert denn einer der vordefinierten WR sodass irgendetwas auf der RawData Seite ausgegeben wird?
Hier steht’s aber…. Die Register starten ab 3000
Probier mal das…. Das ließt die live Register ab stelle 3000
"RequestLiveData": [ ["#ClientID", "0x04", "0x0B", "0xB8", "0x00", "0x77"] ]
Der Chef persönlich! Vielen Dank für diese tolle Arbeit! Muss ich dies dann erst in einer neuen Firmware kompilieren? Hatte die bin genommen aus dem Release.
Und unter raw habe ich ein paar Daten, aber nicht alle denke ich.
Ich baue mir morgen mal eine neue Firmware.bin zusammen.
Muss ich dann 3000x2+3 für das jeweilige Register machen?
Funktioniert denn einer der vordefinierten WR sodass irgendetwas auf der RawData Seite ausgegeben wird?
Hallo Tobias, es wird was auf der RawData Seite angezeigt, aber scheint so auszusehen wie bei wwwiesel. Kann aber im Moment auch nicht drauf schauen, da ich für die nächsten Tage unterwegs bin.
@wwwiesel: Wenn du mit deiner .bin fertig wärst, würdest du die dann zur Verfügung stellen? Das wäre echt super.
Wichtig ist erstmal, das auf der RAWData Seite unter LiveData jede Menge angezeigt wird. In meinem Beispiel oben von Position 3000 genau 119 Register, also 3000 - 3119 Bitte dazu in der register.h eine neue Sektion erstellen "Growatt 3000 TL3 XH" Die korrekten Registernummern für die Register.h bekommt ihr am besten wie im Wiki beschrieben ebenfalls über die RawData seite heraus, darüber könnt ihr dann auch gleich testen ob der Wert plausibel ist.
Dann die Register.h erweitern, kompilieren, flashen und prüfen ob jetzt alles passt. Ggf das Spiel wiederholen um die register.h definition zu verfeinern.
Eigentlich ist das selbstständige Herausfinden der korrekten Register ein Kinderspiel wenn man die korrekte Modbus-Doku des WR hat ;)
Natürlich werde ich, wenn ich es hinbekomme, alles zur Verfügung stellen.
@tobiasfaust Wie bist du auf
"RequestLiveData": [ ["#ClientID", "0x04", "0x0B", "0xB8", "0x00", "0x77"] ]
gekommen? ich will es ja verstehen, stehe aber etwas im Wald.
EDIT: Ah ich glaube ich bin eben selber drauf gekommen 0BB8 = 3000 einfach 0x Wegstrippen... wofür aber 00 77? = dezimal 119?
77 hex = 119 dez. Immer wenn ich mehr als 119 Register abfrage gab es einen Fehler. Kannst du aber ausprobieren ob du mehr abfragen kannst.
Ich bin nun ein wenig weiter... Baud Rate muss 9600 Sein sonst sieht man da nichts... "Growatt-MOD-Type": { "config": { "RequestLiveData": [ ["#ClientID", "0x03", "0x00", "0x00", "0x00", "0x77"], ["#ClientID", "0x04", "0x0B", "0xB8", "0x00", "0x77"] ], "RequestIdData": ["#ClientID", "0x03", "0x00", "0x00", "0x00", "0x14"], "ClientIdPos": 0, "LiveDataFunctionCodePos": 1, "LiveDataFunctionCode": "0x04", "IdDataFunctionCodePos": 1, "IdDataFunctionCode": "0x03", "LiveDataStartsAtPos": 3, "IdDataStartsAtPos": 3, "LiveDataErrorPos": 1, "LiveDataErrorCode": "0x84", "IdDataErrorPos": 1, "IdDataErrorCode": "0x83", "LiveDataSuccessPos": 1, "LiveDataSuccessCode": "0x04", "IdDataSuccessPos": 1, "IdDataSuccessCode": "0x03"
sind diese Daten von Relevanz?
Ja die sind wichtig. Die steuern wie die Daten interpretiert werden müssen. Der erst live Data Eintrag ist falsch, der passt nicht. Live Data sind alle mit Funktion Code 0x04
Ah ok, das würde auch erklöären warum ich das ganze teil abschieße sobald ich den neuen sketch update?
Edit: Ne liegt nicht da dran, sobald baud 9600 eingestellt ist und ich meinen fork compiliere, steigt der esp32 aus. Entferne ich den A Kanal ist dieser wieder erreichbar
Nabend, ich habe es nicht zum laufen bekommen, jedoch eine Alternative gefunden die für mich besser passt. Danke für die Mühe
Moin, Ich verstehe leider nicht, die 9600 baue stellst du doch in der weboberfläche ein, nicht im Sketch. Im Sketch wird nur die Register.h angepasst. Ich nehme aber auch mal an das du die zu deinem ESP passende kompilierte Firmware ausgewählt hast.
Etwas tricky ist auch die korrekte Verkabelung zum WR sodass sowohl die RX als auch die TX LED des Rs485 Moduls blinkt.
Aber schade, ich hätte gerne die Register.h für deinen WR in mein Repo aufgenommen.
Guten Morgen,
Okay. Dann helfe ich gerne, ich habe noch ein paar esp32 und rs452 Platinen rumliegen.
Die baudrate 9600 habe ich auf der Webseite eingestellt, korrekt, sobald ich aber eine von mit kompilierte Version mit den MOD settings verwendet habe konnte ich den modbus nicht mehr anschließen, da sonst der esp nur noch per ping erreichbar war.
Mal was anderes, kann man das ggf nicht anders lösen als immer neu kompilieren? Das würde es einfacher machen. Zudem ist es etwas unübersichtlich wenn alle Hersteller in einer Datei sind. Ich bin jetzt nicht der große Entwickler, ich kann Python 😂 dann hörts auf.
Um den Fehler auf den Grund zu gehen bitte beobachte die serielle Ausgabe welche Meldungen dort auftauchen, ggf das logLevel hochdrehen. Bitte vorher auch immer das gesamte json aus der Register.h incl der Änderungen einmal mit der Webseite jsonlint überprüfen. Kann ja sein das du da einen syntaxfehler mit reinbringst. Ist mir selbst auch schon sehr oft passiert.
Das aufteilen auf mehrer files steht auf meiner todo Liste ganz oben 🔝
Ich werde die woche mir einen raspberry zusammen bauen, dann kann ich den Fernbedienen mit der seriellen schnittstelle...
Die Arduino Test datei werde ich dann auch ausprobieren...
Ich habe alles auf Files umgestellt, dafür muss ab sofort bei der Installation immer auch das littlefs.bin geflashed werden. Aber Achtung, die eigene Konfiguration ist danach wieder auf Werrkseinstallung zurückgesetzt. WikiSeite ist angepasst. Eine eigene Seite auf der Weboberfläche des ESP zur Pflege des Inhaltes der Dateien kommt noch
in der aktuellen Dev gibt es jetzt eine "Files" sektion, hier kann man via Web an den jsons arbeiten, lokal herunterladen und auch auf dem ESP wieder abspeichern
Gibt es hier Fortschritte?
Hi. leider noch nicht, ich war die letzte Zeit etwas eingespannt, ich denke nächste Woche habe ich ein erstes Setup
Muss ich davon ausgehen, dass der Growatt 4600 TL-XH nicht ausgelesen werden kann oder hat meine Fehlermeldung beim Verbindungsaufbau im ioBroker
On error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"192.168.2.197","port":502}
eine andere Ursache?
Hardwaremäßig habe ich einen ESP32 mit dem Breakout Board wie im Projekt vorgestellt verwendet.
Muss ich davon ausgehen, dass der Growatt 4600 TL-XH nicht ausgelesen werden kann oder hat meine Fehlermeldung beim Verbindungsaufbau im ioBroker
On error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"192.168.2.197","port":502}
eine andere Ursache? Hardwaremäßig habe ich einen ESP32 mit dem Breakout Board wie im Projekt vorgestellt verwendet.
Du versucht per Modbus-TCP drauf zu gehen. Mit dem Projekt funktioniert der Connect aber per Modbus-RTU
die Fehlermeldung kommt nicht aus meinem Projekt heraus ;)
Hallo, Danke für deine Rückmeldung.
Ja, ich verstehe zu wenig davon, will aber unbedingt Zugriff auf die Holdingregister des WR haben um gewisse Parameter steuern zu können.
Deshalb suche ich Hilfe.
Nach deiner Antwort habe ich in der Konfiguration meines ioBrokers die im Screenshot eingestellten Werte verändert (von TCP auf RTU over TCP), im Ergebnis erhalte ich die gleiche Fehlermeldung.
Andererseits versuche ich den Zugang auf das WebUI zu bekommen, weiß aber nicht wie ich darauf zugreifen kann.
Kannst du mir da weiterhelfen?
Nochmals, das vorhin Screenshot vergessen:
Bitte nicht per Email antworten!
einfach die ipadresse des esp im Router suchen und im Web aufrufen
Die IP-Adresse habe ich ja, leider kann ich das WebUI nicht erreichen, ein Ping ist aber erfolgreich! ??? Ist evtl. ein Aderntausch hilfreich?
EDIT: jetzt kam der AP_ModbusGateway hoch...
So, der ESP ist über das UI erreichbar, Probleme hat offenbar die instabile WLAN-Verbindung produziert.
Leider kommen noch keine Daten rüber, am COM-Stecker des WR habe ich die PINs 3+4 gewählt (s. Anhang)
Die Configuration der Modbus-SS habe ich als Screenshot der Anlage beigefügt.
Ob mir wohl jemand auf die Sprünge helfen kann?
Eventuell die Modbus Adern tauschen, also nicht 3+4 sondern 4+3 Welchen Modbus Adapter hast du? Welche LEDs leuchten auf dem Adapter auf? Ist im growatt auch die Modbus-ID 01 eingestellt? Da hilft leider nur testen und probieren.
Bin wirklich fast am Ende mit meinen Nerven nach mehreren Stunden der Fehlersuche, da ich nun doch keine Verbindung mehr habe und einfach den Fehler nicht finde - ich befürchte, ich muss das Mosbus-Thema aufgeben. Ich habe alle Lötstellen und Jumperkabel überprüft, aber hardwaretechnisch keinen Fehler gefunden. Ich wollte nun nochmals den Adapter per ESP-Flashtool flashen, finde aber ums Verrecken nicht mehr die Dateien, die aufzuspielen sind (bootloader.bin, partitions.bin und firmware.bin). Im Moment geht gar nichts mehr :-( Ich habe einen ESP32 (32082A) mit dem Breakout Board HW-0519 wie im Projekt vorgestellt verwendet. LED: auf dem ESP-Board leuchtet nur die PWR-LED, am Breakout Board blinkt nach dem Anstecken der Spannungsversorgung anfangs TXD, dann aber nicht mehr. In den Settings des Inverters (MIN 4600 TL-XH) finde ich keine Einstellung zur Modbus-ID, wo finde ich diese Einstellung? Ist in der Configuration die Inverter SerialNumber relevant? Wenn JA, wo ist diese einzutragen bzw. zieht sich der Adapter diese selbst? Wer will mir helfen oder hat jemand einen alternativen Tipp, wo ich einen fertigen Adaper günstig erwerben kann.
Die Dateien bekommst du wenn du über gitpod kompilierst, siehe Wiki Schau auch mal in die FaQ‘s, da steht auch viel (hoffentlich) drin. Eine der LEDs muss alle 5sek aufleuchten wenn du ein Intervall von 5sek eingestellt hast. Wenn diese nun zyklisch leuchtet ist zumindest das Modbus Board korrekt am ESP angeschlossen.
Die Seriennummer zieht sich der esp selbst über Modbus. Da musst du nix machen. Nur die Einstellungen auf der Modbus Webseite sind wichtig bzw müssen passen zu den Modbus Einstellungen des WR
Nun bin ich doch noch einen Schritt weiter gekommen, habe aber nicht den Eindruck, als ob das Flashen klappt:
beiliegender Screenshot zeigt keinen Fortschrittsbalken nach dem Starten per "SYNC", am Breakout Board blinkt nun (ohne an der COM-SS angeschlossen) die TXD-LED. Schließe ich das Board an die COM-Schnittstelle an, hört es auf zu blinken.
COM3 ist der einzige Port (USB) der ausgewählt werden kann.
Stelle ich mich nur zu dumm an?
Geh mal bei dir in den Geräte Manager. Ich wette das bei dir der Treiber für das Board fehlt. Dazu gibt aber Tonnen von Erklärungen im Netz ;)
und bitte nur eine Stromquelle, am besten erstmal nur per USB an den Rechner anschließen.
Moin zusammen, ich bin neu hier und versuche mein nächstes Projekt in FHEM. Ich habe den ESP32 so vorbereitet, dass ich den an den WR anklemmen kann. Wurde vlt. schon ein register.h für den MOD tl3 XH angepasst und könnte die mit zur Verfügung stellen?