Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX-Modbus RTU Gateway

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    himself den PV Zähler sieht man da schonmal also kommt da schon was an 10111001101110101 -> 95093.

    Kommentar


      Korrekt,das ist der andere Zähler...

      Kommentar


        Das bei CH2 kein Error kommt, das ist schon mal was. D.h. das Gateway hat was an den ABB gesendet und dieser hat darauf "richtig" geantwortet. Warum die Daten aber nicht passen, weiß ich auch nicht.
        Man müsste jetzt mal schauen, was genau das Gateway sendet, aber das geht nur mit messen, oder einer Spezial-Firmware
        www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

        Kommentar


          Hmm wie kann man sowas messen? So eine Art ModBus Monitor?
          Die spezielle Firmware würde ja vermutlich nichts anderes tun? Die gibt es vermutlich auch nicht?

          Kommentar


            Ich hab was gefunden: Viel kann ich damit nicht anfangen. Was man sieht ist dass bei einer Länge von 8 alles ok ist und bei 9 nicht. ggf ist das das thema?

            modbus3.jpg


            Aus irgendeinem Grund sind die FAILs verwschwunden. Werte geben immer noch keinen Sinn. Ich hab das auch als Dump Datei. Kann man mit wireshark analysieren, wenn ich sage man meine ich irgendjemand anderen als mich, ich verstehe da nichts :-)

            modbus4.jpg
            Zuletzt geändert von himself; 05.01.2024, 19:18.

            Kommentar


              Wie hast du diese Werte den aufgezeichnet, wer Sendet hier und wer Antwortet?

              Habe es mal schnell überflogen und hier sollte das Gateway die richtigen Werte zumindest mal geschickt haben, oder woher kommt diese Botschaft?

              image.png
              Slave = 0x07
              CMD = 0x03
              Adresse = 0x5000 (active import kWh)
              Anzahl Bytes = 0x0002
              CRC = 0xD56D

              Antwort:
              Slave = 0x07
              CMD = 0x03
              Anzahl Antwortbytes = 0x04
              Data = 4x 0x00
              CRC = 0x9C33

              Soweit ja mal alles richtig.
              Zuletzt geändert von Masifi; 06.01.2024, 09:17.
              www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

              Kommentar


                Modbus Sniffer. Senden tut das Gateway, antworten der Zähler. Was nicht passt ist der Wert der Antwort. Da sollte was anderes stehen als 0. Ich Versuche mal das gleiche zu loggen wenn iobroker abfrägt

                Kommentar


                  Ich habe jetzt mal bei IO Broker zugehört. Hier sieht das Paket folgendermassen aus:

                  modbus_io.jpg

                  Wenn ich deineer Erklärung folge bedeutet das gegenübergestellt:

                  Slave = 0x07 identisch bei Gateway und IObroker
                  CMD = 0x03 identisch bei Gateway und IObroker
                  Adresse = 0x5000 (active import kWh) identisch bei Gateway und IO
                  Anzahl Bytes = 0x0002 vs 0x0004 abweichend bei Gateway und IObroker. Anzahl Bytes soll 4 sein nicht 2 wie beim Gateway
                  CRC = 0xD56D

                  Habe ich das richtig verstanden? Und wenn ja wie kann ich das Gateway dazu bringen auch die 04 zu verlangen?​

                  Hier mal eine Kombi ohne Error, also wo der Wert von IOBroker übernommen wurde:

                  modbus_IO_okpackage.jpg

                  Nach der Erklärung von Masifi weiter oben:

                  request vom Master:

                  Slave = 0x07
                  CMD = 0x03
                  Adresse = 0x5000 (active import kWh)
                  Anzahl Bytes = 0x0004
                  CRC = 0x556F

                  Antwort vom Zähler:

                  ​Slave = 0x07
                  CMD = 0x03
                  Anzahl Antwortbytes = 0x08
                  Data = 0x0000000000001225
                  CRC = 0x4624​

                  Antwort entspricht in Dezimal 4645, was korrekt ist.
                  Zuletzt geändert von himself; 06.01.2024, 12:38.

                  Kommentar


                    Ich sehe jetzt das Problem und ich muss sagen, dass das meine Firmware im Moment nicht kann.

                    Der ABB gibt an, das seine Register 16Bit groß sind und die Werte eine Size von 4 haben. D.h. 4x 16Bit = 64Bit. Ein Double word ist aber nur 2x 16Bit = 32Bit.
                    Daher sendet mein Gateway auch nur einen Wert von 0x02 statt den 0x04 wie der IOBroker.

                    Wie gesagt, 64Bit Register sind in der Aktuellen Firmware nicht umgesetzt. Da ich gerade mit der Haussanierung und Umzug alle Hände voll zu tun habe, werde ich auch keine Zeit finden, das zu erweitern.
                    Da sich OpenKNX gerade sehr stark wandelt und es in Zukunft neue coole Features geben wird, wird auch diese Firmware daraufhin angepasst. Dann könnte es möglich sein, den Datentyp 64Bit mit aufzunehmen.

                    soweit mal sorry du bis nach über einen Jahr der Erste, der das benötigt.

                    image.png
                    www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

                    Kommentar


                      Hi Masifi,

                      kein Problem. Nachdem ich aktuell den IO Broker eh am laufen habe kann ich die Werte so auf den Bus bringen. Wenn das irgendwann funktioniert bin ich zufrieden. Soll ich da irgendwo einen request stellen oder hast du das eh auf dem Schirm.
                      Mit der Erklärung kann ich jetzt zumindestens die "2" Stelligen Werte auslesen wie Spannung oÄ.

                      So oder so vielen Dank für die Unterstützung!

                      Kommentar


                        Ja in der Theorie sollten die Werte mit Size 2 per Double Word gehen.

                        Ich habe mir den Punkt mit den 64bit mal notiert.
                        www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

                        Kommentar



                          Hi,

                          ich wollte anfragen ob jemand einen Deye Wechselrichter (SUN 15K-SG01 HP3-EU-AM2) schon bereits per Modbus angeschlossen hat?

                          Leider sind durch das Deye Handbuch nicht alle Parameter einzusehen um das OpenKNX-Modbus RTU Gateway
                          ​vollständig korrekt einzustellen.

                          Gewisse Einstellungen können vom "Waveshare RS485 to RJ45 Ethernet Converter Module", welche öfter in der Community eingesetzt wird entnommen werden, siehe Bild.
                          Jedoch sind folgende Einstellpunkte im OpenKNX Modbus Gateway für mich offen:

                          1.) Parity: denke das wird mit "None (1 stop bit)" eingestellt?

                          2.) Zeit zwischen zwei Modbus Register Abfrage: "Minimum" oder sollte hier lieber zu aller erst die maximal mögliche Zeit eingestellt werden und dann langsam runter?

                          3.) Zeit zwischen zwei Abfragezyklen: Gilt hier das selbe wie in Punkt 2.)?

                          4.) Was wird für Register Position eingestellt: "MSB first" oder "LSB first" ?

                          5.) Register Start: Wird "Erste Adresse '0' " oder "Erste Adresse '1' " angewählt?

                          Modbus Einstellungen.jpg

                          Leider leuchtet die "Err LED" am Gateway durchgehen rot, was wiederum laut Doku auf mindestens eine Modbus-Abfrage fehlgeschlagen hindeutet.

                          Ebenso kommt keine Antwort in der ETS6 wenn das KO7 (Diagnoseobjekt) oder KO20 (Fehler Modbus Kommunikation) ausgelesen wird.

                          Die Pin-Belegung findet man auf den letzten zwei Seiten im Benutzerhandbuch. Verwendet worden sind die Pins 1 (B), 2 (A) und 3 (GND).

                          Handbuch unter folgenden Link einzusehen:

                          https://www.fuchsberg-electric.de/fi...HP3-EU-AM2.pdf

                          Der Wechselrichter wurde als "Slave 01" eingestellt. Im Modbus Gateway wurde die ID 1 bei "Slave 1" eingetragen.

                          Ps.: Können auch irgendwelche Spanungen gemessen werde, da es beim Deye WR zwei Anschlüsse gibt an dem man AB und B (Modbus) abgreifen kann und eventuell der falsche Port verwendet wird. Da man im Internet auch liest das eventuell die RS485 Schnittstelle (derzeitig genutzt) nicht unbedingt funktioniert und man die BMS Schnittstelle verwenden müsste.

                          Angehängte Dateien
                          Zuletzt geändert von Lexxs; 10.01.2024, 17:45.

                          Kommentar


                            Hi Lexxs,

                            zunächst mal nein ich habe diesen Wechselrichter nicht. Was ich nicht verstehe ist warum du per RTU abfragen möchtest wenn du eine IP Gateway hast.

                            zu den Punkten meine Meinung (Bin aber kein Experte):

                            1.) Musst du sowohl am Master als auch am Slave setzen. Wie ist egal, muss aber gleich sein
                            2.) Minimum normalerweise unproblematisch, um sicher zu gehen kannst du das erstmal nach oben setzen. Bzw. fange mit einem einzelnen Register an, dann spielt es keine Rolle
                            3.) Hier ist der Abstand zwischen den Zyklen gemeint. Das Gateway kann innerhalb eines Zyklus mehrere Slaves Abfragen.
                            4.) Normalerweise MSB Sollte keine Antwort kommen Versuche LSB
                            5.) Beides ist bei Modbus gebräcuhlich. Wenn ich mir die Datei im Anhang anschaue vermute ich Start bei 1. Definitiv gelesen habe ich es aber nicht.

                            Die ERR leuchtet sobald du eine Abfrage programmiert hast die nicht funktioniert. Sei es falsche Registeradresse oder Slave Addresse

                            Kommentar


                              lexx du könntest auch mal im PV Forum https://www.photovoltaikforum.com suchen, die können normal bei Wechselrichter fragen sehr kompetent weiterhelfen.

                              Kommentar


                                Die Aussagen von himself würde ich so auch unterschreiben. Als Tipp, wenn so etwas startet, dann am Besten nur mit einer Registerabfrage, da man dann die ERR-LED gut nutzen kann, um zu sehen, was passiert. Die LED geht an, wenn bei einer Registerabfrage, der Slave nicht so antwortet wie erwartet und das kann viele Gründe haben.

                                Zitat von Lexxs Beitrag anzeigen
                                Ebenso kommt keine Antwort in der ETS6 wenn das KO7 (Diagnoseobjekt) oder KO20 (Fehler Modbus Kommunikation) ausgelesen wird.
                                Das ist bis jetzt nur sehr rudimentär implementiert und wird dir auch nur sagen, dass ein Fehler da ist, aber nicht wie du ihn beheben kannst. Dafür muss das System auch erst einmal richtig laufen, damit diese Diagnose Sinn macht.

                                Messen wird man hier nicht so einfach können. Meine Terminierung im Gateway spannt den Bus, also die Pfade A und B schon vor und die für den Slave ist es ein Eingang, daher wird man hier nicht viel sehen. Ich weiß nicht wie der WR es macht, aber muss seinen Busabschluss terminieren. Wenn er das selber nicht kann, dann muss du das an den Klemmen mit einen Widerstand übernehmen. Wenn der Abstand zwischen Gateway und WR kurz ist, geht es in der Regel auch mal ohne.

                                Aber das wird der erste wichtige Punkt sein, die HW-Schnittstelle zwischen WR und Gateway muss natürlich funktionieren. D.h. die Anschlüsse am WR müssen natürlich stimmen.
                                www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

                                Kommentar

                                Lädt...
                                X