Ankündigung

Einklappen
Keine Ankündigung bisher.

Webservices mit dem Gira X1 oder L1 abfragen

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

    Zitat von Parsley Beitrag anzeigen
    Geofency kann sehr viel:
    Hi! Interessante Idee.. muss halt leider immer eine App im Hintergrund laufen, bin neurotischer App schliesser ;-)
    Ich hatte noch keine Zeit (neuer Schuppen) und wollte mal sehen ob man nicht ein Makro (Kurzbefehle) dazu missbrauchen kann

    Kommentar


      dalbuschat


      Gibt es denn Neues zu TLS 1.2 etc.? Eigentlich kann man so bald keine Webabfragen mehr nutzen...

      ​​​​​​​Viele Grüße
      Alex

      Kommentar


        Sweeny Hm nein, leider nicht. Falls jemandem eine Third-Party-Library über den Weg läuft, mit der man unabhängig vom Basissystem (OS, .NET Framework) TLS 1.2/1.3-Webabfragen machen kann, dann würde ich diese liebend gerne integrieren. Aber bisher war ich da nicht fündig.

        Kommentar


          dalbuschat

          Ich habe leider selbst zu wenig Ahnung. Habe aber von einem Bekannten diese Antwort bekommen:
          Basierend auf einer ersten Recherche scheint es, als wäre das tatsächlich ein Thema von der jeweiligen .NET-Version. Offensichtlich solltest du wenigstens auf .NET Framework 4.6 (für TLS 1.2) oder besser noch .NET Framework 4.8 (für TLS 1.3) aktualisieren. Das bringt ja uns nicht viel.

          So wie ich es verstehe werden die Bibliotheken nicht viel bringen, weil die alle letztlich auf einer Schicht aus dem .NET Framework aufsetzen. Da TLS wohl ziemlich weit „nach unten“ geht, ist der Aufwand zu groß eine vom .NET Framework unabhängig Umsetzung zu machen. Das ist aber nur eine Vermutung!

          In diesem Artikel gibt es ein paar Hintergründe von Micorsoft. Hier ist ein „Hack“ wie angeblich auch mit .NET 4.0 das TLS 1.3 verwendet werden kann. Ob das funktioniert und wie sicher das ist, kann ich nicht beurteilen.

          Hilft das letzte vielleicht?

          Viele Grüße

          Kommentar


            Sweeny Vielleicht hilft das, schätze ich aber als eher unwahrscheinlich ein. Das Beispiel ist für Windows, auf dem Gira X1 läuft der .NET-Code aber unter Mono, was natürlich eine vollständig andere API ist. Falls dieser enum-Wert in irgend einer Weise direkt an das OS weitergegeben wird, könnte es funktionieren. Werde ich mal ausprobieren (Ergebnis frühestens in ein paar Wochen zu erwarten, bin gerade sehr voll).

            Danke dir!

            Kommentar


              Moin,

              Ich hatte das letztens recherchiert: Gibt wohl für den alten Mono keine Chance (auch nicht das von Sweeny).

              Solange also seitens Gira kein Update kommt bleibt nur der Weg über HTTP oder via einem Proxy welcher HTTPS auf HTTP übersetzt (z.b. Mit nginx möglich).

              Kommentar


                Und was spricht seitens Gira denn nun gegen ein Update? Bei der Gelegenheit könnte man doch auch gleich den Trend von 2010 mit integrieren und Push-Nachrichten direkt in der App mit anbieten

                Kommentar


                  Zitat von crewo Beitrag anzeigen
                  Und was spricht seitens Gira denn nun gegen ein Update? Bei der Gelegenheit könnte man doch auch gleich den Trend von 2010 mit integrieren und Push-Nachrichten direkt in der App mit anbieten
                  +1

                  Kommentar


                    SirUli ich stehe in Hannover vor dem gleichen Problem mit TLS 1.3. Gibt es eine einfach Möglichkeit einen Proxy welcher HTTPS auf HTTP übersetzt mit einer FritzBox oder eine Synology DiskStation einzurichten? Kenne mich da nicht so gut mit aus.

                    Über jegliche Tipps freue ich mich

                    Kommentar


                      Hallo, ich bin heute über eine interessante. dockerisierte REST API für Signal Messenger (mein präferierter Messenger) gestolpert.
                      Die API wird lokal (in meinem Fall dann auf dem Synology NAS) bereitgestellt und über http POST angesprochen (JSON Inhalt).

                      Offenbar basiert das Projekt stark auf einer Integration mit Home Assistant um Status-Nachrichten per Signal zu senden.
                      Daher - bevor ich da selbst anfange rumzuspielen - die Frage, ob jemand evtl. genau das schon realisiert hat?

                      Weitere Infos findet ihr hier.
                      Beste Grüße,

                      Uwe

                      Kommentar


                        Hallo zusammen,

                        ich versuche mich nun an dem XML/JSON Perser (bin kein Entwickler, aber lernfähig:-)
                        Das Beispiel mit openweathermap und XML funktioniert gut und ich habe dabei einiges über den Aufbau der Pfade verstanden.

                        Da ich nun für meine Markise gerne über die onecall API die Niederschlagsmenge in den nächsten 10 Minuten aufsummiert haben möchte (um damit den Regenalarm für die Markise zu triggern) habe ich nun die onecall API im Web Request abgefragt und diese liefert auch einen JSON String dann in den XML/JSON Parser.

                        Leider komme ich mit dem Pfadaufbau nicht zurecht. Wo liegt mein Fehler:

                        Hier die JSON Ausgabe und der Pfad wie ich ihn verwende mit dem Ziel die Niederschlagsmengen aufzuaddieren:


                        Pfad:
                        Code:
                        /root/current/minutely/item[position()<11]/precipitation

                        JSON Rückmeldung von der API:
                        Code:
                        {"lat":48.13,"lon":11.36,"timezone":"Europe/Berlin","timezone_offset":7200,"current":{"dt":1621852514,"sunrise":1621826718,"sunset":1621882666,"temp":288.68,"feels_like":287.8,"pressure":1020,"humidity":58,"dew_point":280.46,"uvi":4.83,"clouds":40,"visibility":10000,"wind_speed":4.02,"wind_deg":93,"wind_gust":6.71,"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03d"}]},"minutely":[{"dt":1621852560,"precipitation":0},{"dt":1621852620,"precipitation":0},{"dt":1621852680,"precipitation":0},{"dt":1621852740,"precipitation":0},{"dt":1621852800,"precipitation":0},{"dt":1621852860,"precipitation":0},{"dt":1621852920,"precipitation":0},{"dt":1621852980,"precipitation":0},{"dt":1621853040,"precipitation":0},{"dt":1621853100,"precipitation":0},{"dt":1621853160,"precipitation":0},{"dt":1621853220,"precipitation":0},{"dt":1621853280,"precipitation":0},{"dt":1621853340,"precipitation":0},{"dt":1621853400,"precipitation":0},{"dt":1621853460,"precipitation":0},{"dt":1621853520,"precipitation":0},{"dt":1621853580,"precipitation":0},{"dt":1621853640,"precipitation":0},{"dt":1621853700,"precipitation":0},{"dt":1621853760,"precipitation":0},{"dt":1621853820,"precipitation":0},{"dt":1621853880,"precipitation":0.1022},{"dt":1621853940,"precipitation":0.1176},{"dt":1621854000,"precipitation":0.133},{"dt":1621854060,"precipitation":0.1372},{"dt":1621854120,"precipitation":0.1414},{"dt":1621854180,"precipitation":0.1456},{"dt":1621854240,"precipitation":0.1498},{"dt":1621854300,"precipitation":0.154},{"dt":1621854360,"precipitation":0.154},{"dt":1621854420,"precipitation":0.154},{"dt":1621854480,"precipitation":0.154},{"dt":1621854540,"precipitation":0.154},{"dt":1621854600,"precipitation":0.154},{"dt":1621854660,"precipitation":0.1642},{"dt":1621854720,"precipitation":0.1744},{"dt":1621854780,"precipitation":0.1846},{"dt":1621854840,"precipitation":0.1948},{"dt":1621854900,"precipitation":0.205},{"dt":1621854960,"precipitation":0.2186},{"dt":1621855020,"precipitation":0.2322},{"dt":1621855080,"precipitation":0.2458},{"dt":1621855140,"precipitation":0.2594},{"dt":1621855200,"precipitation":0.273},{"dt":1621855260,"precipitation":0.2816},{"dt":1621855320,"precipitation":0.2902},{"dt":1621855380,"precipitation":0.2988},{"dt":1621855440,"precipitation":0.3074},{"dt":1621855500,"precipitation":0.316},{"dt":1621855560,"precipitation":0.3652},{"dt":1621855620,"precipitation":0.4144},{"dt":1621855680,"precipitation":0.4636},{"dt":1621855740,"precipitation":0.5128},{"dt":1621855800,"precipitation":0.562},{"dt":1621855860,"precipitation":0.5128},{"dt":1621855920,"precipitation":0.4636},{"dt":1621855980,"precipitation":0.4144},{"dt":1621856040,"precipitation":0.3652},{"dt":1621856100,"precipitation":0.316},{"dt":1621856160,"precipitation":0.2758}]}
                        Irgendwo passt da was noch nicht ganz.

                        EDIT - ich korrigiere mich gleich selbst:
                        Durch das Posten hier habe ich den code anders "gesehen" und erkannt, dass ich direkt auf "minutely" springen muss!
                        Korrekt also Pfad:
                        Code:
                        /root/minutely/item[position()<11]/precipitation
                        Manchmal hilft es aus Verzweiflung hier einen Post zu erstellen um die Lösung selbst zu erkennen :-)
                        Zuletzt geändert von cybersmart; 27.05.2021, 09:09.
                        Beste Grüße,

                        Uwe

                        Kommentar


                          Zitat von jaydee73 Beitrag anzeigen
                          Jawohl!

                          Das Problem hatte ich bei mir auch. Hat mir hyman dann auch gleich geholfen. Der Parser kommt mit den Ausdrücken "1" und "null" nicht klar (warum, habe ich auch nicht verstanden...). Deswegen muss man den JSON-Content erst durch einen Baustein schicken, der die doofen Ausdrücke gegen unproblematische Ausdrücke austauscht. Das geht über den Formelberechner (ebenfalls ein Baustein von hyman).

                          Sieht bei mir so aus:

                          Unbenannt.JPG

                          Die komplette Formel lautet:

                          Code:
                          {text:S}.Replace("\"1\"","\"one\"").Replace("null","0.0")
                          Dann solltest du auch keinen Laufzeitfehler mehr bekommen.

                          Hallo zusammen,

                          da ich gerade meinen kompletten Feierabend mit damit verplempert habe, meinen Fronius WR auf dem X1 zu Visualisieren, möchte ich hier eine Schritt-für-Schritt Anleitung zur verfügung stellen. Ohne die Posts von Markus85 und jaydee73 hätte ich mir sowieso die Zähne daran ausgebissen, da ich nicht wirklich ahnung von der Materie XML/JSON habe und auch nicht wirklich die Motivation verspüre mich näher damit zu beschäftigen. Da ich die Anzeige der Aktuellen PV Produktion aber durchaus für sinnvoll halte musste es halt doch sein.

                          Folgende Lösung hat bei mir dann zum Erfolg geführt:



                          Wichtig hierbei sind natürlch auch die richtigen Parameter. Diese habe ich auch durch ausgiebige Suchanfragen nicht gefunden, darum hier die Anleitung:

                          Web Request:

                          URL = "http://IP Adresse Fronius WR/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System" (Steht m.E sehr dürftig erklärt im Hanbuch vom Fronius Datalogger)
                          Metode = GET
                          Autorisation = keine
                          Eigene Header setzen = keine


                          Formelberechnung:

                          Typ des Ausgangs 1 = String
                          Formel 1 = {text:S}.Replace(""1"",""one"").Replace("null" ,"0.0") (siehe Zitat jaydee73)


                          XML/JSON-Parser:

                          Eingangskodierung = JSON
                          Pfad 1 = /root/Body/Data/PAC/Values/one
                          Pfad 2 = /root/Body/Data/DAY_ENERGY/Values/one (hier war dann mein Fehler begraben.

                          Art der Pfadauswahl = Erster Treffer als Zahl


                          Kleiner Hinweis noch: Die URL vom Web Request im Browser eingeben dann sieht man auch andere mögliche Abfragewerte.

                          Ich hoffe das hilft allen weiter die vor dem selben Problem stehen.

                          Wenn es hierzu schon einen Thread gibt, bitte verschieben. Hab aber nix gefunden.

                          VG Flo
                          Zuletzt geändert von FF66; 26.05.2021, 21:09.

                          Kommentar


                            wäre toll, wenn da einer einen fertigen Fronius Baustein aus allen bauen könnte

                            Kommentar


                              Zitat von FF66 Beitrag anzeigen
                              URL = "http://IP Adresse Fronius WR/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System" (Steht m.E sehr dürftig erklärt im Hanbuch vom Fronius Datalogger)
                              In Ergänzung dazu vielleicht noch: Es gibt mehrere mögliche Web-Requests, der oben genannte ist einer davon. Wenn man aber z. B. auch einen Smartmeter verwendet, dann eignen sich ggf. andere Requests besser, weil man mehr/andere Werte erhält. Oder man macht mehrere Requests und führt die Daten dann selbst zusammen.

                              Und die Pfade im JSON-Parser müssen natürlich zum Webrequest passen. Also bei einem anderen Request muss auch ein anderer Pfad verwendet werden. Da hilft dann, wie von FF66 vorgeschlagen, die URL einmal im Browser aufzurufen um zu schauen, was denn da zurückgeliefert wird.

                              Kommentar


                                Zitat von uzi10 Beitrag anzeigen
                                wäre toll, wenn da einer einen fertigen Fronius Baustein aus allen bauen könnte
                                ja, das wäre natürlich schön, aber wenn sich da jemand findet, würde ich empfehlen, damit aktuell nicht anzufangen. Warum? Fronius bastelt anscheinend derzeit kräftig an der API rum. Die neuen Gen24-Wechselrichter z. B. funktionieren mit der aktuell gültigen V1 der API nicht mehr richtig, die Web-Requests liefern da häufig keine Werte zurück. Ich vermute, es wird eine neue V2 der API geben, die dann hoffentlich für alle WR gültig ist. Der Baustein sollte dann eher auf dieser API aufsetzen.

                                Kommentar

                                Lädt...
                                X