Loxberry Plugin SureFlap

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • olicat
    MS Profi
    • 25.08.2015
    • 558

    #16
    Hi!

    Ich kann das "Curl Failed" bestaetigen - das kommt hier auch nur noch.
    LoxBerry V1.4.4 und SureFlap Connect Plugin V2021.03.11.

    Es geht wohl auch anderen so ...

    Das SureFlap-LB-Plugin-Log gibt aus:
    Code:
    <LOGSTART>10.06.2023 01:05:44 TASK STARTED
    <LOGSTART>SureFlap HTTP getData.php started
    <INFO> LoxBerry Version 1.4.4 ( is_raspberry.cfg )
    <INFO> SureFlap Connect Version 2021.03.11
    <INFO> Loglevel: 7
    Getting last token
    Starting request...
    Request received with code: 403
    <WARNING> Token needs to be renewed!
    Requesting new token​
    Vielleicht reicht auch schon die Aenderung des User-Agents?

    Oliver
    Zuletzt geändert von olicat; 10.06.2023, 00:21.

    Kommentar

    • dkieslinger
      Smart Home'r
      • 29.01.2021
      • 93

      #17
      Laut den openHAB scheint das zu klappen.
      Kann aber noch nichts testen, da Urlaub. Typischer weise tritt so etwas natürlich immer dann auf 😞

      Der Hersteller scheint jetzt auf den Agent zu schauen, um API Abrufe von bestimmten Geräten zu blockieren. Der openHAB Agent simuliert ein Samsung Handy.
      Ich denke ich werde versuchen einen Generator zu hinterlegen, damit der Agent wechselt und das Problem damit nicht bald erneut auftritt, weil auf einmal dieser auch gesperrt wird.

      Kommentar

      • olicat
        MS Profi
        • 25.08.2015
        • 558

        #18
        Moin,

        wenn ich die login.php um den User-Agent erweitere (zusaetzliche Zeile wie hier in der 2. Zeile), komme ich zumindest etwas weiter ...
        Code:
        $ch = curl_init($endpoint."/api/auth/login");
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0');
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        ​
        Als Ausgabe kommt dann nicht mehr "Curl Failed" sondern:

        System@DateTime@10.06.2023 09:35:50
        System@DateTimeLox@455621750

        No household!

        No devices!

        No pets!​
        Es findet offenbar keine Zuordnung von Login auf hinterlegte Daten statt.
        Das SF-Log sagt dazu:
        Code:
        ================================================== ==============================
        <LOGSTART>10.06.2023 09:35:48 TASK STARTED
        <LOGSTART>SureFlap HTTP getData.php started
        <INFO> LoxBerry Version 1.4.4 ( is_raspberry.cfg )
        <INFO> SureFlap Connect Version 2021.03.11
        <INFO> Loglevel: 7
        Getting last token
        Starting request...
        Request received with code: 403
        <WARNING> Token needs to be renewed!
        Requesting new token
        Request received with code: 200
        <INFO> Login successful!
        Setting up new token
        Restarting request...
        Re-Request received with code: c
        Getting households...
        <ERROR> No household!
        Getting devices...
        <ERROR> No devices!
        Getting pets...
        <ERROR> No pets!
        <LOGEND> SureFlap HTTP getData.php stopped
        <LOGEND> 10.06.2023 09:35:50 TASK FINISHED
        ​
        Ich kann durchaus auch bis nach Deinem Urlaub warten - keine Eile. Erhol Dich!

        Oliver

        Kommentar

        • olicat
          MS Profi
          • 25.08.2015
          • 558

          #19
          Moin!

          Ich habe das jetzt erstmal auf die Schnelle loesen koennen ...

          Dazu sind zwei Aenderungen in den PHP-Dateien noetig:

          1.
          in /opt/loxberry/webfrontend/html/plugins/sureflap/includes/config.php unter Zeile $endpoint = "https://app.api.surehub.io";
          Code:
          # Oliver, 11.06.23 - define user agent
          $ua = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36";

          2.
          in /opt/loxberry/webfrontend/html/plugins/sureflap/includes/curl.php in function init_curl (unter curl_setopt($ch, CURLOPT_TIMEOUT, 10); //timeout in seconds):
          Code:
          # Oliver, 11.06.23 - use defined user agent value from config.php
          global $ua;
          curl_setopt($ch, CURLOPT_USERAGENT, $ua);

          Auch wenn bei PHP nicht zwingend erforderlich wuerde ich trotzdem die Einrueckung den anderen Zeilen anpassen (etwa in der curl.php).

          Damit funktioniert das Plugin dann wieder wie zuvor.
          Ansonsten kann man natuerlich auch die paar Tage warten, bis Daniel aus dem Urlaub zurueck ist und eine etwas "more sophistic" Loesung - etwa mit dynamischen user-agents - gebastelt hat. Mein Antrieb war, dass ich mich ungern von ein paar Zeilen Code aergern lasse. Die Loesung lag ja auf der Hand.

          Oliver
          Zuletzt geändert von olicat; 11.06.2023, 10:30.

          Kommentar

          • dkieslinger
            Smart Home'r
            • 29.01.2021
            • 93

            #20
            Schön das es so leicht zu lösen ist. Da wird meine Anpassung nicht lang brauchen.

            In dem Zug werde ich auch die sich in der Pipeline befindliche MQTT Erweiterung mit bereitstellen.

            Kommentar

            • ladedruck
              Azubi
              • 26.11.2018
              • 6

              #21
              So läufts wieder, ich danke Euch!

              Kommentar

              • dkieslinger
                Smart Home'r
                • 29.01.2021
                • 93

                #22
                Ich habe eben ein Pre-Release erzeugt. Bitte testet das mal und gebt mir bescheid ob es so verwendet werden kann.


                Release Notes:
                Code:
                Versenden per MQTT wurde hinzugefügt.
                - Topic kann im Plugin selbst definiert werden
                - Broker des LoxBerry wird verwendet
                - Minimale Version wurde somit auf 2.0 gesetzt
                - Verwendung nur möglich wenn der Broker erreicht werden kann
                Sonderzeichen im Login werden nicht mehr konvertiert
                Login wird mittels UserAgent durchgeführt
                - pro Login wird ein neuer Agent generiert, um einen Bann bestimmter Agents zu vermeiden
                Unterbinden von zu vielen Anfragen in kurzer Zeit
                - jedes Script schreibt eine Update-Datei um eine zu häufige Aktualisierung zu vermeiden
                - Minimales Intervall beträgt pro Script 10 Sekunden
                Wiki-Links wurden auf neue Seite angepasst​

                Kommentar

                • olicat
                  MS Profi
                  • 25.08.2015
                  • 558

                  #23
                  Hi!

                  Ich habe die neue Version mal auf einem LB v2.2.2.2 installiert.
                  Im Log ist ein Schreibfehler: "Current tocken" - das "c" ist zu viel.
                  Ansonsten klappt getData.php irgendwie nicht - es dauert ewig und die letzte Zeile im Log lautet "Starting request...":
                  17.06.2023 12:03:40 TASK STARTED
                  SureFlap HTTP getData.php started
                  INFO: LoxBerry Version 2.2.2.2 ( is_raspberry.cfg )
                  INFO: SureFlap Connect Version 2023.06.17
                  INFO: Loglevel: 7
                  Getting last update for getData
                  Getting last token
                  Current tocken:

                  Starting request...​
                  Dabei gibt es keinen Unterschied, ob ich "Per HTML bereitstellen:" oder "Per MQTT bereitstellen:" aktiviere oder deaktiviere - es ist offenbar eine Endlosschleife ohne Rueckmeldung im PHP.
                  Was kann ich pruefen?

                  Die gepatchte "alte" Version auf einem anderen LB mit v1.4.4 funktioniert mit den gleichen credentials tadellos.

                  Oliver
                  Zuletzt geändert von olicat; 17.06.2023, 11:14.

                  Kommentar


                  • Jabote
                    Jabote kommentierte
                    Kommentar bearbeiten
                    Servus - und Danke für die rasche Lösung! Schon toll euer Support und die Community hier! Ich war letzte Woche außer Landes, gestern heim gekehrt, Pre-Plugin installiert - bei mir läuft es perfekt. Ein Sonderzeichen ist im Passwort, ein #

                    Danke euch, Christian
                • dkieslinger
                  Smart Home'r
                  • 29.01.2021
                  • 93

                  #24
                  Schau mal bitte im PHP-Log ob ein Fehler ausgegeben wird. Systemeinstellungen -> Log Manager -> PHP Log

                  Kommentar

                  • olicat
                    MS Profi
                    • 25.08.2015
                    • 558

                    #25
                    Hi!

                    Da ist nix drin?
                    Die Log-Datei existiert nicht. Es kann sein, dass das entsprechende Plugin noch nichts sendet oder fehlerhaft ist. Lade die Seite erneut und versuche es noch einmal.
                    Das Apache-Log meint dazu:
                    [Sat Jun 17 11:59:35 2023] index.cgi: log_db_query_id: No database entry found for given filename /opt/loxberry/log/plugins/sureflap/sureflap.log. File will be created.
                    [Sat Jun 17 11:59:35 2023] index.cgi: at /opt/loxberry/webfrontend/htmlauth/plugins/sureflap/index.cgi line 24.
                    Naechster Hinweis von Apache:
                    Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in /opt/loxberry/webfrontend/html/plugins/sureflap/includes/curl.php on line 17​
                    Die /opt/loxberry/log/system_tmpfs/apache2/php.log fehlt tatsaechlich. Aber auch wenn die manuell angelegt wird, aendert sich nichts - die Datei bleibt leer.


                    Oliver
                    Zuletzt geändert von olicat; 17.06.2023, 12:07.

                    Kommentar

                    • dkieslinger
                      Smart Home'r
                      • 29.01.2021
                      • 93

                      #26
                      Hast du in deinem Kennwort Sonderzeichen? Wenn ja, dann bitte versuch mal ob es klappt, wenn du Zeile 4 in der /opt/loxberry/webfrontend/html/plugins/sureflap/includes/login.php durch folgende ersetzt:
                      PHP-Code:
                      $json = json_encode(array("email_address" => $config_email_address, "password" => $config_password, "device_id" => $config_device_id)); 
                      

                      Alternativ kannst du auch mal in der /opt/loxberry/webfrontend/html/plugins/sureflap/includes/config.php​ die Zeile 63 durch folgende ersetzen:
                      PHP-Code:
                      $token = "";
                      Mehr Änderungen sollten eigentlich nicht für den Fehler relevant sein.
                      Zuletzt geändert von dkieslinger; 17.06.2023, 19:32.

                      Kommentar

                      • olicat
                        MS Profi
                        • 25.08.2015
                        • 558

                        #27
                        Hi!

                        Ich habe offenbar kein Problem mit dem Login sondern mit dem curl_exec in der Funktion start_curl. Da geht es jedenfalls nicht weiter.
                        Mit welcher PHP-Version hast Du das getestet? Hier laeuft PHP 7.3.19-1~deb10u1.

                        Nachtrag:
                        Auf einem 3. LoxBerry klappt die aktuelle Version des Plugins jedoch einwandfrei - die Unterschiede muss ich aber erst noch herausfinden.
                        Also grundsaetzlich erstmal Entwarnung - das Problem ist wohl eher "hausgemacht". Sorry!

                        Nachtrag zum Nachtrag:
                        Auf dem LoxBerry auf dem das Plugin funktioniert ist PHP 7.3.31-1~deb10u3 installiert.
                        Die Installation der Updates (aller Updates) via apt-get upgrade brachte dann den gewuenschten Erfolg. PHP und Curl allein reichte nicht.
                        Es sieht so aus, dass der Apache ursaechlich war - kann das aber nicht mit Sicherheit sagen.
                        Jedenfalls laeuft das Plugin jetzt auch auf dem vormals nicht funktionierenden LoxBerry.
                        Und das PHP.log wird jetzt auch geschrieben ...

                        Oliver
                        Zuletzt geändert von olicat; 18.06.2023, 00:50.

                        Kommentar

                        • dkieslinger
                          Smart Home'r
                          • 29.01.2021
                          • 93

                          #28
                          Interessant... Dann werde ich das nicht weiter betrachten.
                          Gib gerne bescheid ob die weiteren Anpassungen soweit passen. Besonders falls der MQTT Teil genutzt wird.
                          Ich selbst verwende die Anpassungen so schon fast ein halbes Jahr und bin ganz zufrieden.

                          Kommentar

                          • loadhelmchen
                            Smart Home'r
                            • 27.01.2017
                            • 55

                            #29
                            Hallo, ich habe vermutlich seit 6.6. ebenso das Problem das nix mehr aktualisiert wird. Hab mich seither nicht darum gekümmert. Da ich hier Euren Beitrag gefunden habe, hab ich versucht irgendwas zu installieren .

                            Bin nun soweit das ich das Datum über die Abfrage sehe, mehr leider nicht. Login dürfte passen (ansonst bekomme ich login failed, oder so).

                            Installiert : V2023.06.17 auf LoxBerry V2.2.2.2

                            Hat wer eine Idee, was mir fehlt

                            Danke

                            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 118
Größe: 22,5 KB
ID: 398063

                            Kommentar

                            • dkieslinger
                              Smart Home'r
                              • 29.01.2021
                              • 93

                              #30
                              Es würde helfen wenn du das plugin in den debug Modus stellst und dann das Log prüfst. Wenn du nicht weiter kommst kannst du dich ja mit konkreten Fragen melden.

                              Kommentar


                              • loadhelmchen
                                loadhelmchen kommentierte
                                Kommentar bearbeiten
                                Danke, das Log File hat nicht viel hergegeben. Habe jedoch nun nochmals das plugin deinstalliert und neu draufgspielt und siehe da, es läuft wieder und holt sich die Daten. Danke :-)
                            Lädt...