Ankündigung

Einklappen
Keine Ankündigung bisher.

Interesse an HomeConnect Plugin?

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

    #46
    henfri die credentials (das token etc) werden derzeit schon als json gespeichert und neu geladen beim restart. normal braucht man dann nur nochmal durch, wenn shng im renew-zeitraum länger aus ist...

    das durchklicken gibt einem wie gesagt ein initiales token. trotzdem muss dieses bei OAUTH aber auch erneuert werden, was nur durch aktive anfragen bei homeconnect geht.. ein token ist 24h valid. bei ablauf sollte es erneuert und dann wieder als json rausgedumped werden.

    da wie gesagt die neuste lib von homeconnect nicht mehr für unsere zwecke geeignet war (issue antwort vom entwickler), habe ich im plugin gerade einen wilden merge aus einer alten version und der neuen...
    das muss ich erstmal tiefer analysiert kriegen.

    Kommentar


      #47
      Verstehe.
      Zitat von psilo Beitrag anzeigen
      henfri
      da wie gesagt die neuste lib von homeconnect nicht mehr für unsere zwecke geeignet war (issue antwort vom entwickler), habe ich im plugin gerade einen wilden merge aus einer alten version und der neuen...
      Hast du mal den Link zu dem issue? Das hab ich verpasst.
      Wäre ja besser, wenn das auch upstream wieder funktioniert.

      Gruß,
      Hendrik


      Kommentar


        #48
        Psilo,

        habe heute noch einen Fehler im log gefunden:
        Code:
        2021-05-20  14:03:45 ERROR    plugins.homeconnect Token expired, refreshing!
        2021-05-20  14:04:09 ERROR    plugins.homeconnect Token expired, refreshing!
        2021-05-20  14:04:09 ERROR    cherrypy.error.2815299216 [20/May/2021:14:04:09] HTTP
        > Traceback (most recent call last):
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 638, in respond
        >     self._do_respond(path_info)
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
        >     response.body = self.handler()
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/lib/encoding.py", line 219, in __call__
        >     self.body = self.oldhandler(*args, **kwargs)
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
        >     return self.callable(*self.args, **self.kwargs)
        >   File "/usr/local/smarthome/plugins/homeconnect/webif/__init__.py", line 80, in index
        >     self.plugin.get_hc().get_token(cherrypy.url()+"?code="+code+"&state="+state+"&grant_type="+grant_type)
        >   File "/usr/local/smarthome/plugins/homeconnect/api.py", line 110, in get_token
        >     client_secret=self.client_secret,
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 240, in fetch_token
        >     authorization_response, state=self._state
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/oauthlib/oauth2/rfc6749/clients/web_application.py", line 203, in parse_request_uri_response
        >     response = parse_authorization_code_response(uri, state=state)
        >   File "/home/smarthome/.local/lib/python3.7/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 268, in parse_authorization_code_response
        >     raise MismatchingStateError()
        > oauthlib.oauth2.rfc6749.errors.MismatchingStateError: (mismatching_state) CSRF Warning! State not equal in request and response.

        Kommentar


          #49
          ich schrieb ja dass der refresh noch nicht geht ;-)

          Kommentar


            #50
            der Fehler

            > oauthlib.oauth2.rfc6749.errors.MismatchingStateErr or: (mismatching_state) CSRF Warning! State not equal in request and response.

            kommt m.E. daher, dass Du die Plugin-URL mit einem alten ?code Parameter aufgerufen hast. Der kann dann nicht mehr gematched werden. Ich hab jetzt mal ein try catch eingebaut und printe das etwas schöner ins log.

            Pushe später

            Kommentar


              #51
              so. ich hänge jetzt mal wieder an plugins.homeconnect.api.HomeConnectError: {'key': '401', 'description': 'Authentication is possible but has failed or not yet been provided.'} fest, daher kann ich erstmal nichts weiteres pushen. Nach einem langen Arbeitstag kann ich zu diesen Fehlern leider echt nicht mehr klar genug denken. Mal sehen ob es in den Pfingstferien nen Tag regnet.

              Das problem ist echt, dass die Homeconnect Lib noch alles andere als "reif" war und ich vieles wohl selber recherchieren / gescheit bauen muss.

              Kommentar


                #52
                Zitat von psilo Beitrag anzeigen
                Mal sehen ob es in den Pfingstferien nen Tag regnet.
                ich weiß nicht, wie die Aussichten für München sind. Bei uns im Westen soll es noch eine Woche regnen; Gute Aussichten für das Plugin.
                mach Dir keinen Stress.

                Vielleicht kann ich mit einer erfolgreichen Authentication mal ein paar HTTP requests für meinen Geschirrspüler testen.

                Übrigens Miele benutzt auch oAuth2, vielleicht gibt es da besseren code.

                schöne Feiertage.

                Kommentar


                  #53
                  whe Withings nutzt ja auch oauth2.. das ist trotzdem irgendwie immer endpunkt spezifisch. ich krieg das schon hin, aber es ist halt komplexer als die bisherigen sachen, wo man meist 1:1 die lib verwenden konnte. defakto muss ich gedanklich den ganzen prozess verstehen, bisher ging vieles out of the box. immerhin geht ja das initiale token retreival schon. das ist meist am ätzendsten, weil man das web interface ja dazu bauen muss..

                  Wetter sieht am Wochenende erst mal gut aus. Unter der Woche geht sicher was. Übernächste sind wir, sofern es der "Covid19-Gott" will, paar Tage im Allgäu. kann mal schauen, ob ich am Laptop eine Art minimal SHNG aufsetzen kann, dann kann ich da auch weitertesten. Wenn ich den Simulationsmodus noch aktiv kriege, kann ich zudem beliebige Devices testen, ohne sie zu besitzen.

                  Kommentar


                    #54
                    Zitat von psilo Beitrag anzeigen
                    Wetter sieht am Wochenende erst mal gut aus.
                    Gut zum Laufen oder gut zum Coden?
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      #55
                      Msinn Reifenwechseln, Radträger montieren, laufen, radfahren. Wandern geht auf Grund der Menschenmassen nicht :-)

                      Kommentar


                        #56
                        habe jetzt mal die homeconnect lib wieder zurückgebaut und einige debug outputs for den token refresh ergänzt
                        aktuell geht es nach restart wieder

                        den refresh werde ich jetzt monitoren, ob der über die alte implementierung der Lib geht.. In der neuen hatte der Autor das umgebaut.

                        Genutzt wird der empfohlene dritte Ansatz aus https://requests-oauthlib.readthedoc...reshing-tokens

                        Ich bin noch unsicher, ob das expires_in richtig gesetzt wird. Mehr sehe ich morgen.

                        Frage an die Runde: soll ich das Token wie gehabt in ein JSON legen, oder machen wir das über ein Item mit cache=true? Beim Withings Plugin mache ich letzteres.
                        Zuletzt geändert von psilo; 23.05.2021, 15:14.

                        Kommentar


                          #57
                          Hmm das macht die Entwicklung jetzt doch etwas nervig:
                          plugins.homeconnect.api.HomeConnectError: {'key': '429', 'description': 'The rate limit "50 calls in 1 minute" was reached. Requests are blocked during the remaining period of 19 seconds.'}

                          Die Programmoptionen für jedes Programm zu beziehen, macht so also wenig Sinn. Ich sollte auch schauen, ein Caching zu implementieren.

                          Rate Limiting

                          The Home Connect API uses the following rate limits. Please make sure not to reach the limits regularly, otherwise your client application may be blocked. At the moment two different rate limit types are supported. Amount-based Rate Limits Generally if too many requests are sent, further requests ...

                          Kommentar


                            #58

                            SmartHomeNG hat mir gerade den ersten Espresso gemacht. Die bisher verfügbare Plugin-API findet ihr im Web-Interface:

                            api.PNG

                            Kommentar


                              #59
                              habe gestern Abend die neuste Version installiert, hat auf Anhieb funktioniert und mir auch weiter Infos angezeigt.
                              leider habe ich heute aber folgendes Problem mit den Token:
                              Code:
                              2021-05-26 11:56:05 INFO logics.hello Hello World!
                              2021-05-26 11:56:15 DEBUG plugins.homeconnect Starting update loop
                              2021-05-26 11:56:15 DEBUG plugins.homeconnect Token in _update is {'access_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'expires_in': 14770.080399513245, 'id_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'refresh_token': 'eyJ4LXJlZyI6IkVVIiwieC1lbnYiOiJQUkQiLCJ0b2tlbiI6I mE3Mzc3NTRjLWUwMWEtNGNmNC1iMjhiLWEwNmE2NDE4YWMyMiI sImNsdHkiOiJwcml2YXRlIn0=', 'scope': ['CookProcessor-Monitor', 'Dryer-Settings', 'Hob', 'Washer-Control', 'Dryer-Monitor', 'Settings', 'IdentifyAppliance', 'Control', 'CleaningRobot', 'Washer-Settings', 'CoffeeMaker', 'Washer', 'CookProcessor-Settings', 'Hob-Settings', 'Oven-Monitor', 'Hood-Control', 'WasherDryer-Monitor', 'Oven-Settings', 'CoffeeMaker-Monitor', 'Monitor', 'Hob-Monitor', 'WasherDryer-Control', 'Dishwasher-Control', 'Refrigerator-Control', 'Dishwasher', 'Dryer-Control', 'CleaningRobot-Control', 'WineCooler', 'Freezer-Monitor', 'WasherDryer', 'Oven', 'Refrigerator-Monitor', 'Oven-Control', 'CookProcessor', 'Freezer', 'Freezer-Settings', 'WineCooler-Control', 'WineCooler-Settings', 'Dishwasher-Settings', 'Hood', 'Dryer', 'FridgeFreezer-Monitor', 'CleaningRobot-Settings', 'Refrigerator', 'Refrigerator-Settings', 'Hob-Control', 'Dishwasher-Monitor', 'CoffeeMaker-Settings', 'FridgeFreezer-Settings', 'CleaningRobot-Monitor', 'WineCooler-Monitor', 'Freezer-Control', 'CoffeeMaker-Control', 'Washer-Monitor', 'Hood-Monitor', 'Hood-Settings', 'FridgeFreezer-Control', 'CookProcessor-Control', 'WasherDryer-Settings'], 'token_type': 'Bearer', 'expires_at': 1622037725.0803995}
                              2021-05-26 11:56:15 ERROR plugins.homeconnect An exception occurred in _update {'key': 'invalid_token', 'description': 'The access token is revoked'}
                              2021-05-26 12:01:15 DEBUG plugins.homeconnect Starting update loop
                              2021-05-26 12:01:15 DEBUG plugins.homeconnect Token in _update is {'access_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'expires_in': 14770.080399513245, 'id_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'refresh_token': 'eyJ4LXJlZyI6IkVVIiwieC1lbnYiOiJQUkQiLCJ0b2tlbiI6I mE3Mzc3NTRjLWUwMWEtNGNmNC1iMjhiLWEwNmE2NDE4YWMyMiI sImNsdHkiOiJwcml2YXRlIn0=', 'scope': ['CookProcessor-Monitor', 'Dryer-Settings', 'Hob', 'Washer-Control', 'Dryer-Monitor', 'Settings', 'IdentifyAppliance', 'Control', 'CleaningRobot', 'Washer-Settings', 'CoffeeMaker', 'Washer', 'CookProcessor-Settings', 'Hob-Settings', 'Oven-Monitor', 'Hood-Control', 'WasherDryer-Monitor', 'Oven-Settings', 'CoffeeMaker-Monitor', 'Monitor', 'Hob-Monitor', 'WasherDryer-Control', 'Dishwasher-Control', 'Refrigerator-Control', 'Dishwasher', 'Dryer-Control', 'CleaningRobot-Control', 'WineCooler', 'Freezer-Monitor', 'WasherDryer', 'Oven', 'Refrigerator-Monitor', 'Oven-Control', 'CookProcessor', 'Freezer', 'Freezer-Settings', 'WineCooler-Control', 'WineCooler-Settings', 'Dishwasher-Settings', 'Hood', 'Dryer', 'FridgeFreezer-Monitor', 'CleaningRobot-Settings', 'Refrigerator', 'Refrigerator-Settings', 'Hob-Control', 'Dishwasher-Monitor', 'CoffeeMaker-Settings', 'FridgeFreezer-Settings', 'CleaningRobot-Monitor', 'WineCooler-Monitor', 'Freezer-Control', 'CoffeeMaker-Control', 'Washer-Monitor', 'Hood-Monitor', 'Hood-Settings', 'FridgeFreezer-Control', 'CookProcessor-Control', 'WasherDryer-Settings'], 'token_type': 'Bearer', 'expires_at': 1622037725.0803995}
                              2021-05-26 12:01:15 ERROR plugins.homeconnect An exception occurred in _update {'key': 'invalid_token', 'description': 'The access token is revoked'}
                              2021-05-26 12:06:15 DEBUG plugins.homeconnect Starting update loop
                              2021-05-26 12:06:15 DEBUG plugins.homeconnect Token in _update is {'access_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'expires_in': 14770.080399513245, 'id_token': 'eyJ4LWVudiI6IlBSRCIsImFsZyI6IlJTMjU2IiwieC1yZWciO iJFVSIsImtpZCI6IlMxIn0.eyJmZ3JwIjpbXSwiY2x0eSI6InB yaXZhdGUiLCJzdWIiOiIwMWM3ZGY5YS0wYjNiLTRjMzItYmM1N C0xZDMzYTRiYTkwZD
                              ..
                              XJn1QMOzUgIddLM4uHohmYAgUuu9dQTpEZkChfKoX4CqVn7jrz wEnFCzKFtT8tIj0nlK6ShEL5N_E5L-aDXH8b18iZVOcuZdi1JSOtqTFoB6b2ivRA8ODHkI5dhHry17kP oDKqqsFkNEutmzmB_W9264VqDIcJ1j2kjrskZUKmQ5Zq6t5-0NjX6Y5K9x6KHsEz3SyyNXeN95laJojPx-dq8asQ-0COnG_Qiezj1jtl9Yt1MLCnPvJm976snyNjTMRtFljf66tywqU fMhEIDsHHs0oHjNQ', 'refresh_token': 'eyJ4LXJlZyI6IkVVIiwieC1lbnYiOiJQUkQiLCJ0b2tlbiI6I mE3Mzc3NTRjLWUwMWEtNGNmNC1iMjhiLWEwNmE2NDE4YWMyMiI sImNsdHkiOiJwcml2YXRlIn0=', 'scope': ['CookProcessor-Monitor', 'Dryer-Settings', 'Hob', 'Washer-Control', 'Dryer-Monitor', 'Settings', 'IdentifyAppliance', 'Control', 'CleaningRobot', 'Washer-Settings', 'CoffeeMaker', 'Washer', 'CookProcessor-Settings', 'Hob-Settings', 'Oven-Monitor', 'Hood-Control', 'WasherDryer-Monitor', 'Oven-Settings', 'CoffeeMaker-Monitor', 'Monitor', 'Hob-Monitor', 'WasherDryer-Control', 'Dishwasher-Control', 'Refrigerator-Control', 'Dishwasher', 'Dryer-Control', 'CleaningRobot-Control', 'WineCooler', 'Freezer-Monitor', 'WasherDryer', 'Oven', 'Refrigerator-Monitor', 'Oven-Control', 'CookProcessor', 'Freezer', 'Freezer-Settings', 'WineCooler-Control', 'WineCooler-Settings', 'Dishwasher-Settings', 'Hood', 'Dryer', 'FridgeFreezer-Monitor', 'CleaningRobot-Settings', 'Refrigerator', 'Refrigerator-Settings', 'Hob-Control', 'Dishwasher-Monitor', 'CoffeeMaker-Settings', 'FridgeFreezer-Settings', 'CleaningRobot-Monitor', 'WineCooler-Monitor', 'Freezer-Control', 'CoffeeMaker-Control', 'Washer-Monitor', 'Hood-Monitor', 'Hood-Settings', 'FridgeFreezer-Control', 'CookProcessor-Control', 'WasherDryer-Settings'], 'token_type': 'Bearer', 'expires_at': 1622037725.0803995}
                              2021-05-26 12:06:15 ERROR plugins.homeconnect An exception occurred in _update {'key': 'invalid_token', 'description': 'The access token is revoked'}
                              2021-05-26 12:10:44 DEBUG plugins.homeconnect WebIf of plugin homeconnect found, callback is http://192.168.178.37:8383/plugin/homeconnect
                              2021-05-26 12:10:44 DEBUG plugins.homeconnect WebIf of plugin homeconnect found, callback is http://192.168.178.37:8383/plugin/homeconnect
                              da kann ich jetzt auch keine neue Authentifizierung im webif machen.

                              Kommentar


                                #60
                                Joa. Der Renewal geht bei mri auch noch nicht. Nach einem Tag war Schicht im Schacht. Die Funktion ist eigentlich gemäß OAuth Doku implementiert..

                                Kommentar

                                Lädt...
                                X