Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira X1 und Modbus TCP mit Logikbaustein

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

    Zitat von 1retro Beitrag anzeigen
    Kannst du dir bitte noch "Today PV Peak Power" ansehen. Da zeigt er mir 11000 an, in Wirklichkeit waren es 11727.
    Kann auf den ersten Blick keinen Fehler sehen: https://github.com/alramlechner/Comm...Reader.cs#L261
    sofern Regsiter 32078 korrekt ist: bei dem Register scheint kein Faktor hinterlegt zu sein (der Wert liegt ja um keine Zehnerpotenzen daneben).
    Kannst du bitte prüfen, ob mit einem anderen Modbus client genau der richtige Wert aus diesem Register ausgelesen wird? (bzw. wie kommst du auf den "richtigen" Wert 11727?)

    Zitat von 1retro Beitrag anzeigen
    Er schreibt 31,76kWh, laut App sollten es 36,44kWh.
    Hier kann ich nur mutmaßen: der Wechselrichter hat seine eigenen, gespeicherten Werte. Eine App verbinden sich höchstwahrscheinlich mit irgendeinem Cloudservice. Die Daten, welche der Hersteller in der Cloud speichert können sich durchaus mit denen des Wechselrichters unterscheiden. Kann viele Gründe haben ...

    Zitat von 1retro Beitrag anzeigen
    Danke dafür schon einmal Alram!
    Gerne.

    vG Alram
    Zuletzt geändert von alramlechner; 26.03.2023, 15:22.

    Kommentar


      Zitat von 1retro Beitrag anzeigen
      "Today PV Peak Power" ansehen. Da zeigt er mir 11000 an, in Wirklichkeit waren es 11727
      Hallo Peter, wo in der App steht dieser Wert - dann kann ich es vergleichen. Ich hatte gestern auch 11000 - aber ich denke das liegt daran das die Anlage bis ans eingestellte Limit von 11000 gegangen ist wegen der starken Sonne (jedenfalls in Nürnberg).


      Zitat von 1retro Beitrag anzeigen
      "Today PV Energy". Er schreibt 31,76kWh, laut App sollten es 36,44kWh
      Auch da die Frage wo du in der App schaust. Hier gibt es in der App eine leicht andere Aussage auf dem Startbildschirm vs der Komponentenansichten.

      Ich vergleiche gerne :-)

      PS: Alram - noch mal DANKE!

      Kommentar


        Hallo Alram,

        Kannst du bitte mal hier schauen:
        https://knx-user-forum.de/forum/%C3%...t-nicht-linear

        Ich habe einen einfachen Zähler der 100 Schritte im Sekundentakt runter zählen soll.
        Wenn die Huawei Modbus Abfrage startet bleibt der Zähler stehen obwohl dieser linear weiter laufen sollte.
        Das ist mir bis jetzt nicht aufgefallen - aber sobald deine super Abfrage los geht läuft das ganze X1 nicht mehr linear.
        Es stolpert sozusagen :-)

        Gibt es was in deinem Baustein das du ändern könntest?
        So das das X1 weiter stabile läuft?

        Viele Grüße, Alzi

        Kommentar


          Zitat von Alzi Beitrag anzeigen
          Gibt es was in deinem Baustein das du ändern könntest?
          Probier mal die angehängte Version ... aber versucht das zu umgehen.

          Scheinbar isoliert der SchedulerService die Bausteine nicht sauber von einander. So etwas sollte eigentlich der X1 bzw. das SDK schon gewährleisten. Sehr gutes finding

          Gib bescheid, ob es mit der Variante besser funktioniert.

          vG Alram
          Angehängte Dateien

          Kommentar


            Hallo Alram,

            Danke für die neue Version. Ich habe den Baustein mit der V5 aktualisiert. Die Huawei Werte scheinen alle ausgelesen zu werden. Das muss ich aber morgen richtig testen wenn Sonne ist. Das wichtigste: der Zähler läuft linear runter. Es läuft also gut :-) Danke!

            Viele Grüße,
            Alzi

            Kommentar


              Danke für die Rückmeldung @Alzi!

              Zitat von Alzi Beitrag anzeigen
              Das wichtigste: der Zähler läuft linear runter. Es läuft also gut :-) Danke!
              Hier wäre natürlich Verbesserungspotential im X1 / SDK vorhanden.
              dalbuschat : Vielleicht könnt ihr euch das einmal ansehen: es macht den Eindruck, dass der SchedulerService unterschiedliche Bausteine nicht optimal isoliert. In mein Huawei Baustein nutzt diesen und braucht für einzelne Abfragen durchaus mehrere Sekunden. Das hat negative Auswirkungen auf andere Bausteine - deren scheduling funktioniert dann nicht mehr einwandfrei.
              Dieser commit hat behoben - kein grosser change - aber ich glaube das könnte der X1 / SDK besser abstrahieren:
              https://github.com/alramlechner/Comm...8e70e69d879645
              Auswirkungen siehe: https://knx-user-forum.de/forum/%C3%...t-nicht-linear


              @Alzi: danke für die gute Analyse - damit war der Fehler schnell einzugrenzen und zu beheben.

              vG Alram

              Kommentar


                Danke alramlechner, ich gebe das weiter!

                Kommentar


                  Hallo Alram,

                  Dank deinem Baustein funktioniert das Auslesen des Huawei Wechselrichters quasi problemlos.
                  Frage: Siehst du eigentlich auch die Möglichkeit, Register zu beschreiben? Zb. möchte ich die Akku Entladeleistung auf 0W stellen, wenn das E-Auto geladen werden soll. Technisch geht es, da manche Leute mittels Node-red dies bereits so durchführen. Daher die Frage, ob du hier eine Möglichkeit siehst? Lg Peter

                  Kommentar


                    Hallo Peter,
                    sollte kein Problem sein. Such einfach das entsprechende Register heraus (wir üblich mit Datentyp, Länge) und ich kann es einbauen....du musst es halt testen
                    VG Alram

                    Kommentar


                      Hi Alram,
                      super, danke.
                      Ich würde es gerne zuerst mit diesen 4 Registern (gelb markiert) versuchen wollen:

                      image.png

                      Kommentar


                        probier mal aus ... anbei ein neuer baustein (bzw. neue Version). bitte mach vom Gira X1 Projekt jedenfalls vor dem Import eine Sicherungskopie!
                        gib bescheid, ob es funktioniert.
                        Angehängte Dateien

                        Kommentar


                          Hallo Alram,
                          habe soeben den neuen Baustein "getestet" (hatte gerade nicht recht viel Zeit...).
                          Ja! Er schreibt Werte in die entsprechenden Register. Das funktioniert soweit. Wenn da nicht das "Aber" wäre
                          Kannst du bitte was abklären: Der Baustein versucht nun öfters in das Register zu schreiben, als das Abfrageintervall es vorgibt. Zb. habe ich als Abfrageintervall 45 Sekunden eingetragen, wenn ich aber den Wert, welcher geschrieben werden soll hin-und her ändere, geht das sicher unter 10 Sekunden. Daher kommen die Werte, welche vom Wechselrichter gelesen werden sollen, nicht ordentlich rüber. Zum Teil dauert es dann mehrere Minuten, bis der richtige Wert da ist (und verschwindet auch wieder). Dazwischen kommen dann oft ganz unrealistische Werte. Ich hoffe du verstehst, was ich meine...Hast du eine Idee? SG Peter

                          Kommentar


                            Zitat von 1retro Beitrag anzeigen
                            Der Baustein versucht nun öfters in das Register zu schreiben, als das Abfrageintervall es vorgibt.
                            naja - ich würde mal sagen, das funktioniert wie designed: Der Wert jedes mal geschrieben, wenn er sich am Eingang des Bausteins ändert. Das hat nichts mit dem Abfrageinterval zu tun.
                            Wenn du alle 10 sekunden den Wert auf den Eingang schreibst, dann wird er alle 10 Sekunden via modbus geschrieben. Machst du das nur 1x in der Stunde, dann wird er auch nur 1x in der Stunde. Wenn du verhindern willst, dass ein Wert nur bei Änderung geschrieben wird, kannst du den "send on change" Baustein davor schalten.
                            Da der Huawei Wechselrichter aber scheinbar keine saubere Modbus Implementierung hat (bzw. keine sonderlich robuste), würde ich dafür sorgen, dass so wenig geschrieben wird, wie nur möglich. Auch der Abfrageintervall sollte so gross wie möglich sein.
                            Aus Sicht vom Wechselrichter sind Schreibeoperationen und die regelmässigen Leseoperationen zwei verschiedene Clients (getrennte TCP/IP Verbindungen).
                            Jetzt kann natürlich eine race-condition auftreten, in dem auch mal 2 gleichzeitig offen sind. Diese kannst du durch seltenes Schreiben der Eingänge und durch erhöhen des Intervalls vermeiden.
                            Letztlich könnte man durch einen Lock sicherstellen, dass nur eine Verbindung zu einer Zeit existiert. Aber da wird es dann deutlich komplizierter, wenn man nicht die X1 Logik zu viel aufhalten will.

                            Ohne genaue Debuginformationen wird es jetzt schwer, das im Detail nachvollziehen zu können. Ein Wireshark netzwerk dump könnten da schon helfen .. aber da wird es halt wirklich aufwändiger (für uns beide).

                            Also ich rate vorerst einmal zu
                            - "send on change" Baustein bzw. Werte nur schreiben wenn sie sich geändert haben
                            - den Abfrageintervall so hoch als möglich einstellen

                            vG Alram

                            Kommentar


                              Hallo Alram, danke für das schnelle Feedback. Sorry, wenn ich da immer mit gefährlichem Halbwissen hantiere, bin nicht vom Fach aber probiere viel Neues gerne aus.
                              Kann heute leider nicht mehr testen (Kids sind krank), aber eine Verständnis-Frage hätte ich noch kurz: Wenn ich also keine neuen Werte schreibe, müsste ja dein Baustein sich so verhalten, wie der vorhergehende, also jener ohne Schreibfunktion, oder? Sg

                              Kommentar


                                Zitat von 1retro Beitrag anzeigen
                                Wenn ich also keine neuen Werte schreibe, müsste ja dein Baustein sich so verhalten, wie der vorhergehende, also jener ohne Schreibfunktion, oder?
                                Ja genau. Außer ich hab nen Fehler eingebaut

                                Gute Besserung den Kids und eine angenehme Nacht!

                                VG Alram

                                Kommentar

                                Lädt...
                                X