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

    #16
    Mal wieder ein neues Beispiel für HTTP-Request und XML-Parser. Diesmal kommt noch die Formelberechnung dazu.

    Mein Denon AVR-X2500H hat leider deutlich weniger http-Funktionalität als frühere Modelle. Von den im Netz kursierenden URLs funktionieren die folgenden aber immer noch:
    • Statusabfrage Main Zone (leider nur noch Lite, aber besser als nix):
      http://denon-avr-x2500h.fritz.box:8080/goform/formMainZone_MainZoneXmlStatusLite.xml
    • Statusabfrage Zone 2 (ebenfalls nur Lite):
      http://denon-avr-x2500h.fritz.box:8080/goform/formZone2_Zone2XmlStatusLite.xml
    • Beliebige telnet-Befehle (aber keine Abfragen):
    • http://denon-avr-x2500h.fritz.box:8080/goform/formiPhoneAppDirect.xml?...
    Andere die man im Web findet produzieren Fehler, so dass ich eine Weile gebraucht habe um zu kapieren, dass überhaupt noch was geht.

    Lautstärke relativ einstellen (Telnet-Befehle MVUP und MVDOWN bzw. Z2UP und Z2DOWN) geht mir zu langsam (da ich auch nicht so viele Requests abschicken will). Daher habe ich mir folgendes gebastelt (leider ziemlich kompliziert), um die Lautstärke und die 4 Quick Selects für die Küche über einen 6fach-Tastsensor bedienen zu können:

    DenonZone2.PNG
    Die Quickselect-Tasten müssen beim Drücken immer eine 1 senden (beim Loslassen eine 0 oder nichts). Der Web-Request sendet dann den Telnet-Befehl Z2QUICK{Wert}, wobei {Wert} zwischen 1 und 4 liegt.

    Für die relative Lautstärkeeinstellung der Zone 2 nehme ich die aktuelle Einstellung aus dem Zone2XmlStatusLite als Basis. Bei mir kommt die in dB, also rechnet die Formelberechnung die erst mal in Stufen um (+80) und daraus dann die nächst leisere (-2) und nächst lautere (+2) -- mit Begrenzung des Wertebereichs. Die jeweils benötigte davon geht über die Sperre in den Web Request (Telnet-Befehl Z2{Wert}, wobei {Wert} zweistellig sein muss; da kümmert sich die Formelberechnung drum und spuckt direkt einen passenden String aus). Die Tasten für leiser/lauter müssen beim Drücken eine 1, beim Loslassen eine 0 senden. Drückt man sie nur kurz, wird die Lautstärke um 2dB geändert, drückt man sie länger, alle 2s um 2dB.

    Wenn jemand weiß, wie man bei den neueren Denon-Receivern mehr Statusinfos (z. B. gewählte Quelle und Sendernamen) bekommt, dann bin ich sehr interessiert ... gehen muss das irgendwie, die App macht's ja auch ... das nötigste hab ich aber erst mal.

    Grüße von Horst
    Zuletzt geändert von hyman; 02.11.2019, 19:44. Grund: Korrektur bzgl. relativer Lautstärkeeinstellung

    Kommentar


      #17
      Kann der Avr-x2400h noch mehr?.

      Kommentar


        #18
        Möglich -- man kann es einfach im Webbrowser ausprobieren: https://blue-pc.net/2013/12/28/denon...-http-steuern/

        Kommentar


          #19
          Moin,
          hier mal geschaut? https://www.denon.de/uk/downloads/pr...AVR-X4200W.pdf
          Ansonsten könntest du mal bei den Plugins von Openhab (https://www.openhab.org/addons/bindings/denonmarantz/) und Home Assistant (https://www.home-assistant.io/integrations/denonavr/) gucken. Da finden sich die Befehle ja auch gleich im Quellcode.

          Ich bin privat zwar bei Pioneer, aber mich würde stark interessieren, wie man geschickt die Ausgabe des Displays relaisieren könnte. Alle 2-5 Sekunden das Display auslesen, produziert ja vor allem viele Requests. Und im Zweifel wird dann auch noch der Bus geflutet. Eventuell könnte man alle 10 Sekunden prüfen, ob das Gerät angeschaltet ist (Fernbedienung ginge ja auch) und dann sekündlich den Status auslesen. Fällt dir sonst noch was ein?

          Viele Grüße

          Kommentar


            #20
            Zitat von hyman Beitrag anzeigen
            Du musst den Ausgang auf Typ String umstellen
            Danke!
            Jetzt funktioniert es (in der Simulation).
            Problem lag mal wieder vor dem Rechner.

            Kommentar


              #21
              wenn ich meinen per Browser versuche auszulesen, kommt:

              Error 403: Forbidden Access Forbidden an was liegt es da?

              Kommentar


                #22
                http://denon-avr-x2500h.fritz.box:80...StatusLite.xml

                ok meine ip mit Port 8080 und das klappt beim 2400h

                Habt ihr schon rausgefunden welche Befehle funktionieren?

                Gehen die Telnet Befehle?

                Kommentar


                  #23
                  Die Antwort steht schon in Post #16:
                  Zitat von hyman Beitrag anzeigen
                  Beliebige telnet-Befehle (aber keine Abfragen):

                  Kommentar


                    #24
                    In diesem Thread gibt es weitere Beispiele zum JSON-Parser.

                    Kommentar


                      #25
                      Kommt irgendwann httpS damit man z.B. Telegram via Web Request ansprechen könnte?

                      Kommentar


                        #26
                        Telegramm geht mit http

                        Kommentar


                          #27
                          Mein neuestes Beispiel -- Müllerinnerung (Abfrage des Müllkalenders) z. B. von http://api.abfall.io -- habe ich in einem anderen Thread gepostet. Besonderheit: Da kein XML oder JSON, sondern ICS/ICal geliefert wird, musste ein Parser dafür her. Den habe ich -- zugegeben primitiv, aber ausreichend -- mit einigen Stringoperationen in der Formelberechnung realisiert.
                          Zuletzt geändert von hyman; 02.04.2020, 06:50.

                          Kommentar


                            #28
                            Hallo zusammen,

                            soweit ich das aus öffentlichen Quellen recherchieren konnte, ist es bisher noch nicht möglich mit einem der beiden von hyman erwähnten Web-Request-Bausteinen ( dalbuschat und fabianfischer) einen SSL-HTTP-Aufruf mit POST-Body zu machen. Ich baue derzeit eine Benachrichtigung für meine Waschmaschine und Trockner (Stromverbrauchsüberwachung) mittels Telegram in der X1-Logik. Leider kann ich die Telegram-API nur verschlüsselt ansprechen. Daher die Frage:

                            Gibt es da schon Fortschritte? Kann man euch irgendwo unter die Arme greifen? Gerne auch in einer Coding-Pairing-Session. Oder einfach nur als Alpha/Beta-Tester.

                            Beste Grüße
                            Johannes

                            Kommentar


                              #29
                              Hallo ihr,

                              ich möchte die Daten meiner PV-Anlage abrufen, habe dazu auch eine API-Manual, kapiere aber einfach nicht, wie ich das mit dem "Web-Rewust" Bausteim umsetzen kann.
                              Folgende Infos habe ich:

                              2.1 Authentication
                              Authenticates a user and returns a token by using the URL:
                              http://localIP/auth/. (user="hycube", password="hycube")
                              Format: "userassword"
                              Possible outputs:
                              - ok
                              - unauthorized

                              2.3 Values
                              2.3.1 realtime values
                              The URL: http://localIP/get values/ returns the realtime values from the
                              shared memory in json format.
                              The contained values are the basic needed values (power, voltage, cur-
                              rent) about the various devices like inverter, grid, battery and solar.
                              Header values:
                              Authorization: The token for the authentication should be entered
                              here.

                              Weiterhin vom Support des Herstellers diese Info:

                              Um die Werte abzurufen, müssen Sie sich als erster Schritt unter der URL "localIP/auth/" authentifizieren.
                              -> Die Basic Authentifizierung mit dem Benutzernamen und Passwort ("hycube:hycube") muss beim HTTP-request im Header eingegeben werden und zwar analog zu dem Beispiel in der API-Dokumentation, die Sie in MyHycube-Portal finden.
                              Dieser Url-Aufruf hat als Rückgabe einen Authentifzierungstoken, das Sie wieder im Header beim Aufrufen der URL: "localIP/get_values" eingeben müssen.



                              Kann mir das jemand kurz erklären? Es übersteigt meine Fähigkeiten.....


                              Vielen Dank schon mal vorab!
                              Tobias

                              Kommentar


                                #30
                                Hallo Tobias,

                                Wenn Du den Web-Request-Baustein von Daniel benutzt, dann findest Du in den Parametern die Optionen "Authorization" und "Eigene Header setzen".

                                Für die URL
                                localIP/auth/ stellst Du unter "Authorization" ein: "Basic Auth" und gibst in den Feldern "Benutzername" und "Passwort" die entsprechenden Daten ein. Unklar ist mir nun, wie Du das Authentifzierungstoken zurück bekommst. Einfach mal ausprobieren (sollte auch in der Simulation im GPA funktionieren). Interessant wäre auch noch, wie lange dieses Token gültig bleibt (nur für einen Anfrage ... bis in alle Ewigkeit?).

                                Wie Du das Token mit der URL
                                localIP/get_values verwendest, bin ich mir nicht sicher.

                                Variante 1:
                                "Authorization" "Bearer Token" → Token ins Eingabefeld eingeben
                                (oder über den freizuschaltenden Eingang aus dem vorigen Baustein geben lassen).

                                Variante 2:

                                "Authorization" "(keine)", dafür aber: "Eigene Header setzen" → "1" → "Authorization:<hier das Token einsetzen>"

                                Nur die Variante 1 lässt zu, dass das Token sich dynamisch ändern kann (weil die zweite keinen Eingang dafür anbietet).

                                Grüße von Horst
                                Zuletzt geändert von hyman; 09.04.2020, 06:21.

                                Kommentar

                                Lädt...
                                X