Ankündigung

Einklappen
Keine Ankündigung bisher.

Home-Connect | 2nd

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

    #31
    Hallo,

    bei mir kommen auch die ersten Werte daher, hab einen kleinen Fehler entdeckt:

    if (isset($ha) && $ha[$i]['type'] == $type) // achtung wenn mehrere zB Dishwasher !!!
    {
    $appliance = $ha[$i];

    Du hast hier immer nur den Index 0 verglichen, dann steigt der LBS klarerweise aus wenn die gesuche applience nicht genau dort zu finden ist.....

    Was ich nicht ganz verstehe ist warum nur "remainig Time" und "progress" zurück geliefert und aktualisiert werden, alle anderen Ausgänge bleiben leer?
    Mit welchem intervall werden die Werte upgedatet, lässt sich das irgendwo einstellen?

    Danke für deine Arbeit

    Kommentar


      #32
      Zitat von Bernator Beitrag anzeigen
      Was ich nicht ganz verstehe ist warum nur "remainig Time" und "progress" zurück geliefert und aktualisiert werden, alle anderen Ausgänge bleiben leer?
      Die anderen Werte werden (bisher !?) nur nach der nächsten Änderung dieser Werte aktualisiert !

      Kommentar


        #33
        Das mit dem Array muss ich mir dann anschauen - oder hast du schon einen Vorschlag :-) ?

        Der SEE ist EVENT basierend ... Dh, wenn dieser keine Wertänderung sieht, dann schickt er keine neuen Werte (das passiert zB, wenn der GS läuft und Edomi neugestartet wird, usw. ... die einzigen Werte sind dann nur - bis der GS am Ende ist, die von dir zwei genannten Werte).
        Du kannst es testen, wenn der 70er LBS läuft und du danach - vorausgesetzt der GS steht - den Powerknopf drückst und die LIVE Werte im LBS aktualisierst ...

        Eine Routine, wenn Edomi gestartet wird und der GS bereits läuft, soll das erkennen und eine Statusabfrage via API-request starten und die Ausgänge des 71er aktualisieren, steht auf meiner Liste ziemlich oben - es nervt mich selbst ;-)
        Diese Situation entsteht leider dadurch, dass HC sehr restriktiv mit den Zugriffen umgeht und bei Überschreitung ein Delay einbaut bzw. den Account sperrt :-(
        Deshalb der SSE ...


        Danke und LG, Dariusz
        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

        Kommentar


          #34
          Erst einmal vielen Dank für die super LBS´en, die schon recht gut funktionieren.

          Folgende Probleme treten bei mir noch auf beim LBS x71:
          - kein Ausgangswert von A4 (A5 funktioniert korrekt !)
          - keine Ausgangswerte von A12 + A13 (Wasser/ Energievorhersagen)
          - keine Ausgangswerte von A15 - A20 (hier wäre z.B. "0" sinnvoll, wenn keine dieser Optionen aktiviert sind)

          Evtl. wäre bei allen Ausgängen die Ausgabe von z.B. N/A sinnvoll, wenn keine aktuellen Werte vorliegen, sprich "leer" sind (einfacher für die Visu).

          Wunsch (wie schon von Dir erwähnt), nach Neustart ALLE Werte abzufragen.

          Kommentar


            #35
            Zitat von coliflower Beitrag anzeigen
            as mit dem Array muss ich mir dann anschauen - oder hast du schon einen Vorschlag :-) ?
            ganz einfach wie von mir oben beschrieben das [$i] anstatt wie bisher [0] als array index angeben, schaus dir an das ises logisch was ich mein

            Zitat von coliflower Beitrag anzeigen
            Der SEE ist EVENT basierend
            OK dann ist das Verhalten plausibel und nicht nur bei mir so, alle Werte bei Start einmal abzufragen wäre natürlich spitze

            Aja das update intervall ist fix oder lässt sich das beeinflussen? Da es sich aber um events von HC handelt nehme ich an das dies nicht beeinflussbar ist?
            Zuletzt geändert von Bernator; 28.10.2018, 13:32.

            Kommentar


              #36
              Zitat von ak68 Beitrag anzeigen
              - kein Ausgangswert von A4 (A5 funktioniert korrekt !)
              Wenn der GS bereits läuft, dann gibt es keine Wertänderung am A4, wenn der GS in Power-ON ist, dann wird schon was angezeigt - bei mir funktioniert es.

              Zitat von ak68 Beitrag anzeigen
              - keine Ausgangswerte von A12 + A13 (Wasser/ Energievorhersagen)
              HC liefert diese Werte via API noch (wieder) nicht - warum auch immer ...

              Zitat von ak68 Beitrag anzeigen
              - keine Ausgangswerte von A15 - A20 (hier wäre z.B. "0" sinnvoll, wenn keine dieser Optionen aktiviert sind)
              A15 liefert bei mir ab ...
              A16 bis A20 könnten 0 liefern wenn es Sinn macht ... Was meinen die anderen ?

              Zitat von ak68 Beitrag anzeigen
              Evtl. wäre bei allen Ausgängen die Ausgabe von z.B. N/A sinnvoll, wenn keine aktuellen Werte vorliegen, sprich "leer" sind (einfacher für die Visu).

              Wunsch (wie schon von Dir erwähnt), nach Neustart ALLE Werte abzufragen.
              Wird kommen - ich muss mir noch die Funktion fertig bastel die Statusabfrage macht und die Wert auf die Ausgänge aufdröselt ;-)

              Danke und LG, Dariusz
              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

              Kommentar


                #37
                Zitat von Bernator Beitrag anzeigen
                ganz einfach wie von mir oben beschrieben das [$i] anstatt wie bisher [0] als array index angeben, schaus dir an das ises logisch was ich mein
                Oups, sorry, dachte ohne in den Code zu schauen, dass am $i etwas falsch ist (dachte eh dass da $i steht) - DANKE für den Hinweis.

                v0.2.01 released ... ungetestet

                Zitat von Bernator Beitrag anzeigen
                Aja das update intervall ist fix oder lässt sich das beeinflussen? Da es sich aber um events von HC handelt nehme ich an das dies nicht beeinflussbar ist?
                Wenn der GS nicht läuft, dann gibt es seitens SSE alle 1:50 Minuten ein Keep-Alive, ansonsten "sofort" wenn es eine Wertänderung gibt, zB Power ON, Start, Programmänderung am GS, etc.
                Somit nein, aus meiner Sicht nicht beeinflussbar (außer wie geplant und gewünscht eine Statusabfrage nach Edomi Start).
                Zuletzt geändert von coliflower; 28.10.2018, 19:10.
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #38
                  "sofort" wäre bei der Restlaufzeit ja jede Sekunde, was bei mir aber definitiv nicht jede Sekunde geupdated wird?

                  Kommentar


                    #39
                    Steht auch unter " " ...

                    Somit eher, sobald der neue Wert zwischen der Appliance bei dir zuhause und dem Endpoint (HC-Server) upgedated wird, wird der neue Wert an den SSE-Server (bei HC) übermittelt, danach wird dieser Wert über die API von EDOMI übernommen.

                    Verzögerungen durch das Internet, Bandbreite/-auslastung, HC "Eigenheiten"/Einstellungen und dem PHP Code im 70er LBS, muss man in Kauf nehmen - kann ich nicht ändern, außer jemand kann das WLAN sniffen, entschlüsseln und die Daten zur Verfügung stellen, dann ist die Limitation "nur" in eigenem LAN zu suchen :-)

                    Bin aber für jede Vorschläge dankbar !!

                    Zitat von Bernator Beitrag anzeigen
                    "sofort" wäre bei der Restlaufzeit ja jede Sekunde, was bei mir aber definitiv nicht jede Sekunde geupdated wird?
                    Ich habe das Update-Intervall mit alle 1% Progress beobachtet ...
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      #40
                      Zitat von coliflower Beitrag anzeigen
                      Wird kommen - ich muss mir noch die Funktion fertig basteln die die aktuelle Statusabfrage macht und die Werte auf die Ausgänge aufdröselt ;-)
                      Der erste Test zeigt, bei ausgeschaltetem GS werden nachfolgende Werte zurückgegeben (alle die die API hergibt) - diese Abfrage wird zukünftig / einmalig im 71er ausgeführt (nachdem der 70er LBS gestartet und abgearbeitet wurde ...)

                      $status ... a:1:{s:4:"data";a:1:{s:6:"status";a:4:{i:0;a:2:{s: 3:"key";s:27:"BSH.Common.Status.DoorState";s:5:"va lue";s:34:"BSH.Common.EnumType.DoorState.Open";}i:1;a:2:{s:3:"key";s:32:"BSH.Common.Status.Oper ationState";s:5:"value";s:43:"BSH.Common.EnumType.OperationState.Inactive";}i:2;a:2:{s:3:"key";s:37:"BSH.Common.Status.RemoteControlActive";s:5:"value";b:1;}i:3;a:2:{s:3:"key";s:43:"BSH.Common.Status.RemoteControlStartAllowed";s:5:"value";b:0;}}}}
                      Danke und LG, Dariusz
                      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                      Kommentar


                        #41
                        Zitat von coliflower Beitrag anzeigen
                        $status ... a:1:{s:4:"data";a:1:{s:6:"status";a:4:{i:0;a:2:{s: 3:"key";s:27:"BSH.Common.Status.DoorState";s:5:" va lue";s:34:"BSH.Common.EnumType.DoorState.Open";}i:1;a:2:{s:3:"key";s:32:"BSH.Common.Status. Oper ationState";s:5:"value";s:43:"BSH.Common.EnumType.OperationState.Inactive";}i:2;a:2:{s:3:"key";s:37:"BSH.Common.Status.RemoteControlActive";s:5:"value";b:1;}i:3;a:2:{s:3:"key";s:43:"BSH.Common.Status.RemoteControlStartAllowed";s:5:"value";b:0;}}}}
                        Nun hat sich auch die (extra) Abfrage BSH.Common.Setting.PowerState dazu gesellt, auch das EIN-/AUS-schalten ist nunmehr auch möglich ...
                        Wenn dann auch noch das Setzen (Lesen) der Programme/Optionen fertig umgesetzt wird, dann ist der 71er LBS grob fertig ...
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          #42
                          jonofe Hallo André,

                          bezugnehmend auf deine Antwort hier ...
                          https://knx-user-forum.de/forum/proj...38#post1282538

                          insbesondere dieser Punkt ...
                          Code:
                          file_put_contents('/usr/local/edomi/www/admin/include/php/alexa/eventGatewayConfig.php', '<?php $acceptGrantCode=' . var_export($acceptGrantCode, true) . ';');

                          ... zwei Fragen.

                          a) Speicherst Du die Tokens in einer PHP-Datei (Array) ? Dann sind diese Werte bei Edomi-Neustart nicht mehr verfügbar - oder übersehe ich hier etwas ?
                          Ich habe mir gedacht, diese Tokens in eine JSON zu speichern, damit diese den Neustart überlebt ...

                          b) Nach der Authentifizierung mit dem API_key und CLIENT_secret (Link), kommt als Rückgabewert grundsätzlich der CODE auf die vorher (statisch) definierte Redirect_URI (bei mir Edomi-WebServer ... /usr/local/edomi/www/visu/hc.php).

                          Um den User nicht unnötig mit weiteren Interaktionen zu "belästigen", wie den Code aus der URI heraus zu kopieren und im LBS einzufügen (Fehlerquelle / Supportaufwand), würde ich gerne - wenn das geht - in der hc.php ein paar Zeilen Code einfügen, die mir hier ...
                          Code:
                          require_once(dirname(__FILE__).'/../../../../main/include/php/HOME-CONNECT-API-PHP/scr/HomeConnect/[B]code.json[/B]
                          ... den CODE speichert.
                          Im LBS selbst (Daemon), wenn dieser getriggert wird (zB Neustart), den vorhandenen $code (in permanenter Variable gespeichert) mit dem "neuen" CODE in der JSON vergleichen und wenn dieser Wert ungleich ist, den "alten Wert" mit dem Wert der JSON überschreiben.

                          Die eigentliche Frage(n) ist, geht das, hast Du das irgendwie ähnlich umgesetzt, wie kann ich das in der hc.php umsetzen, kannst Du mir mit Codezeilen aushelfen, da ich hier (bewusst) noch nie etwas gemacht habe ?

                          Vielen DANKvorab !
                          Dariusz
                          Danke und LG, Dariusz
                          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                          Kommentar


                            #43
                            Das o.g. Statement generiert eine php-Datei, die du später in deinem LBS includen kannst. Damit kannst du die Token remanent ablegen und sie bleiben auch über einen Neustart hinaus erhalten. Eigentlich brauchst du aber nach der Autorisierung durch den Nutzer nur noch das Refresh-Token. Beim Neustart von EDOMI holst du damit einfach ein neues Access Token. Mehr brauch man eigentlich nicht. Client Key (API-Key) und Client Secret sind ja an den Eingängen vorhanden.

                            Kommentar


                              #44
                              Das o.g. Statement generiert eine php-Datei, die du später in deinem LBS includen kannst. Damit kannst du die Token remanent ablegen und sie bleiben auch über einen Neustart hinaus erhalten.
                              OK, das passiert bei mir eh in der KLASSE ...

                              Eigentlich brauchst du aber nach der Autorisierung durch den Nutzer nur noch das Refresh-Token.
                              Grundsätzlich ja aber ... nach der Autorisierung bekommt der HC Client (LBS) den Code auf das redirect_uri und erst mit diesem Code erhält der Client (User) den Access- und Refresh-Token.
                              Und genau diesen Code möchte ich automatisch in den LBS übernehmen ...
                              Danke und LG, Dariusz
                              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                              Kommentar


                                #45
                                Zitat von coliflower Beitrag anzeigen
                                Und genau diesen Code möchte ich automatisch in den LBS übernehmen ...
                                Und genau das brauchst du nicht. Denn du brauchst nur den Refresh_Token. Damit kannst du immer einen neuen Access_Token generieren, falls dieser abgelaufen ist. Du solltest beim ersten Aufruf der Callback URI durch HomeConnect, direkt das Access&Refresh Token mit dem empfangenen Code anfragen und das Refreshtoken dann in eine Datei speichern. Mehr brauchst du dann für den LBS nicht. Im LBS generierst du dann mit dem Refreshtoken ein AccessToken. Und wenn bei der Nutzung des AccessTokens ein 401 zurückkommt, dann musst du es refreshen und den Befehl wiederholen.

                                Zuletzt geändert von jonofe; 02.11.2018, 16:10.

                                Kommentar

                                Lädt...
                                X