Ankündigung

Einklappen
Keine Ankündigung bisher.

Senec und Gira X1

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

    X1 Senec und Gira X1

    Hallo Forum Mitglieder,

    ich hätte eine Frage und zwar ob schon jemand Erfahrung gemacht hat mit Auslesen der Daten eines Senec Stromspeichers. Und ob es möglich ist mit einem X1 die Daten zu empfangen.

    Senec bietet leider nur an sich von Jung einen neuen Server zu kaufen. Sehe ich aber nicht ein, mir nun noch einen Server zu kaufen.

    Über hilfe wäre ich Dankbar.

    #2
    Hi Lampo,

    ich bevorzuge die Daten vom Speicher im LAN zu ziehen und nicht von der Website übers Internet. Dies aus verschiedensten Gründen, aber primär wegen der Aktualität der Daten.

    Dazu nutze ich eine JSON Abfrage der Liveanzeige des Speichers:

    Code:
    curl [URL="http://senec-ip-adresse/lala.cgi"]http://speicherIP/lala.cgi[/URL] -H 'Content-Type: application/json' -d '{"PV1":{"POWER_RATIO":""},"ENERGY":{"GUI_HOUSE_PO W":"","GUI_GRID_POW":"","GUI_INVERTER_POWER":"","G UI_BAT_DATA_POWER":"","GUI_BAT_DATA_FUEL_CHARGE":" ","STAT_STATE":"","GUI_BAT_DATA_OA_CHARGING":""}," PM1OBJ1":{"P_TOTAL":""}}'
    Ich bekomme die Daten bereits in meinen Homeserver per Websitenabfrage, hänge aber noch beim konvertieren des IEEE7542hex.

    Wie weit bist Du?

    Viele Grüsse
    Stefan

    Kommentar


      #3
      Für den X1 gibt es einen Logikbaustein für Web-Abfragen.

      Kommentar


        #4
        Zitat von sti87 Beitrag anzeigen
        Ist gleich in zweierlei Hinsicht echt lächerlich

        Kommentar


          #5

          Kommentar


            #6
            Vielen Dank schon mal für die Antworten.

            Ich bekomm meinen Senec erst nächste Woche und muss den dann auch noch aufstellen.
            Wollte mich nur schon mal Schlau machen.

            Mfg Lampo

            Kommentar


              #7
              Hab noch den LBS für Edomi gefunden, darin ist im Modul bereits sehr viel ersichtlich. Stephan hat da tolle Arbeit geleistet was die einzelnen Parameter betrifft: https://service.knx-user-forum.de/?c...=19000082&dl=1

              Frage in die Runde, Edomi LBS lassen sich nicht „einfach“ für den HS verwenden / „konvertieren“?

              Danke - und bitte nicht auf mich einschlagen 🙈

              Kommentar


                #8
                Hey Leute. Ich habe seit 1 Woche auch einen SENEC V2.1 Speicher und würde diesen gerne mit meinen HomeServer4 auslesen. Ich habe jetzt schon einige Tage damit verbracht eine Web-IP Abfrage zu basteln die funktioniert.

                ich bekomme einfach keine Daten.

                Hat das schon jemand mit einem HomeServer gemacht?


                Kommentar


                  #9
                  Hi clipscouter,

                  ich hab die Daten im HS, hänge aber noch mit der Datenkonvertierung. Sende Dir die Screenshots wie ich die Abfrage durchführe morgen mal zu.

                  vG

                  Kommentar


                    #10
                    Hey das wäre ja cool. Danke.

                    Bei der Datenkonvertierung kann ich ja vielleicht noch etwas helfen.

                    Kommentar


                      #11
                      Hi Clipscouter, also hier mal meine Erfahrungen dazu.

                      Ich habe die Abfrage wie oben beschrieben über die lala.cgi "Schnittstelle" direkt vom Stromspeicher im Netzwerk durchgeführt.
                      Manuelle Tests habe ich mittels CURL durchgeführt:

                      Code:
                      curl [URL="http://senec-ip-adresse/lala.cgi"]http://speicherIP/lala.cgi[/URL] -H 'Content-Type: application/json' -d '{"PV1":{"POWER_RATIO":""},"ENERGY":{"GUI_HOUSE_PO W":"","GUI_GRID_POW":"","GUI_INVERTER_POWER":"","G UI_BAT_DATA_POWER":"","GUI_BAT_DATA_FUEL_CHARGE":" ","STAT_STATE":"","GUI_BAT_DATA_OA_CHARGING":""}," PM1OBJ1":{"P_TOTAL":""}}'
                      Bzgl. den einzelnen Values scheint Stephan Schuler in dem oben erwähnten LBS für Edomi bereits sehr viel Arbeit investiert haben. Die Änderungen habe ich noch nicht übernommen. Details im Modul selbst, aber hier ein Auszug:

                      Code:
                      $akkufuellstand = parseValue($data["ENERGY"]["GUI_BAT_DATA_FUEL_CHARGE"]); // Akkufüllstand
                      $hausverbrauchAktuell = parseValue($data["ENERGY"]["GUI_HOUSE_POW"]); // Hausverbrauch aktuell [W]
                      $pvErzeugungAktuell = number_format(parseValue($data["ENERGY"]["GUI_INVERTER_POWER"]), 2); // PV-Erzeugung aktuell [kW]
                      $akku = parseValue($data["ENERGY"]["GUI_BAT_DATA_POWER"]); // Akku. > 0 -> Beladung; < 0 -> Entnahme [W]
                      $netz = parseValue($data["ENERGY"]["GUI_GRID_POW"]); // Netz. > 0 -> Bezug; < 0 -> Einspeisung [W]
                      $filterWartung = intval(parseValue($data["ENERGY"]["MAINT_FILTER_REQUIRED"])); // == 1 -> Filter-Wartung erforderlich
                      $allgemeineWartung = intval(parseValue($data["ENERGY"]["STAT_MAINT_REQUIRED"])); // == 1 -> Wartung erforderlich
                      $statusId = intval(parseValue($data["ENERGY"]["STAT_STATE"])); // Statustext
                      $hausverbrauchHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_E_HOUSE"]), 2); // Hausverbrauch Tag [kWh]
                      $pvErzeugungHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_E_PV"]), 2); // PV-Erzeugung Tag [kWh]
                      $akkuBeladungHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_BAT_CHARGE"]), 2); // Akku Beladung Tag [kWh]
                      $akkuEntnahmeHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_BAT_DISCHARGE"]), 2); // Akku Entnahme Tag [kWh]
                      $netzbezugHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_E_GRID_IMPORT"]), 2); // Netzbezug Tag [kWh]
                      $netzeinspeisungHeute = number_format(parseValue($data["STATISTIC"]["STAT_DAY_E_GRID_EXPORT"]), 2); // Netzeinspeisung Tag [kWh]


                      Dann habe ich dies über eine Webseiten Abfrage im Homeserver abgebildet. Zuerst war ich ambitioniert und wollte sämtliche Werte in einer Abfrage beziehen und auswerten.

                      Erstmal die IP des Speichers angeben, Port 80 und Telegram-Typ TCP:
                      Dann die Abfrage selbst. Hier die JSON Abfrage sauber aufbauen:


                      hier noch den Text für Copy/Paste:
                      Code:
                      {"ENERGY":{"GUI_HOUSE_POW":"","GUI_GRID_POW":"","GUI_INVERTER_POWER":""},"PM1OBJ1":{"P_TOTAL":""}}


                      Dann kommen wir zum Auswerten der JSON-Response und befüllen der iKO's des HS mittels RegEx:
                      SENEC Gesamt Empfang.PNG

                      Hier der RegEx für Copy/Paste:
                      Code:
                      .*\:\{.*GUI_HOUSE_POW?\:?fl_([0-9A-F]{,}).*GUI_GRID_POW?\:?fl_([0-9A-F]{,}).*GUI_INVERTER_POWER?\:?fl_([0-9A-F]{,}).*P_TOTAL?\:?fl_([0-9A-F]{,})


                      Soweit so gut. Die Abfrage selbst habe ich dann per Logik gestartet (Web-Seite/IP-Gerät auswerten).
                      Dabei ist mir aufgefallen, dass sich nicht immer alle Werte aktualisiert haben. Den Fehler konnte ich aber nicht weiter eingrenzen und habe mich temporär entschieden die relevanten Werte einfach einzeln abzufragen. Hier ein Beispiel:
                      Damit ging es stabiler.


                      Nun ist jedoch das Problem, dass die Werte noch HEX sind und nach DEC konvertiert werden müssen. Dabei bin ich noch nicht weitergekommen.
                      Die Werte entsprechend offensichtlich IEEE754-Norm. Wenn ich den HEX Wert durch einen IEEE7542hex Konverter schicke, entsprechen sie denjenigen wo am SENEC selbst angezeigt werden.

                      Habe dazu einige Versuche (u.a. gemäss der Anleitung hier: https://knx-user-forum.de/forum/%C3%...54-float-point) gestartet, bin aber noch nicht weitergekommen.

                      Lass mich wissen ob Du noch weitere Details benötigst.

                      Viele Grüsse
                      Stefan

                      Angehängte Dateien

                      Kommentar


                        #12
                        Wow, danke für die ausführliche Beschreibung sti87.

                        Also ich hab das mal so versucht nach zu bauen. Die einfache Abfrage mit nur dem ersten Value. Bei mir kommt aber immer noch nichts an. Die debug Seite sagt mir auch immer wieder ein Bad Request.
                        Was hast du für einen Datentyp gewählt beim Ablegen in den HomeServer.
                        Was mir noch aufgefallen ist, bei deinem Regulären Ausdruck:


                        .*\:\{.*GUI_HOUSE_POW?\:?fl_([0-9A-F]{,})

                        wird vorne eine { klammer geöffnet aber nicht wieder veschlossen. Ist das so richtig?
                        Angehängte Dateien

                        Kommentar


                          #13
                          Guten Morgen - Klar gerne, hoffe wir schaffen es gemeinsam zum Ziel ;-)

                          Also bei Deinem Request ist mir folgendes aufgefallen, bei Deiner Abfrage fehlt ein Leerzeichen zwischen POST /lala.cgi und HTTP/1.1

                          Hier zum Vergleich meine Abfrage, da kommt auch ein Value (fl_44ADC4C8) zurück:


                          Nebenbei: 0x44ADC4C8 wären 1390W gemäss Konverter:



                          Das mit dem Leerzeichen habe ich wohl schon wieder vergessen.. 🙈 Das habe ich bei der Abfrage angehängt:

                          Beim weiteren Überlegen denke ich mir, dass wir einfach den CRLF anstelle des Leerzeichens anhängen müssten, oder?

                          Bgzl. Datentypen hatte ich zuerst alles auf 4-Byte Gleitkomma. Da ich nicht wusste wie der HS die Values ggf. konvertiert habe ich aber alles auf 14-Byte Text umgestellt um zu debuggen. Es muss so oder so zuerst noch der Text manipuliert werden um die postfixe (fl_, u1_, usw.) loszuwerden.

                          Macht das soweit Sinn? :-)

                          Das mit der RegEx kann gut sein, hab wohl die Grosse RegEx zu grosszügig gekürzt.
                          Zuletzt geändert von sti87; 14.07.2020, 06:49. Grund: Überlegungen zu "Leerzeichen-Gebastel", CRLF?

                          Kommentar


                            #14
                            OK super,

                            mit dem leehrzeichen klappt es. Nun kommen die Daten zumindest im debug an.

                            Aber auf dem QC habe ich sie nicht sichtbar bekommen. Mit Text und Binär Daten nicht.

                            Hast du die Sichtbar im QC?

                            Vielleicht werden die Daten ja nicht sauber im HS abgelegt.

                            Kommentar


                              #15
                              Komisch, bei mir geht das einwandfrei. Ja, scheint als ob die Werte zwar geparsed aber nicht gespeichert werden.

                              Ich habe bei den Einstellungen zum Datenblock eigentlich nichts "Spezielles" eingestellt:
                              Im QC wird der Wert (Text) schön angezeigt.

                              Hab mir extra noch eine Taste angelegt wo die Logik zum Abrufen der Werte triggert:

                              Was sind Deine Einstellungen?
                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X