Ankündigung

Einklappen
Keine Ankündigung bisher.

Interesse an HomeConnect Plugin?

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

    #16
    Kurz erklären hilft nur, wenn Du Python Experte bist und bereits in der Lage bist Plugins für SmartHomeNG zu schreiben.
    Zuletzt geändert von bmx; 07.05.2021, 11:24.
    Viele Grüße
    Martin

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

    Kommentar


      #17
      Hallo,

      ich habe gerade mal hier geschaut:
      https://github.com/DavidMStraub/home...nt-homeconnect
      ob man sich wg. OAuth bedienen kann.

      Das geht da so:
      Code:
      from homeassistant.helpers import config_entry_oauth2_flow
      Das widerum findet man hier:
      https://github.com/home-assistant/co...oauth2_flow.py

      Darin sind aber auch einige home-assistant imports.
      Ich weiß nicht, ob es sich lohnt, dort abzugucken, was OAuth angeht.
      Anderes vielleicht eher.

      Gruß,
      Hendrik

      Kommentar


        #18
        Ich denke ich bin mit dem pypi paket https://pypi.org/project/homeconnect/ jetzt eine spur weiter.. der oauth prozess scheint ähnlich wie bei withings_health zu sein. Ich versuche mal den prozess nachzuimplementieren und würde das ohne weitere funktionen mal in den develop pushen.

        danach schaue ich, was mit der kaffeemaschine geht.. weitere funktionen kann ich derzeit mangels devices aber nicht selber dazubauen.

        Update:
        Aktuell scheitere ich leider daran, dass der OAUTH2 Prozess einen HTTPS Endpunkt erwartet:

        File "/usr/local/lib/python3.7/dist-packages/oauthlib/oauth2/rfc6749/parameters.py", line 262, in parse_authorization_code_response
        raise InsecureTransportError()
        oauthlib.oauth2.rfc6749.errors.InsecureTransportEr ror: (insecure_transport) OAuth 2 MUST utilize https.

        Mein SHNG steht leider nicht direkt bzw. über den ReverseProxy im Internet. Mal sehen, ob die URL tatsächlich erreichbar sein muss. Etwas suboptimal.

        Update2: ich habs es jetzt geschafft, die Kaffeemaschine abzufragen. Clou war via
        os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
        das https abzuschalten. Werde das wohl noch dynamisch je nach SHNG Setup dann abschalten oder anlassen.

        Update 3: nach einem neustart von SHNG ist zwar das Token gecached, offenbar kann er aber nicht mehr authentifizieren.. ich hoffe, dass man nicht jedes mal theoretisch den oauth prozess via browser bedienen muss..
        Zuletzt geändert von psilo; 11.05.2021, 15:55.

        Kommentar


          #19
          Hallo,

          das klingt doch schonmal nicht gut. Danke dafür.
          Ich habe mal "nebenan" geschaut:
          I was looking for the integration of my HOME CONNECT devices (SIEMENS, but fully compatible with BOSCH), but somehow the integrations needed SSL and/or exposing HA to the web.
          --> das "normale" HC Plugin von HA benötigt SSA und "exposing to the web".

          Das Auth funktioniert so:
          • Register an application. Pick Device flow for OAuth flow.
          • Once you start the following sequence, you have 5 minutes to complete it (or you’ll have to restart from here):
          • LINUX Console:
            • export CLIENT_ID="YOUR_CLIENT_ID"
            • curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=${CLIENT_ID}" https://api.home-connect.com/securit..._authorization | tee tmp.json
            • Go to verification_uri in a browser, type in user_code . Log in using your (end user, not developer) Home Connect account and approve.
            • export DEVICE_CODE=$(jq -r .device_code tmp.json)
            • curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ietfaramsauth:grant-type:device_code&device_code=${DEVICE_CODE}&client _id=${CLIENT_ID}" https://api.home-connect.com/security/oauth/token | tee access_token.json
            • jq .refresh_token access_token.json
          Siehe https://community.home-assistant.io/...-to-web/170592
          und auch hier Zeile 38

          Gruß,
          Hendrik

          Kommentar


            #20
            henfri Der Auth Workflow via Web geht ja bereits.Das ist ähnlich wie beim Withings Health. Theoretisch muss man den einmal nach der Einbindung des Plugins in SHNG aus dem Webif des Plugins starten und Zugriff erlauben. Danach erhält man Tokens, inkl einem Refresh Token. Der Refresh müsste eigentlich auch schon gehen. Den web Workflow sollte man nur dann wieder brauchen, wenn SHNG so lange "down" ist, dass die Expiry des Tokens überschritten wird.

            So lange SHNG läuft, ist alles gut.

            Stoppt man nun SHNG und lade ich das Token aus dem JSON wieder rein, sehe ich die Daten. Leider scheitert dann aber die Anfrage an HomeConnect mit dem 401.

            Laut Autor der LIB sollte das aber gehen. Vielleicht ists auch nur ein Bug bei mir. Ich versuch mal das was ich habe heute zu pushen. Doku fehlt dann aber noch.

            Mal muss als developer bei HomeConnect registriert sein. Einen normalen User braucht man natürlich auch.

            Vielleicht kann man ja gemeinsam schauen, woran es hakt.

            Kommentar


              #21
              Ich habe gerade alten Code vom Autor der Lib integriert. Dieser scheint zu gehen. Ich teste das jetzt in Ruhe und baue die Implementierung direkt ein, ohne die Lib zu verwenden. Bis heute abend sollte ich eine Version pushen, die dann eure Appliances auflistet. Doku schaffe ich aber noch nicht. D.h. für die Inbetriebnahme müsst ihr etwas mitdenken ;-P

              Kommentar


                #22
                Habe es gerade gepusht. Wenn ihr versucht, in der README stehen ein paar Details, was ihr tun müsst. Aber sehr rudimentär. Ihr braucht zusätzlich zu eurem HomeConenct Account noch einen Developer Account, mit dem ihr Client ID und Client Secret anlegt. Diese braucht das Plugin für die Konfiguration.

                Bei mir klappt es, dass das Token nach einem Neustart von SHNG "renewed". Wie es sich verhält, wenn SHNG läuft, sehe ich morgen. Bisher sieht man auch nur seine Appliances, man hat keine Items oder ähnliches.

                Bitte testen aber bedenkt, dass ich hier keinen großflächigen Support machen kann derzeit. Ich kenne ja die Baustellen. Wenn jemand verständlichere Doku schreiben will: feel free!

                Kommentar


                  #23
                  wo findet man das plugin jetzt?

                  Kommentar


                    #24
                    Im Develop Branch, da wo man sowas hinpusht?

                    https://github.com/smarthomeNG/plugi...op/homeconnect

                    PS: der Token Renew geht grade noch nicht. Ist leider etwas doof testbar, da ein Token ca 1 Tag gilt. Ich vermute, sobald ich ein Item im Statusupdate drin habe, sollte er renewen.. So weit bin ich aber noch nicht ganz.

                    Kommentar


                      #25
                      OK vielen dank das bedeutet ich kann die ganzen dateien einfach in meinen pluginordner kopieren und konfigurieren?

                      Kommentar


                        #26
                        Patzi das kann ich Dir nicht beantworten, da ich meist auf relativ neuem Code von SHNG aufbaue und die von Dir genutzt Version nicht kenne und das auch nicht prüfen kann. Mit dem letzten Release solltest Du aber auf der sicheren Seite sein.
                        Wie gesagt: das Plugin ist auch noch komplett in Entwicklung. Man sollte schon wissen, was man macht ;-)

                        Kommentar


                          #27
                          Vorhin habe ich das Thema noch mal ausgegraben und das neue plugin aufgesetzt.
                          leider kann ich nicht allzuviel erkennen, was das Teil macht, ich habe schon das logging auf DEBUG gesetzt: da scheint etwas zu laufen.
                          Code:
                          2021-05-18  13:21:06 WARNING  lib.smarthome.main  --------------------   Init SmartHomeNG 1.8.2.master (5c3f6d20)   --------------------
                          2021-05-18  13:21:06 WARNING  lib.smarthome.main  Running in Python interpreter 'v3.7.3 final', from directory /usr/local/smarthome
                          2021-05-18  13:21:06 WARNING  lib.smarthome.main   - on Linux-5.10.11-v7l+-armv7l-with-debian-10.8 (pid=21267)
                          2021-05-18  13:21:06 WARNING  lib.smarthome.main   - Nutze Feiertage für Land 'DE', Provinz 'NW', benutzerdefinierte(r) Feiertag(e) nicht definiert
                          2021-05-18  13:21:09 INFO     lib.network         Initializing a connection to 127.0.0.1 on TCP port 6720 with autoreconnect
                          2021-05-18  13:21:09 DEBUG    lib.network         127.0.0.1 is a valid IP address
                          2021-05-18  13:21:21 INFO     plugins.hue2        Discoverd bridge = {'mac': 'b827eb0f180f', 'ip': '192.168.178.47', 'port': '81', 'friendlyName': 'Philips hue (192.168.178.47)', 'manufacturer': 'Royal Philips Electronics', 'manufacturerURL': 'http://www.philips.com', 'modelDescription': 'Philips hue Personal Wireless Lighting', 'modelName': 'Philips hue bridge 2015', 'modelURL': 'http://www.meethue.com', 'modelNumber': 'BSB002', 'serialNumber': 'b827eb0f180f', 'UDN': 'uuid:2f402f80-da50-11e1-9b23-b827eb0f180f', 'gatewayName': '', 'URLBase': 'http://192.168.178.47:81/', 'version': 'v2', 'datastoreversion': '', 'apiversion': '1.19.0', 'swversion': '9999999999'}
                          2021-05-18  13:21:21 INFO     plugins.hue2        Discoverd bridge = {'mac': '001788762a60', 'ip': '192.168.178.50', 'port': '80', 'friendlyName': 'Philips hue (192.168.178.50)', 'manufacturer': 'Signify', 'manufacturerURL': 'http://www.philips-hue.com', 'modelDescription': 'Philips hue Personal Wireless Lighting', 'modelName': 'Philips hue bridge 2015', 'modelURL': 'http://www.philips-hue.com', 'modelNumber': 'BSB002', 'serialNumber': '001788762a60', 'UDN': 'uuid:2f402f80-da50-11e1-9b23-001788762a60', 'gatewayName': '', 'URLBase': 'http://192.168.178.50:80/', 'version': 'v2', 'datastoreversion': '103', 'apiversion': '1.44.0', 'swversion': '1945091050'}
                          2021-05-18  13:21:21 INFO     plugins.hue2        get_bridgeinfo: self.bridge = {'mac': '001788762a60', 'ip': '192.168.178.50', 'port': '80', 'friendlyName': 'Philips hue (192.168.178.50)', 'manufacturer': 'Signify', 'manufacturerURL': 'http://www.philips-hue.com', 'modelDescription': 'Philips hue Personal Wireless Lighting', 'modelName': 'Philips hue bridge 2015', 'modelURL': 'http://www.philips-hue.com', 'modelNumber': 'BSB002', 'serialNumber': '001788762a60', 'UDN': 'uuid:2f402f80-da50-11e1-9b23-001788762a60', 'gatewayName': '', 'URLBase': 'http://192.168.178.50:80/', 'version': 'v2', 'datastoreversion': '103', 'apiversion': '1.44.0', 'swversion': '1945091050', 'username': '57hrgCztUAnA94-a4w9ymNLyW20Wmm5tCBugeLqj'}
                          2021-05-18  13:21:21 INFO     plugins.hue2        Bridgeinfo for configured bridge '001788762a60' = {'mac': '001788762a60', 'ip': '192.168.178.50', 'port': '80', 'friendlyName': 'Philips hue (192.168.178.50)', 'manufacturer': 'Signify', 'manufacturerURL': 'http://www.philips-hue.com', 'modelDescription': 'Philips hue Personal Wireless Lighting', 'modelName': 'Philips hue bridge 2015', 'modelURL': 'http://www.philips-hue.com', 'modelNumber': 'BSB002', 'serialNumber': '001788762a60', 'UDN': 'uuid:2f402f80-da50-11e1-9b23-001788762a60', 'gatewayName': '', 'URLBase': 'http://192.168.178.50:80/', 'version': 'v2', 'datastoreversion': '103', 'apiversion': '1.44.0', 'swversion': '1945091050', 'username': '57hrgCztUAnA94-a4w9ymNLyW20Wmm5tCBugeLqj'}
                          2021-05-18  13:21:21 DEBUG    plugins.homeconnect WebIf found, callback is homeconnect
                          2021-05-18  13:21:26 DEBUG    lib.network         Starting connection cycle for 127.0.0.1
                          2021-05-18  13:21:26 DEBUG    lib.network         Connecting to 127.0.0.1 using IPv4 127.0.0.1 on TCP port 6720 with autoreconnect
                          2021-05-18  13:21:26 INFO     lib.network         Connected to 127.0.0.1 on TCP port 6720
                          2021-05-18  13:21:26 DEBUG    plugins.hue2        Run method called
                          2021-05-18  13:21:26 DEBUG    plugins.hue2        scheduler_add: name = plugins.hue2.update_bridge, parameters: prio=3, cycle=90
                          2021-05-18  13:21:26 DEBUG    plugins.homeconnect scheduler_add: name = plugins.homeconnect.poll_data, parameters: prio=3, cycle=300
                          2021-05-18  13:21:26 WARNING  lib.smarthome.main  --------------------   SmartHomeNG initialization finished   --------------------
                          2021-05-18  13:21:26 ERROR    plugins.smartvisu   Removed widget usage (used in # sv_widgets): {'basic.button': 2, 'basic.switch': 10}
                          2021-05-18  13:21:31 INFO     logics.hello        Hello World!
                          2021-05-18  13:21:36 DEBUG    plugins.homeconnect Starting update loop
                          Leider lauf ich jetzt hier in das gleiche Problem, wie mit dem neuen hue2 plugin.
                          sobald ich das webif in der Administration anklicke kommt diese 500 Fehlermeldung:

                          homeconnect1.JPG

                          Kommentar


                            #28
                            whe
                            - welchen Core hast Du?
                            - hast Du client ID und client Secret für das Plugin konfiguriert?

                            Kommentar


                              #29
                              #28
                              - ich betreibe 1.8.2 master auf einem Raspberry Pi 4
                              - ja, die beiden Werte habe ich eingetragen, jedoch von meinen früheren Experimenten
                              kann dies gerne nochmal erneuern, weiß nicht mehr, was ich damals alles gemacht habe.
                              würde aber im log entspr. Fehlermeldungen erwarten, wenn etwas nicht passt.

                              Nachtrag:
                              - habe gerade eine neue Applikation bei HomeConnect registriert und clinetID und clientsecret angepasst.
                              - was hat es denn mit der "renonnectURL" auf sich; da habe ich einfach was eingetragen.

                              lande aber immer wieder bei diesem blöden 500; das muss doch was anderes sein, weil ich das ja beim hue2 auch habe.
                              Zuletzt geändert von whe; 18.05.2021, 13:51.

                              Kommentar


                                #30
                                whe die redirect uri sieht man im web interface des pluginsm bspw sowas: http://192.168.178.100:1234/plugin/homeconnect.

                                das ist eine lokale adresse vom plugin auf die einen der oauth prozess dann weiterleitet. Wichtig: diese URI muss NICHT vom Internet aus erreichbar sein. Da wirst Du nur einmal in Deinem lokalen Browser hingeführt, wenn Du den Prozess aus dem Webinterface aus startest.

                                client id und secret braucht man aber eben initial, um das plugin zu nutzen. wie gesagt: die doku ist noch nicht super, gerne mitwirken..

                                was für ein fehler steht denn in log, wenn der http 500 kommt?
                                Zuletzt geändert von psilo; 18.05.2021, 14:35.

                                Kommentar

                                Lädt...
                                X