Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS Eingang auch als Ausgang verwenden?

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

    LBS Eingang auch als Ausgang verwenden?

    Ich stehe hier grade auf dem Schlauch.

    Aktuell baue ich einen LBS der Daten über eine Remote-API abholt.
    Die Authentifizierung findet per OAuth2 statt. Vom Endpoint bekommt man dann einen Satz Tokens zur zukünftigen Authentifizerung.

    Um die initiale Authentifzierung abzuwickeln habe ich ein "Installer-Script" geschrieben, welches einmal aufgerufen werden muss und dann per HTTP die nötigen Daten in ein remanentes iKO von Edomi schreibt.

    Meine Idee war jetzt, dem LBS über einen Eingang die Auth-Daten mitzugeben.
    Der LBS prüft, ob die Daten noch gültig sind und erneuert das Token falls nötig. Das neue Token muss dann wieder abgelegt werden.
    Klar, kann man jetzt für alle Daten gleichnamige Ein- und Ausgänge anlegen. Da es aber ggf. mehrere Instanzen des LBS geben soll wird das unübersichtlich.
    Gibt es eine Möglichkeit das am Eingang anliegende iKO auch zu schreiben?

    Man könnte natürlich einen LBS als eine Art Auth-Daemon immer laufen und zyklisch ggf. die Tokens erneuern lassen. Damit könnte man aber in eine Race-Condition laufen wo das Token um Zeitpunkt eines API-Requests erneuert und damit ungültig wird.

    Hat jemand einen Ansatz dafür?

    #2
    Nein, das geht nicht. Aber was ist das Problem mit Eingang und Ausgang, warum sollte das unübersichtlich werden? Mache ich teilweise auch so. Den Ausgang mit einem remanenten KO mit einem Eingang verbinden. Man muss nur aufpassen, dass man keine Schleife baut.

    Kommentar


      #3
      Ich weise die Wert and die Ausgänge und schreibe diese dann in ein iKO:

      Bildschirmfoto 2017-01-16 um 13.30.48.png
      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        #4
        coliflower Dariusz, ich weiss ja nicht wie oft Du das triggerst, aber ohne SBC gibt es eine Schleife. Deshalb würde ich vor die Ausgangsbox je einen SBC machen.
        >>Smelly One<<
        >> BURLI <<
        Grüße Armin

        Kommentar


          #5
          WagoKlemme danke Armin, Der Trigger ist nur bei Bedarf, deshalb ohne, aber ein SBC schadet sicher nicht ;-) Welche Nummer hat dieser ?
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            #6
            LBS13000030 unter Grundfunktionen.
            >>Smelly One<<
            >> BURLI <<
            Grüße Armin

            Kommentar


              #7
              Zitat von DerSeppel Beitrag anzeigen
              ... Da es aber ggf. mehrere Instanzen des LBS geben soll wird das unübersichtlich.
              ...
              Du hast mich neugierig gemacht, was für ein LBS wird das :-) ?
              Danke und LG, Dariusz
              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

              Kommentar


                #8
                Es wird ein LBS zum Abfragen der Betriebsdaten von Nibe Wärmepumpen.
                Der bisherige LBS parst dazu die Internetseite.
                Das ist aber wenig robust. Außerdem macht der LBS bei mir Probleme bezüglich RAM.

                Die Anzahl der Ausgänge ist halt so ein Thema. Je nach Konfiguration der Heizungsanlage (mit oder ohne Brauchwasser, Brauchwasser extern, Lüftung, etc.)
                liefert die API unterschiedlich viele Parameter. => unterschiedlich viele Ausgänge.

                Daher wollte ich einen großen LBS machen (quasi Vollausbau) und einen kompakten, der als Eingang das Token bekommt und eine Parameternummer. Ausgang ist dann eben nur dieser eine Anlagenparameter.
                Außerdem kann man mehr als nur eine Anlage in seinem Profil haben, damit bräuchte man dann zwei oder mehr LBS mit den gleichen Tokens.

                Werds wohl dann einfach über Ein- UND Ausgang machen.

                Kommentar


                  #9
                  Zitat von coliflower Beitrag anzeigen
                  Ich weise die Wert and die Ausgänge und schreibe diese dann in ein iKO:

                  Bildschirmfoto 2017-01-16 um 13.30.48.png
                  Wie hast du denn bei deinem LBS das Oauth2 gehandhabt? Hast du auch ein externes PHP oder hast du das ganz "in Edomi" hinbekommen?

                  Kommentar


                    #10
                    In Edomi, bis auf die Authentifizierung - bis jetzt (hoffe das auch noch einbauen zu können) …
                    Muss noch schauen wie ich das URL starten kann um den Code zu erhalten und wie ich den Code aus dem URL in Edomi übernehme (diesen Teile mache ich bis jetzt manuell - aber es muss grundsätzlich nur einmal gemacht werden, weil es danach mit dem Refresh-Token automatisch läuft).
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      #11
                      Okay, so habe ich das auch aktuell implementiert.

                      Mal ne andere Frage noch hinterher. Ich verwende eine PHP-Klasse (Diese hier) für Oauth2. Wie binde ich das denn am besten in meinen LBS ein?
                      Kann ich die zusätzlichen Files irgendwo ablegen oder muss ich den benötigten Teil freischneiden und direkt in meiner LBS19xxxxxx.php mit einfügen?
                      Zuletzt geändert von DerSeppel; 16.01.2017, 20:46.

                      Kommentar


                        #12
                        Beides ist möglich, entweder am Ende des EXEC-Teils die class nibe {…} einfügen oder mit Verweis auf den Ort der Klasse - zB:
                        PHP-Code:
                        require_once (dirname(__FILE__).'/../../../../main/include/php/HOME-CONNECT-API-PHP/scr/HomeConnect/autoload.php'); 
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          #13
                          (Diese hier)
                          ist kein Link ...
                          Danke und LG, Dariusz
                          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                          Kommentar


                            #14
                            Zitat von coliflower Beitrag anzeigen
                            Beides ist möglich, entweder am Ende des EXEC-Teils die class nibe {…} einfügen oder mit Verweis auf den Ort der Klasse - zB:
                            PHP-Code:
                            require_once (dirname(__FILE__).'/../../../../main/include/php/HOME-CONNECT-API-PHP/scr/HomeConnect/autoload.php'); 
                            Ah! Danke! Da werd ich sie hinlegen!

                            Zitat von coliflower Beitrag anzeigen
                            ist kein Link ...
                            Du hast recht! Hier ist er: https://github.com/adoy/PHP-OAuth2

                            Kommentar

                            Lädt...
                            X