Beiträge von Ryker

Wir haben aktuell ein Problem mit dem Board und arbeiten an der Lösung...


-> Aktuell bereiten wir das Upgrade auf die aktuelle Version 6 von Woltlab vor.

    Bei mir hält der Zugang für exakt 24 Stunden.

    Hm, seltsam. Bei mir hält der Zugang auf dem 2. Gerät schon seit Monaten, ohne dass ich neuen RefreshToken erstellen muss. Nur letztens hatte es mich bei dem anderen Gerät erwischt, wo scheinbar bei netatmo einige refreshtoken über alle Kunden ungültig worden.
    Allerdings habe ich auch für jedes Gerät eine eigene App bei dev.netatmo.de erstellt. Falls ihr mehrere Dreamboxen habt und die alle auf der gleichen App hängen, dann weiß ich nicht, ob das irgendeinen negativen Einfluss hat.

    Carbonide
    Über das "authorization required" bin ich am Anfang auch immer drübergestolpert.
    Das liegt doch an den Altlasten in dem Plugin.
    Ich musste dann zusätzlich auch erst noch die beiden Parameter festlegen
    config.Netatmo.user=xxx@yyy.zz

    config.Netatmo.password=asdf1234

    Die Werte werden zwar dann vom Plugin wieder entfernt, aber beim ersten Start des Plugins will er das so haben.
    Also zumindest war das bei mir der Grund für den Fehler.

    Da ist irgendwas bei Netatmo passiert, dass die Tokens dann nicht mehr gültig waren.
    Das betrifft auch andere Applikation und wird auch dort gerade diskutiert. z.b. im FHEM-Forum.

    Aber nach neuem RefreshToken generieren und in den Configs eintragen ging es dann wieder überall. Hat aber nichts damit zu tun, wenn die Dream mal offline war. Bei mir hier läuft der FHEM-Server 24/7 durch und den hat es auch erwischt.

    Das habe ich jetzt jeden Tag, so ist es eigendlich nicht zu gebrauchen.

    Ich möchte nicht jeden Tag an der Box rumschrauben, schade eigentlich.

    ...

    Aber nachdem der Refreshtoken jetzt wohl nach 3h ungültig wird, ist die jetzige Lösung leider auch keine mehr...

    Da läuft nichts ab. Hier habe ich für 2 Applikation (Dream, FHEM) immernoch den RefreshToken den er mir vor Monaten generiert hatte. Nur der AccessToken ist nur begrenzt nutzbar, aber den holt das Plugin ja immer wieder neu von netatmo ab.
    Das Problem muss woanders sein.

    Also, es ist eigentlich gar nicht so schwer, das Plugin ans Laufen zu bekommen.
    Hier nochmal die Anleitung, die ich jemand per PM zuschickt hatte und danach hat er das problemlos hinbekommen.
    -------

    1) du meldest dich mit deinem Netatmo-Account an dev.netatmo.com an.


    2) dann klickst du rechts oben in der Ecke auf dein Profile. Dort öffnet sich ein Drop-Down-Menu und du wählst "my apps"


    3) Auf der Apps-Seite wählst du "create":

    AppName: der Name dieser App - also z.b. "Dreambox-xyz"

    Description: irgendeinen Beschreibung z.b. "Netatmo Plugin auf Dreambox"

    data protection officer name: Dein Name

    data protection officer email: deine email-adresse

    --> dann "I agree..." anhaken und "save" klicken.


    4) nach dem speichern bekommst du schonmal eine "client_id und ein "client_secret" -> die Werte brauchst du für das Plugin nachher.


    5) in der App beim "Token generator" wählst du als scope "read_station" und "read_thermostat" aus. und klickst auf "generate token"

    Dann sieht es kurz aus, als ob nichts passiert, aber nach ein paar sekunden wird man auf eine Seite weitergeleitet, wo man die scopes bestätigt.


    6) nun sollte man Werte für "access_token" und "refresh_token" angezeigt bekommen


    7) refresh_token, client_id und client_secret dann wie von cmikula beschrieben in die netatmo.txt eintragen

    8 ) Enigma2 restarten

    ...

    zudem wir das Bottleneck der CPU sein, dass du nicht wirklich schneller bist... daher lohnt es hier nicht wirklich.

    Ja, die CPU-Auslastung geht ziemlich hoch, wenn ich irgendwas per NFS auf die QNAP kopiere. Ich bekomme nur max. 520MBit/s übers Netz von der DM920 aus.
    Ich denke auch der 2.5GBit/s Adapter wird nichts bringen.


    Ich werde demnächst mich noch damit beschäftigen, wie man clientid und clientsecret in die E2-config oder textfile auslagern kann. Dauert nur etwas, weil python ist für mich völlig neu, aber es wird immer besser.

    Ach sorry - hatte das verkehrt aufgefasst. :upside_down_face:

    Also ImPrinzip ist alles schon im Plugin soweit funktionsfähig drin.
    Man muss nur wie im vorhergehenden Post beschrieben

    1) min die 4 Parameter in der E2-settings drin haben
    2) in der netatmoAPI.py in der Function "checkTokenExpired" statisch seine eigene client_id und client_secret eintragen.
    Dann E2 restarten und alles geht wunderbar.

    cmikula Falls du doch nochmal Zeit und Lust haben solltest, dann könntest du die client_id und client_secret auch in die E2-Settings verlagern und das in der checkTokenExpired von dort wieder laden. Da würde alles wieder per Standard funktionieren. :)

    Ach ja, genau. Da hätte ich ja auch selber drauf kommen können ins crashlog zu schauen. :fearful_face:
    Es fehlte noch "enigma2-plugin-systemplugins-weathercomponenthandler" und evtl auch "enigma2-plugin-skincomponents-weathercomponent".
    Hab nun beides installiert und nun klappt es wunderbar.
    Danke für den Tipp :thumbs_up:

    Jogi29 Ich hab bei mir gerade an der Dm920 das netatmo-plugin in betrieb genommen und wollte nun im DisplaySkin für den Idle-Screen den StandbySummary_Netatmo.xml benutzen. Aber der sorgt dafür dass das E2 einen Grünen bringt und restartet, sobald die DM920 in den StandbyMode geschickt wird.
    Da schein irgendwo was nicht zu stimmen in dem screen.
    Nur falls du mal Zeit und Lust hast das anzuschauen.

    Gruß
    Ryker

    Dre
    Was hast du geändert ? - Weil ich sehe aktuell keine Änderung im Code.
    Denn es müsste folgendes geändert werden, damit es im Plugin funktioniert.
    client_id und client_secret müsste in die E2-Settings ausgelagert werden.
    Dann müsste in NetatmoAPI.py in "checkTokenExpired" dafür gesorgt werden, dass "client_id" und "client_secret" die entsprechenden Werte aus den E2-Settings bekommen.

    Bis das drin ist, muss man sich auf jeden schon mal fall folgendes in die E2-Settings aufnehmen:
    config.Netatmo.user=

    config.Netatmo.password=

    config.Netatmo.refresh_token=<refresh Token aus der entsprechenden App von dev.netatmo.com>

    config.Netatmo.access_token=<access Token aus der entsprechenden App von dev.netatmo.com>

    Die client_id und client_secret aus seiner eigenen App von dev.netatmo.com derweil statisch in die NetatmoAPI.py eintragen



    Damit habe ich nun geschafft das netatmo-plugin in Betrieb zu nehmen.

    Das mit dem ablaufenden Access-Token nach 3h schein doch nicht so schlimm zu sein, wie erst vermutet.
    Hab heue nochmal mit meinem Code von gestern probiert und das funktiomiert nach wie vor, auch nach einem Tag.
    Es ist ja so, dass man sich mit dem Token aus der definieren App authentifiziert. Die Authentifiziereung liefert einen neuen Token, der dann 3h gültig ist und mit dem frägt man dann die Daten ab. D.h. man kann 3h lang Daten abfragen und muss sich erst nach 3h wieder neu authentifizieren, aber mit den alten Tokens.
    Gibts irgendwo den Code vom netatmo-plugin in irgendeinem Git, dass man sich das mal genaue anschauen kann - um zu sehen welchen Aufwand das bedeutet?

    ...

    Das einzige wo ich mich evtl. mal ran setze, ist die netatmo-daten übers API in Python mit der neuen Auth auszulesen.
    Wollte schon lange mal Python lernen und das wäre halt ein sehr kleines überschaubares Projekt. Muss halt nur Zeit finden dafür.

    So, ich bin jetzt mal dazu gekommen ein Python-script zu schreiben, was die Daten der Wetterstation über die API ausließt und in der Shell anzeigt. Dabei wird die neue Auth benutzt.
    Also man muss unter dev.netatmo.com sich für die Dreambox eine eigene App anlegen. Dann den scope auf "read_station" setzen, dann hat man alle daten die man braucht, um das in das script open einzutragen.
    Für diese Token-Auth wird auch kein Username oder Passwort benötigt.
    Ich denke mal das Plugin entsprechend anzupassen dürfte nicht so schwierig sein. Man muss nur die alte Auth gegen die neue austauschen und dann die Werte, die für access_token und refresh_token zurückkommen, dann immer wieder in die e2-settings zurückschreiben.
    Die Dreambox muss dann natürlich immer laufen, damit der refresh funktionieren kann. Nach Urlaub oder sonstiger längerer Downtime muss man dann einmal wieder die werte für access_token und refresh_token von dev.netatmo.com holen und wieder in der dream eintragen.

    Lange Zeit war bei mir die DM7080 und dann die DM920 ein richtig gutes Gerät zum TV schauen, weil es recht easy war alles aufzunehmen und dann zu schauen, wenn man Zeit hat.
    Aber, Streaming hat als disruptive Technologie das Lineare-TV weitestgehend abgelöst, bis auf einige wenige Ausnahmen, wo man doch noch lineares TV schaut.
    Die Boxen von Dream können zwar auch in gewisser weise Streaming und InternetTV+Internetradio, aber im allgemeinen sind die für DVB-Empfang ausgelegt.

    Ich hatte mal vor einigen Jahren bei den Dream-Entwicklern schon angeregt eine kleine StreamingBox rauszubringen auf Android-Basis, wo man auch Tuner Stecken kann, aber die E2-Oberfläche eine echte AndroidApp ist, die als Launcher läuft. Vielleicht hätte man sogar ein Widevine-Zertifikat bekommen. Somit hätte ich alles, also Netflix &Co, mit auf der Box gehabt. Das wäre mir lieber gewesen, als eine FireTV, die ich jetzt nutze.
    Bei mir läuft sei Jan'24 alles über die FireTV. Lineares-TV und Internetradio im KODI auf der FireTV.
    Die DM920 brauche ich aktuell gar nicht mehr. Familie ist mit der Lösung bei mir sehr zufrieden und froh dass es nur noch die eine FireTV-Fernbedienung gibt, die auch TV und AVReceiver mit steuern kann. Im Kodi hab ich für das LiveTV eine ähnliches Tastenmapping erstellt, wie es auf der DM920 war. Somit ist dort die Bedienung auch so wir auf der Dream. Seien es StreamingApps oder Kodi oder sonstwas - alles ist schön übersichtlich nebeneinander als App.
    Falls Dream Property in irgendeiner Art wieder auferstehen sollte, dann könnten sie mich nur mit einer StreamingBox catchen.