NEWS
Stabiles Netatmo Thermostat Blockly (Adapter)
-
Jetzt funktioniert nur die Away Funktion nicht?
Drück mal direkt den Away Button und guck ob sich was tut?Ansonsten nochmal die Handys ins WLAN holen und wieder rauswerfen, am Anfang sind die Werte immer false, kann beim ersten Betrieb schon Probleme machen wenn sie dann auf false wechseln...
@newpicsel habe grade rausgefunden das man erst die OID'S eintragen muss und dann nochmals das Blockly starten und jetzt funktioniert es.
Werde es weiter beobachten und dir berichten.Sind natürlich Benutzer FEHLER.
Du hast eine SUPER SACHE bis jetzt gemacht.
-
@newpicsel habe grade rausgefunden das man erst die OID'S eintragen muss und dann nochmals das Blockly starten und jetzt funktioniert es.
Werde es weiter beobachten und dir berichten.Sind natürlich Benutzer FEHLER.
Du hast eine SUPER SACHE bis jetzt gemacht.
Super freut mich und danke!
Ja richtig nach jeder Änderung von ID‘s muss das Blockly neu gestartet werden, steht auch in den elendig langen ersten Post 😂 hab den immer wieder etwas ergänzt während immer mehr Optionen eingefügt wurden...
Problem ist, dass der Pfad des Blocklys immer bei jedem ein anderer ist, sonst könnte ich da auch eine automatische Aktualisierung einbauen 😅
-
Super freut mich und danke!
Ja richtig nach jeder Änderung von ID‘s muss das Blockly neu gestartet werden, steht auch in den elendig langen ersten Post 😂 hab den immer wieder etwas ergänzt während immer mehr Optionen eingefügt wurden...
Problem ist, dass der Pfad des Blocklys immer bei jedem ein anderer ist, sonst könnte ich da auch eine automatische Aktualisierung einbauen 😅
@newpicsel sagte in Tester für Netatmo Thermostat Blockly gesucht:
Super freut mich und danke!
Ja richtig nach jeder Änderung von ID‘s muss das Blockly neu gestartet werden, steht auch in den elendig langen ersten Post 😂 hab den immer wieder etwas ergänzt während immer mehr Optionen eingefügt wurden...
Problem ist, dass der Pfad des Blocklys immer bei jedem ein anderer ist, sonst könnte ich da auch eine automatische Aktualisierung einbauen 😅
Alles gut wie gesagt der Benutzer ist der Schuldige.
-
Super freut mich und danke!
Ja richtig nach jeder Änderung von ID‘s muss das Blockly neu gestartet werden, steht auch in den elendig langen ersten Post 😂 hab den immer wieder etwas ergänzt während immer mehr Optionen eingefügt wurden...
Problem ist, dass der Pfad des Blocklys immer bei jedem ein anderer ist, sonst könnte ich da auch eine automatische Aktualisierung einbauen 😅
@newpicsel Hi bekomme nur noch Fehlermedlungen:
-
Moin Smart Home Freunde,
Da es mal kein Adapter für die Netatmo Thermostate gab, hab ich ein Blockly erstellt, welches die gleichen bzw. Sogar noch etwas mehr und einfachere Objekte, funktionen und möglichkeiten erzeugt und bietet wie ein handelsüblicher Adapter.
Warum ich nicht gleich ein Adapter erstellt habe, liegt daran, dass ich eigentlich keine Ahnung habe was ich hier mache, das Blockly ist garantiert auch nicht perfekt und nicht fehlerfrei aber bei mir sowie einigen fleißigen Testern, funktioniert es wunderbar, zumindest vorerst sind allerdings nur 10 (mittlerweile15) Thermostate steuerbar, wenn mehr benötigt werden, kurz bescheid geben...
Ich habe das Blockly so aufgebaut, dass es bei jedem funktionieren sollte, nach anfänglichen Schwierigkeiten, funktioniert dies auch wunderbar, es müssen lediglich ein paar Daten für die Anmeldung in Objekte eingetragen werden, wie es genauso bei einem Adapter nötig wäre.
!!ACHTUNG!!!
Bei einigen Nutzern haben Sonderzeichen gerade das "$" Zeichen in den Zugangsdaten Probleme gemacht!
Solltet ihr direkt von Anfang an Probleme haben, versucht bitte diese zu ändern.
Ich habe wenig Hoffnung aber werde versuchen dieses Problem zu beheben und werde es dann in der Version erwähnen.Um Das Blockly zu nutzen, müsst ihr nur die nachfolgende RAR Datei Downloaden, darin befindet sich lediglich eine einfache Textdatei, dessen Inhalt (Code) ihr kopieren müsst, dann erstellt ihr euch in ioBroker unter <> Skripte innerhalb des Common Ordners (kann auch im Ordner eines Ordners sein) ein neues Blockly welches ihr nennen könnt, wie es euch gefällt, zB. "Netatmo_Blockly", darin findet ihr oben rechts ein Symbol von einem Blatt Papier mit einem Pfeil rein, wenn ihr darauf klickt, könnt ihr den vorher Kopierten Code aus meiner Textdatei, einfügen und speichern.
Fertig soweit!Es kann beim öffnen der "TXT" Datei aus der "RAR" Datei (in dem der Code für das Blockly ist) mit einem separaten program oder Editor zu Problemen kommen, wenn dadurch Sonderzeichen ersetzt werden könnten, hier seid ihr mit dem Windows eigenen Editor auf der sicheren Seite, solltet ihr euch nicht sicher sein!
(Auch und vor allem „ä“ „ö“ „ü“ werden zum Teil durch eine Zeichenfolge ersetzt, mit der iobroker und das Blockly nichts anfangen können)Alle nötigen Objekte wurden nun bereits angelegt und die Zugangsdaten können eingetragen werden.
Die komplette Struktur befindet sich nach erstmaligem starten des Blocklys unter:
"0_userdata.0.Eigene_Objekte.Netatmo"
Dort müssen die Zugangsdaten in die entsprechenden Objekte eingetragen werden.
Die Zugangsdaten müssen zwingend als wert in die entsprechenden Objekte eingetragen werden, dies macht ihr indem ihr auf das Feld im Reiter „wert“ klickt, NICHT aber (auch wenn dies sehr verwirrend dargestellt ist) auf den Stift rechts daneben! Seid ihr euch nicht sicher wie dies funktioniert, fragt gerne nach 😊👍Die Home ID und Client Daten, bekommt ihr auf der Hompage:
https://dev.netatmo.com/apidocumentation/energy#homesdata
Dazu müsst ihr euch anmelden und einmal EXECUTE/HOMESDATA ausführen, im feld darunter steht dann die Home ID,
für die Client Daten müsst ihr im Profil eine App anlegen, die angaben spielen keine rolle, hauptsache ihr bekommt die leider nötigen Daten...
Hier müsst Ihr nun auch das erste mal die Token selbst generieren (Access_Token und Refresh_Token) und diese ebenfalls einmalig in die Objekte eintragen!
Ab diesem Moment arbeitet das Blockly eigenständig und erneuert diese Token automatisch.
Das Blockly sollte erkennen sobald alle zugangsdaten angegeben sind, womit dann direkt alle daten aus der API abgefragt werden.
Normalerweise klappt direkt alles und es werden alle nötigen Objekte geschrieben, wobei es beim ersten start zu warnungen im log kommen könnte, einige Werte von Objekten, werden schneller abgefragt als die Objekte angelegt sind.
Der automatische Intervall sollte nun auf 60sek stehen.Das Objekt "Status", sollte nun den Wert "true" angeben, dies bedeutet es läuft alles problemlos.
Ansonsten im Log nachsehen, welche Aktionen erfolgreich ausgeführt wurden und welche eben nicht, entweder reichen diese Information um es selbst erneut zu versuchen, oder ihr postet euer Problem hier mit Angaben der Log Daten!
Keine Angst, ich helfe sehr gerne!Wenn alles geklappt hat (wovon ich stark ausgehe), werden jetzt einige nützliche informationen zur verfügung gestellt:
-
Alle Räume und deren Thermostate sowie der Bridge,
-
Die aktuelle Temperatur und die zu erreichende soll Temperatur,
-
Ob das Thermometer ein offenes Fenster erkennt,
-
Sowie die zuvor in der App erstellten und somit möglichen Heizpläne und natürlich den aktiven Heizplan,
-
Der Status der Batterien (Batterie Level und Status wie z.B. "High", "Full" und "Low"),
-
Die aktuelle Heizleistung der Thermostate (wie weit diese geöffnet sind),
-
Erreichbarkeit der Thermostate und Geräte, sowie deren Wifi und RF Qualität,
-
Einige ID‘s und JSON Objekte bzw. ARRAY‘s mit denen die meisten nichts anfangen können aber auch nicht müssen, die wichtigsten Daten habe ich ja bereits separiert. (Sollten weitere Datenpunkte und Informationen gewünscht sein, Gebt gerne Bescheid)
Eigentlich alles was die Thermostate, Geräte und oder die API zur Verfügung stellen, Strenggenommen sogar etwas mehr, denn:
- die durchschnittliche Temperatur des Hauses oder der Wohnung,
- ein Objekt in "Home" welches angibt ob irgendwo geheizt wird,
- die zusammengefasste Anzeige in der Übersicht, ob irgendwelche Batterien Probleme machen (false/true),
- die Möglichkeit hier eine soll_Temperatur für das komplette Haus/Wohnung eingeben zu können,
- die Batterie Kapazität in % (nur eine Schätzung, da werte der API leider sehr ungenau und teilweise von voll auf leer springen 🤷♂️)
- sowie viele Kleinigkeiten
und das automatische abfragen und senden aller Daten ist so in der Form eigentlich nicht vorgesehen.
Einige Einstellungsmöglichkeiten und Funktionen stehen nun auch zur Verfügung:
-
einstellen einer Soll_Temperatur für jeden Raum + oder allen Raümen gleichzeitig,
-
ändern des Heizplanes (WICHTIG genauen Name in das Objekt "Modus" eintragen, auch Großbuchstaben beachten!),
-
aktivieren der (nicht zuhause) der (Frostschutz) Funktion und das zurückkehren zu den aktiven Heizplan, dazu die Objekte mit true ansteuern oder ObjektID‘s in die Objekte eintragen, die auf true/false wechseln (z.B. aus dem AVM Adapter), wobei false dann immer zu denn Heizplan wechseln würde bzw. zwei mögliche ID‘s für die Anwesenheit zur Verfügung stehen, die sich gegenseitig abfragen (beide „false“ oder eben einer „true“), wird in dem zweiten Objekt nichts eingetragen, wird dieses ignoriert, bei „false“ kann hier ausgewählt werden ob die "AWAY" oder die „FROST“ Funktion aktiviert werden soll (entweder "AWAY" oder "FROST" (Großbuchstaben) eintragen), die jeweiligen in der App eingestellten Temperaturen werden hier ebenfalls angezeigt.
-
Die Möglichkeit eine ID eines externen Sensors für Fenster und Türen einzubinden oder ein Objekt mit „true/false“ anzusteuern (dieses gibt in beiden Fällen (auch bei Nutzung der ObjektID) den aktuellen Zustand wieder), und danach die Temperaturen der Räume zu regeln (hier kann für jeden Raum eine gewünschte Temperatur eingetragen werden oder bei „0“ wird die Frostwächter Temperatur gewählt, die bis zum schließen des „Fensters“ gehalten wird, sobald das "Fenster" geschlossen wurde, wird zur Temperatur des regulären Heizplanes zurückgekehrt.
(Sollte die Funktion genutzt werden, ist es nicht möglich die Temperatur in dem Raum zu ändern während das „Fenster“ geöffnet ist, möchte die Temperatur dennoch geändert werden, muss das Objekt "Fenster_Offen" auf „false“ gestellt werden, beim nächsten öffnen stellt dieses dann wieder auf „true“.)
Eine Verzögerung ab wann die Sensoren tatsächlich die Heizung steuern sollen, entweder global oder für jeden Raum in Sekunden (z.B. für eine Terrassentür interessant, wenn nicht jedes kurze öffnen die Heizung umstellen soll.)
Es können mehrere ObjektIDs für externe Sensoren pro Raum angegeben werden, in dem diese ohne Leerzeichen mit einem Komma getrennt werden (objektID1,objektID2). -
Die Möglichkeit ein Intervall einzustellen, wann oder in welchen abständen neue Daten abgefragt werden sollen, (z.B. kurze 30sek um in einer VIS mit aktuellen Anzeigen arbeiten zu können) oder (lange Zeiten wie z.B. 3600sek (1std) wenn die aktuellen Werte nicht sofort benötigt werden).
-
Die Möglichkeit eine haltezeit (in Minuten) für eine manuelle soll Temperatur anzugeben, diese muss vor dem einstellen einer Temperatur eingetragen werden und wird bei der nächsten Änderung der soll Temperatur mit übermittelt.
-
Außerdem ist es möglich eine maximale soll Temperatur für einen Raum festzulegen, sollte die soll Temperatur einmal über dieser liegen, so wird dieser Raum zum regulären Heizplan zurückkehren. (Wichtig oder hilfreich wenn z.B. Kinder am Regler spielen)
-
ein Button in jedem Raum, mit dem der jeweilige Raum zum Heizplan zurückkehrt. (Mit true ansteuern)
Ihr seht, eigentlich alles was man sich wünschen kann, habt ihr dennoch Ideen für weitere Funktionen, habt Probleme oder einfach eine Frage, immer raus damit!
Sollte ich hier neue Versionen einstellen, muss der alte Code im Blockly nur durch den neuen ersetzt werden, dazu das Skript stoppen dann im Blockly im leeren Bereich mit der Maus rechtsklicken und ganz unten xxxx Bausteine löschen auswählen, jetzt wie am Anfang den neuen Code einfügen (oben rechts Papier mit Pfeil rein).
Muss für gravierende Änderungen die Objektstruktur gelöscht werden, werde ich dies dazu schreiben, wenn ihr große Sprünge in der Version macht, sollte sicherheitshalber der Netatmo Ordner gelöscht werden oder schaut euch alle Versionen an, was hier hätte gelöscht werden sollen.
Nun das Blockly speichern und starten.WICHTIG! Die Versionsnummer gibt euch viele wichtige Infos, bei z.B. (v1.2.3) bedeutet die erste Ziffer (1) das dass Blockly auf der ersten stabilen Version basiert, diese Zahl wird nur geändert, sollte sich grundlegend etwas an dem Blockly und den Funktionen ändern (in diesen Fällen sollte auch die Objektstruktur gelöscht werden!),
Die zweite Ziffer (2) steht für ein zwischen Update mit kleinen Änderungen z.B. neue Funktionen, hier bedeutet eine gerade Zahl (2,4,6...), dass dies eine stabile Version ist, die in der Regel keine Probleme machen sollte, eine ungerade Zahl (1,3,5...), steht für eine Version an der noch gearbeitet wird aber gerne getestet werden kann, hier werden oft kleine Änderungen hinzugefügt, die noch Probleme bereiten könnten,
die dritte und letzte Zahl (3) steht für minimalste Anpassungen bzw. Fehlerbehebung (Fixes) der aktuellen Version.Am Anfang werden euch viele Logeinträge auffallen, diese sind natürlich um für euch selber zu kontrollieren ob alles ordnungsgemäß funktioniert, ebenso aber wichtig um euch bei Problemen helfen zu können.
Nachdem alles sauber läuft werden die Einträge weniger, es werden weiter weiterhin Einträge bei der Intervall Abfrage und bei einem Neustart eingetragen, sowie bei abgelaufenen tokens oder Warnungen wenn diese beim ersten Versuch fehlschlagen (z.B. durch abgelaufen token oder refreshToken), auch wenn sich der Fehler in der Regel selbst reguliert.Sollten euch diese Einträge nicht mehr interessieren oder sogar stören, könnt ihr das Objekt "Log_InfoOutput" auf "false" stellen, welches eben solche Einträge unterdrückt, nun werden nur noch gravierende Fehler in den log geschrieben.
Als Kleinen Tipp am Rande, solltet ihr den Wert von Status zur Kontrolle in einer VIS verwenden, ob das Blockly ordnungsgemäß arbeitet, könnt ihr euch zur Sicherheit ein separates Blockly anlegen, welches das Blockly Skript triggert, und wenn dieses nicht läuft (also auf false steht) den Wert des Objektes "Status" auf "false" aktualisiert.
So seid ihr auf der sicheren Seite, dass tatsächlich alles läuft und der Wert nicht auf "true" steht, sollte das Blockly nicht laufen. (Das Netatmo Blockly kann den Wert nicht mehr selber auf "false" stellen wenn es nicht läuft 😅)Aktualisierungen und neue Versionen werden immer hier im ersten Beitrag gepostet!
Error codes bei einem Fehler aus der API:
1 = unbekannter Fehler.
2 = interner Fehler (Netatmo).
3 = parser error (Verständnis Fehler).
5 = fehlerhafte Parameter.
6 = gerät nicht erreichbar.
7 = Kommando Fehler.
8 = Batterie Level.
14 = beschäftigt.
19 = Modul nicht erreichbar.
23 = nichts zum ändern.
27 = vorübergehend gesperrt.Bei den meisten Server Fehlern, ist die Beschreibung schon sehr aussagekräftig, so dass hier in der Regel schnell erkannt werden kann wo es hackt…
!!! Aktuell muss noch der Token einmal über die website angefordert und manuell in die Objekte eingetragen werden, hier arbeite ich weiterhin an einer lösung.
https://forum.iobroker.net/post/1056032Changelog und vorherige Versionen:
(Update 15.07.2024) Neue Version
STABLE v5.0.4 - !!EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v5.0.4.rarWenn die Version 5.0.0 - 5.0.2 installiert war, muss nichts gelöscht werden.
Ansonsten bitte einmal hier nachschauen:
Infos v5.0.0• Hier sollte das Problem mit den Token behoben sein.
Sagt wie immer gerne Bescheid, sollte euch etwas auffallen! 😊👍
@newpicsel Hi
Bin neu hier und versuchte das Netatmo-Blockly erfolglos z installieren.
Leider bekomme ich immer Fehlermeldungen.
Die Thermostate werden nicht angezeigt.
Alle benötigten Informationen sind eingetragen ID, Secret-ID, User und PW.
Wie kann das behoben werden?
Besten Dank für Eure Rückmeldungen -
-
@newpicsel Hi
Bin neu hier und versuchte das Netatmo-Blockly erfolglos z installieren.
Leider bekomme ich immer Fehlermeldungen.
Die Thermostate werden nicht angezeigt.
Alle benötigten Informationen sind eingetragen ID, Secret-ID, User und PW.
Wie kann das behoben werden?
Besten Dank für Eure RückmeldungenMoin, läuft das Blockly bei euch nun oder wieder?
Bei mir läuft alles problemlos, Blockly bei Problemen am besten eins zwei mal neu starten, sollte normal kaum bis keine Probleme machen, aber wenn sich mal etwas aufhängt, hilft das in der Regel! Sonst mal den Aktualisierungs Intervall hochsetzen, bei mir läuft es super auf 30sec.
Wenn wirklich nichts geht, Blockly komplett löschen und erneut erstellen, in den meisten Fällen, lagen Probleme bei den Zugangsdaten oder es hat ein Neustart geholfen, sollte es dennoch Probleme geben, guck ich es mir gerne nochmal an!
Gruß Peter
-
Moin, läuft das Blockly bei euch nun oder wieder?
Bei mir läuft alles problemlos, Blockly bei Problemen am besten eins zwei mal neu starten, sollte normal kaum bis keine Probleme machen, aber wenn sich mal etwas aufhängt, hilft das in der Regel! Sonst mal den Aktualisierungs Intervall hochsetzen, bei mir läuft es super auf 30sec.
Wenn wirklich nichts geht, Blockly komplett löschen und erneut erstellen, in den meisten Fällen, lagen Probleme bei den Zugangsdaten oder es hat ein Neustart geholfen, sollte es dennoch Probleme geben, guck ich es mir gerne nochmal an!
Gruß Peter
@newpicsel das einzige Problem was ich habe ist das folgende Meldung immer kommt:
-
Moin, läuft das Blockly bei euch nun oder wieder?
Bei mir läuft alles problemlos, Blockly bei Problemen am besten eins zwei mal neu starten, sollte normal kaum bis keine Probleme machen, aber wenn sich mal etwas aufhängt, hilft das in der Regel! Sonst mal den Aktualisierungs Intervall hochsetzen, bei mir läuft es super auf 30sec.
Wenn wirklich nichts geht, Blockly komplett löschen und erneut erstellen, in den meisten Fällen, lagen Probleme bei den Zugangsdaten oder es hat ein Neustart geholfen, sollte es dennoch Probleme geben, guck ich es mir gerne nochmal an!
Gruß Peter
@newpicsel
Danke für deine Rückmeldung. Alle deine Tipps habe ich bereits befolgt und getestet. Ebenso habe ich ein neues System aufgezogen (Raspberry 3 mit Buster) und den iobroker neu installiert mit den notwendigen Adaptern. das gleiche Resultat. Ich wollte eventuelle Altlasten am aktuellen System ausschliessen.
Ich bekomme immer die selbe Fehlermeldung: {"error":{"code":2,"message":"Invalid access token"}}
Hat das mit dem "Token_Request" zu tun? Dort steht bei mir: {"ack":true}, ist das korrekt?Wenn ich auf der Netatmo seite den Curl Befehl in der Konsole eingebe bekomme ich die Werte zurück
(curl -X GET "https://api.netatmo.com/api/homesdata" -H "accept: application/json" -H "Authorization: Bearer ......)Deine Anleitung ist grundsätzlich selbsterklärend (Kompliment), aber ich weiss einfach nicht wo der Hund begraben ist.
Muss am Javascript-Adapter etwas angepasst werden oder ist es eine generelle Einstellung am System die ich noch nicht konfiguriert habe?
Vielleicht hast du noch einen Tipp oder einen Lösungsansatz für dieses Token-Problem.Gruss
-
@newpicsel
Danke für deine Rückmeldung. Alle deine Tipps habe ich bereits befolgt und getestet. Ebenso habe ich ein neues System aufgezogen (Raspberry 3 mit Buster) und den iobroker neu installiert mit den notwendigen Adaptern. das gleiche Resultat. Ich wollte eventuelle Altlasten am aktuellen System ausschliessen.
Ich bekomme immer die selbe Fehlermeldung: {"error":{"code":2,"message":"Invalid access token"}}
Hat das mit dem "Token_Request" zu tun? Dort steht bei mir: {"ack":true}, ist das korrekt?Wenn ich auf der Netatmo seite den Curl Befehl in der Konsole eingebe bekomme ich die Werte zurück
(curl -X GET "https://api.netatmo.com/api/homesdata" -H "accept: application/json" -H "Authorization: Bearer ......)Deine Anleitung ist grundsätzlich selbsterklärend (Kompliment), aber ich weiss einfach nicht wo der Hund begraben ist.
Muss am Javascript-Adapter etwas angepasst werden oder ist es eine generelle Einstellung am System die ich noch nicht konfiguriert habe?
Vielleicht hast du noch einen Tipp oder einen Lösungsansatz für dieses Token-Problem.Gruss
-
@newpicsel das einzige Problem was ich habe ist das folgende Meldung immer kommt:
@helfi9999 sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@newpicsel das einzige Problem was ich habe ist das folgende Meldung immer kommt:
Habe ich vereinzelt oder öfters auch. Ist das überhaupt ein Problem?
-
@helfi9999 sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@newpicsel das einzige Problem was ich habe ist das folgende Meldung immer kommt:
Habe ich vereinzelt oder öfters auch. Ist das überhaupt ein Problem?
-
@newpicsel
Danke für deine Rückmeldung. Alle deine Tipps habe ich bereits befolgt und getestet. Ebenso habe ich ein neues System aufgezogen (Raspberry 3 mit Buster) und den iobroker neu installiert mit den notwendigen Adaptern. das gleiche Resultat. Ich wollte eventuelle Altlasten am aktuellen System ausschliessen.
Ich bekomme immer die selbe Fehlermeldung: {"error":{"code":2,"message":"Invalid access token"}}
Hat das mit dem "Token_Request" zu tun? Dort steht bei mir: {"ack":true}, ist das korrekt?Wenn ich auf der Netatmo seite den Curl Befehl in der Konsole eingebe bekomme ich die Werte zurück
(curl -X GET "https://api.netatmo.com/api/homesdata" -H "accept: application/json" -H "Authorization: Bearer ......)Deine Anleitung ist grundsätzlich selbsterklärend (Kompliment), aber ich weiss einfach nicht wo der Hund begraben ist.
Muss am Javascript-Adapter etwas angepasst werden oder ist es eine generelle Einstellung am System die ich noch nicht konfiguriert habe?
Vielleicht hast du noch einen Tipp oder einen Lösungsansatz für dieses Token-Problem.Gruss
Tatsächlich muss bei dem javascript Adapter etwas eingestellt sein, kontrolliere mal in dem Einstellungen ob ein hacken bei: Kommando "setObjekt", "exec" und "sendToHost" erlauben gesetzt ist.
In dem Objekt "Token_Request" sollte der übermittelte Access Token, der refresh Token, die verwendeten scopes und wann die Token verfallen eingetragen sein, hier stimmt also bereits etwas nicht, weil im Falle eines Fehlers hier der Grund und Fehler selbst eingetragen sein sollte.
Kannst du mir denn kompletten Inhalt dieses Objektes schicken? Vertrauliche Informationen kannst du natürlich durch ein X ersetzen!
Sollte hier nur {"ack":true} eingetragen sein, ist dies definitiv nicht korrekt, hier sollte zumindest eine Rückmeldung mit dem Fehler stehen, sollte die Übermittlung an sich funktionieren, so ist natürlich der Fehler {invalid access token} klar, weil kein Token übermittelt wurde!Gibt es zusätzlich Fehlermeldungen im log?
Für mich scheint es tatsächlich so, dass die Anfrage an sich gar nicht stattfindet, oder nicht verarbeitet werden kann, was entweder an iobroker oder der api bzw. deinem Konto dort liegen könnte…Müssen wir jetzt nach und nach die möglichen Ursachen ausschließen, aber sollten wir hinbekommen! :wink:
-
@newpicsel
Danke für deine Rückmeldung. Alle deine Tipps habe ich bereits befolgt und getestet. Ebenso habe ich ein neues System aufgezogen (Raspberry 3 mit Buster) und den iobroker neu installiert mit den notwendigen Adaptern. das gleiche Resultat. Ich wollte eventuelle Altlasten am aktuellen System ausschliessen.
Ich bekomme immer die selbe Fehlermeldung: {"error":{"code":2,"message":"Invalid access token"}}
Hat das mit dem "Token_Request" zu tun? Dort steht bei mir: {"ack":true}, ist das korrekt?Wenn ich auf der Netatmo seite den Curl Befehl in der Konsole eingebe bekomme ich die Werte zurück
(curl -X GET "https://api.netatmo.com/api/homesdata" -H "accept: application/json" -H "Authorization: Bearer ......)Deine Anleitung ist grundsätzlich selbsterklärend (Kompliment), aber ich weiss einfach nicht wo der Hund begraben ist.
Muss am Javascript-Adapter etwas angepasst werden oder ist es eine generelle Einstellung am System die ich noch nicht konfiguriert habe?
Vielleicht hast du noch einen Tipp oder einen Lösungsansatz für dieses Token-Problem.Gruss
@kpmc said in Stabiles Netatmo Thermostat Blockly (Adapter):
@newpicsel
Wenn ich auf der Netatmo seite den Curl Befehl in der Konsole eingebe bekomme ich die Werte zurück
(curl -X GET "https://api.netatmo.com/api/homesdata" -H "accept: application/json" -H "Authorization: Bearer ......):thinking_face:
Hier stehen dann bei dir aber die Token?
Dann liegt es nicht an der api oder deinem Konto dort, scheinen ja grundsätzlich abrufbar zu sein!
Dann kann es nur an ioBroker liegen, bzw. der Übermittlung oder Verarbeitung!
Eigentlich wird bei jeder Aktion ein Eintrag im log gemacht, starte das Blockly nochmal und schicke mir alle Einträge die damit zusammenhängen könnten, auch ein Screen der Objekte könnte hilfreich sein… -
Moin
Ein Problem ist dieser Fehler tatsächlich nicht, aber dennoch unschön, nehme ich mir die Tage vor und den Fehler beseitigen :blush:
Ich werde diesen dann auch bei den älteren Versionen aktualisieren!@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
Moin
Ich werde diesen dann auch bei den älteren Versionen aktualisieren!
Das wäre sehr löblich von dir! :+1:
-
Tatsächlich muss bei dem javascript Adapter etwas eingestellt sein, kontrolliere mal in dem Einstellungen ob ein hacken bei: Kommando "setObjekt", "exec" und "sendToHost" erlauben gesetzt ist.
In dem Objekt "Token_Request" sollte der übermittelte Access Token, der refresh Token, die verwendeten scopes und wann die Token verfallen eingetragen sein, hier stimmt also bereits etwas nicht, weil im Falle eines Fehlers hier der Grund und Fehler selbst eingetragen sein sollte.
Kannst du mir denn kompletten Inhalt dieses Objektes schicken? Vertrauliche Informationen kannst du natürlich durch ein X ersetzen!
Sollte hier nur {"ack":true} eingetragen sein, ist dies definitiv nicht korrekt, hier sollte zumindest eine Rückmeldung mit dem Fehler stehen, sollte die Übermittlung an sich funktionieren, so ist natürlich der Fehler {invalid access token} klar, weil kein Token übermittelt wurde!Gibt es zusätzlich Fehlermeldungen im log?
Für mich scheint es tatsächlich so, dass die Anfrage an sich gar nicht stattfindet, oder nicht verarbeitet werden kann, was entweder an iobroker oder der api bzw. deinem Konto dort liegen könnte…Müssen wir jetzt nach und nach die möglichen Ursachen ausschließen, aber sollten wir hinbekommen! :wink:
@newpicsel Im Javascipt Adapter habe ich wie beschrieben die Hacken gesetzt.
Ich hatte die Version 1.3.1 auch probiert (alles gelöscht und neu installiert), leider der gleiche Fehler.
Ich kann den Fehler einfach nicht finden. Hatte bereits ein neues System aufgesetzt um jegliche Altlasten auszuschliessen. Immer der gleiche Fehler.
Wie bereits beschrieben erhalte ich mit dem Curl-Befehl (NaPlug) alle Angeben. Token hinterlegt.
(curl -X GET "https://api.netatmo.com/api/homesdata?gateway_types=NAPlug" -H "accept: application/json" -H "Authorization: Bearer xxxxf129bd1dbf955899771db0805acbe8854fexxxx)
Ich denke der Fehler am Netatmo-Konto kann ausgeschlossen werden.Anbei der Auszug aus den Objekten:

Wenn ich den Objektbaum anschaue steht unter "Token_Request" bei "write" "false"
benötige ich evtl. noch zusätzliche Rechte die ich nicht aktiviert habe?Habe auch keine anderen Fehler im Log.
Anbei den Inhalt des Objektes.
0_userdata.0.Eigene_Objekte.Netatmo -
@newpicsel Im Javascipt Adapter habe ich wie beschrieben die Hacken gesetzt.
Ich hatte die Version 1.3.1 auch probiert (alles gelöscht und neu installiert), leider der gleiche Fehler.
Ich kann den Fehler einfach nicht finden. Hatte bereits ein neues System aufgesetzt um jegliche Altlasten auszuschliessen. Immer der gleiche Fehler.
Wie bereits beschrieben erhalte ich mit dem Curl-Befehl (NaPlug) alle Angeben. Token hinterlegt.
(curl -X GET "https://api.netatmo.com/api/homesdata?gateway_types=NAPlug" -H "accept: application/json" -H "Authorization: Bearer xxxxf129bd1dbf955899771db0805acbe8854fexxxx)
Ich denke der Fehler am Netatmo-Konto kann ausgeschlossen werden.Anbei der Auszug aus den Objekten:

Wenn ich den Objektbaum anschaue steht unter "Token_Request" bei "write" "false"
benötige ich evtl. noch zusätzliche Rechte die ich nicht aktiviert habe?Habe auch keine anderen Fehler im Log.
Anbei den Inhalt des Objektes.
0_userdata.0.Eigene_Objekte.Netatmo@kpmc Moin,
Also in den Objekten (Access_Token, Refresh_Token und Token_Request) steht "invalid grand type", das ist gar nicht so schlecht, weil das bedeutet, die Anfrage findet statt, nur stimmt mit den Daten etwas nicht!
Zuerst ist ein Intervall von 0sek nicht so optimal :sweat_smile:
Stelle diesen mal auf 30-60sek…Die Rechte für "Write" sind auch ok, da diese Objekte nur vom System geschrieben werden.
Dein curl Befehl, kannst du fast komplett ignorieren, auf der Website von Netatmo sehen die Befehle anders aus, weil du dort bereits angemeldet bist, von außerhalb jedoch nicht, deshalb muss der Befehl anders aussehen und stellt sich aus deinen Zugangsdaten zusammen!
Aber diesen Befehl kannst du auch komplett ignorieren, weil das Blockly alles automatisch erledigt.
Lediglich deine HomeID kannst du dort hervorragend abgreifen!Wichtig sind deine korrekten Zugangsdaten, und so wie es aussieht, stimmt hier tatsächlich etwas nicht, was oder warum, kann ich schlecht ermitteln, wir können nur gemeinsam die Schritte durchgehen, wo und wie du diese erhalten hast, eventuell können wir so Fehler ausschließen.
Fangen wir mit der HomeID an:
Auf der Website von Netatmo eingeloggt (wichtig du musst eingeloggt sein), scrollst du runter bis auf "GET/homesdata" klickst auf "try it response" dann auf "try it out" und dann auf "execute /homesdata" direkt unter homes steht nun eine ID: das ist deine HomeID.
(Ich kann gerne Bilder zur Erklärung hochladen wenn gewünscht?)Benutzername (Email) und Passwort sollten klar sein, dass sind die, mit denen du dich bei Netatmo anmeldest.
ClientID und ClientSecret, bekommst du indem ebenfalls auf der obigen Website von Netatmo, hier musst du auf dein Benutzernamen klicken und dort auf "My Apps", dort musst du eine App anlegen, hier nur die Pflichtfelder ausfüllen und die App aktivieren.
Diese Daten in den Objekten eintragen und den Rest macht das Blockly automatisch, hier sehr gewissenhaft alle Daten übertragen, mir selber ist es schon passiert und auch mit anderen Nutzern, mit den ich geschrieben habe, haben oft irgendwo eine Zahl beim kopieren vergessen oder ein Fehler beim tippen gemacht, bzw. ein Fehler bei der Beschaffung der Daten gemacht, es hört sich immer doof an, aber ein anderes Problem als fehlerhafte Zugangsdaten, gab es seit der ersten stabilen Version des Blocklys nicht.
Und auch hier sieht es so aus als ob es daran liegt.Ganz WICHTIG das Blockly nach der Eingabe aller Daten neu starten! Fehlermeldungen bis dahin sind normal!
Ich hoffe das konnte helfen, geb bitte kurz Bescheid, sonst schauen wir uns alles noch genauer an! :blush:
EDIT:
Sorry, der Fehler mit dem Intervall auf 0 liegt wohl nicht bei dir, dieser wird beim erzeugen immer auf 0 gesetzt, erst wenn der Status auf True geprüft wird, stellt sich dieser auf 60sek! -
@kpmc Moin,
Also in den Objekten (Access_Token, Refresh_Token und Token_Request) steht "invalid grand type", das ist gar nicht so schlecht, weil das bedeutet, die Anfrage findet statt, nur stimmt mit den Daten etwas nicht!
Zuerst ist ein Intervall von 0sek nicht so optimal :sweat_smile:
Stelle diesen mal auf 30-60sek…Die Rechte für "Write" sind auch ok, da diese Objekte nur vom System geschrieben werden.
Dein curl Befehl, kannst du fast komplett ignorieren, auf der Website von Netatmo sehen die Befehle anders aus, weil du dort bereits angemeldet bist, von außerhalb jedoch nicht, deshalb muss der Befehl anders aussehen und stellt sich aus deinen Zugangsdaten zusammen!
Aber diesen Befehl kannst du auch komplett ignorieren, weil das Blockly alles automatisch erledigt.
Lediglich deine HomeID kannst du dort hervorragend abgreifen!Wichtig sind deine korrekten Zugangsdaten, und so wie es aussieht, stimmt hier tatsächlich etwas nicht, was oder warum, kann ich schlecht ermitteln, wir können nur gemeinsam die Schritte durchgehen, wo und wie du diese erhalten hast, eventuell können wir so Fehler ausschließen.
Fangen wir mit der HomeID an:
Auf der Website von Netatmo eingeloggt (wichtig du musst eingeloggt sein), scrollst du runter bis auf "GET/homesdata" klickst auf "try it response" dann auf "try it out" und dann auf "execute /homesdata" direkt unter homes steht nun eine ID: das ist deine HomeID.
(Ich kann gerne Bilder zur Erklärung hochladen wenn gewünscht?)Benutzername (Email) und Passwort sollten klar sein, dass sind die, mit denen du dich bei Netatmo anmeldest.
ClientID und ClientSecret, bekommst du indem ebenfalls auf der obigen Website von Netatmo, hier musst du auf dein Benutzernamen klicken und dort auf "My Apps", dort musst du eine App anlegen, hier nur die Pflichtfelder ausfüllen und die App aktivieren.
Diese Daten in den Objekten eintragen und den Rest macht das Blockly automatisch, hier sehr gewissenhaft alle Daten übertragen, mir selber ist es schon passiert und auch mit anderen Nutzern, mit den ich geschrieben habe, haben oft irgendwo eine Zahl beim kopieren vergessen oder ein Fehler beim tippen gemacht, bzw. ein Fehler bei der Beschaffung der Daten gemacht, es hört sich immer doof an, aber ein anderes Problem als fehlerhafte Zugangsdaten, gab es seit der ersten stabilen Version des Blocklys nicht.
Und auch hier sieht es so aus als ob es daran liegt.Ganz WICHTIG das Blockly nach der Eingabe aller Daten neu starten! Fehlermeldungen bis dahin sind normal!
Ich hoffe das konnte helfen, geb bitte kurz Bescheid, sonst schauen wir uns alles noch genauer an! :blush:
EDIT:
Sorry, der Fehler mit dem Intervall auf 0 liegt wohl nicht bei dir, dieser wird beim erzeugen immer auf 0 gesetzt, erst wenn der Status auf True geprüft wird, stellt sich dieser auf 60sek!@newpicsel
ich habe den intervall auf 30 sek. gestellt. hat sich noch nichts geändert.Ich habe die Home-ID wie auch nochmals von dir beschrieben ermittelt:

Die gelb eingekreiste Fläche sollte meine Home-ID sein.Dann habe ich die App angelegt:

ID und SecretID -> Copy Paste in dievorgeshenen Werte im ObjektbaumHabt das Blockly mehrmals gestoppt/gestartet und neuinstalliert (Auch der Objektbaum gelöscht)
Immer mit dem gleichen Resultat.Ich zweifele nicht am Blockly, eher das ich die Angaben im Netatmo-Account falsch angelegt habe.
Sollte eigentlich nicht schwer sein.- Einloggen, sehe meine Geräte im Account
- Neue App anlegen "My Apps" -> In meinem Fall "Heizung_Netatmo"
- Pflichtfelder alle ausgefüllt -> data protection officer mail: habe die gleiche Mail genommen wie für das Login bei Netatmo. Ist das falsch?
- ID's in den Objektbaum kopiert.
redirect URI / webhook URI sind leer, muss ich hier was ausfüllen?
Meine Vorgehensweise beim Import vom Blockly:
- deine RAR-Datei heruntergeladen und mit 7-Zip als txt-Datei geöffnet.
- Neues Blockly erstellt -> Import (Copy+Paste). Muss das Blockly in eine spezielle Ordnerstruktur? (Global, Common, etc.)
Den kompletten Vorgang habe ich mehrere Male wiederholt, immer mit dem gleichen Resultat.
-
@newpicsel
ich habe den intervall auf 30 sek. gestellt. hat sich noch nichts geändert.Ich habe die Home-ID wie auch nochmals von dir beschrieben ermittelt:

Die gelb eingekreiste Fläche sollte meine Home-ID sein.Dann habe ich die App angelegt:

ID und SecretID -> Copy Paste in dievorgeshenen Werte im ObjektbaumHabt das Blockly mehrmals gestoppt/gestartet und neuinstalliert (Auch der Objektbaum gelöscht)
Immer mit dem gleichen Resultat.Ich zweifele nicht am Blockly, eher das ich die Angaben im Netatmo-Account falsch angelegt habe.
Sollte eigentlich nicht schwer sein.- Einloggen, sehe meine Geräte im Account
- Neue App anlegen "My Apps" -> In meinem Fall "Heizung_Netatmo"
- Pflichtfelder alle ausgefüllt -> data protection officer mail: habe die gleiche Mail genommen wie für das Login bei Netatmo. Ist das falsch?
- ID's in den Objektbaum kopiert.
redirect URI / webhook URI sind leer, muss ich hier was ausfüllen?
Meine Vorgehensweise beim Import vom Blockly:
- deine RAR-Datei heruntergeladen und mit 7-Zip als txt-Datei geöffnet.
- Neues Blockly erstellt -> Import (Copy+Paste). Muss das Blockly in eine spezielle Ordnerstruktur? (Global, Common, etc.)
Den kompletten Vorgang habe ich mehrere Male wiederholt, immer mit dem gleichen Resultat.
Scheint soweit alles ok!
Blockly in Common erstellen!Mir fällst sonst auch nichts mehr ein, die Abfrage passt, auch wenn es nervt und man kurz davor ist alles hinzuschmeißen, es muss an den Zugangsdaten liegen :(
Beim Copy/Paste was vergessen oder Zuviel markiert? Ein Leerzeichen könnte schon reichen oder ein Gänsefüßchen mit kopiert, ich hatte mir die Client Daten in eine TXT kopiert woraus ich sie immer gezogen habe beim Testen und dort schon eine Zahl vergessen, ich bin fast verrückt geworden!Beim Benutzernamen, hast deine Emailadresse genommen? Groß und Kleinschreibung überall korrekt?
Es passieren manchmal die unerklärlichsten Fehler, jemand hatte mal ein Leerzeichen in der Emailadresse, sowas fällt nicht immer sofort auf…Einzige Möglichkeit um wirklich etwas mit dem Blockly auszuschließen, den Energie Adapter installieren und testen ob es mit diesem geht?
Es kann aber eigentlich nicht an Iobrocker, dem Blockly oder ähnliches liegen, es wird ja versucht die token abzufragen, die Error Nachricht, welche zB. In dem Objekt Token_Request hinterlegt ist, kommt direkt von Netatmo und nicht vom Blockly oder iobroker etc.
also werden Anfragen gesendet und auch antworten von Netatmo empfangen, Netatmo antwortet aber, dass etwas mit den Zugangsdaten nicht stimmt was da nicht stimmt ist sehr schwer zu ermitteln, wenn dies nicht sein eigenes Konto ist :dizzy_face: -
Scheint soweit alles ok!
Blockly in Common erstellen!Mir fällst sonst auch nichts mehr ein, die Abfrage passt, auch wenn es nervt und man kurz davor ist alles hinzuschmeißen, es muss an den Zugangsdaten liegen :(
Beim Copy/Paste was vergessen oder Zuviel markiert? Ein Leerzeichen könnte schon reichen oder ein Gänsefüßchen mit kopiert, ich hatte mir die Client Daten in eine TXT kopiert woraus ich sie immer gezogen habe beim Testen und dort schon eine Zahl vergessen, ich bin fast verrückt geworden!Beim Benutzernamen, hast deine Emailadresse genommen? Groß und Kleinschreibung überall korrekt?
Es passieren manchmal die unerklärlichsten Fehler, jemand hatte mal ein Leerzeichen in der Emailadresse, sowas fällt nicht immer sofort auf…Einzige Möglichkeit um wirklich etwas mit dem Blockly auszuschließen, den Energie Adapter installieren und testen ob es mit diesem geht?
Es kann aber eigentlich nicht an Iobrocker, dem Blockly oder ähnliches liegen, es wird ja versucht die token abzufragen, die Error Nachricht, welche zB. In dem Objekt Token_Request hinterlegt ist, kommt direkt von Netatmo und nicht vom Blockly oder iobroker etc.
also werden Anfragen gesendet und auch antworten von Netatmo empfangen, Netatmo antwortet aber, dass etwas mit den Zugangsdaten nicht stimmt was da nicht stimmt ist sehr schwer zu ermitteln, wenn dies nicht sein eigenes Konto ist :dizzy_face:(Update 20.09.2021) v1.4.1 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v1.4.1.rar
(Wenn möglich den kompletten Netatmo Ordner löschen (muss nicht sofort passieren), gut wäre zusätzlich den Eigene_Objekte Ordner zu löschen, hier müssen keine unterverzeichnisse mitgelöscht werden, wenn der Netatmo Ordner bereits seperat gelöscht wurde!)
Minimale Anpassungen, wer die v1.3.1 oder v1.4.0 laufen hat, muss diese Version nicht zwingend installieren, kleine fehlerbehebungen und optische anpassung, der Ordner "Netatmo" selber und somit dessen ID gibt nun keinen Wert "true/false" für den status des „Adapters“ mehr aus!... -
@newpicsel
ich habe den intervall auf 30 sek. gestellt. hat sich noch nichts geändert.Ich habe die Home-ID wie auch nochmals von dir beschrieben ermittelt:

Die gelb eingekreiste Fläche sollte meine Home-ID sein.Dann habe ich die App angelegt:

ID und SecretID -> Copy Paste in dievorgeshenen Werte im ObjektbaumHabt das Blockly mehrmals gestoppt/gestartet und neuinstalliert (Auch der Objektbaum gelöscht)
Immer mit dem gleichen Resultat.Ich zweifele nicht am Blockly, eher das ich die Angaben im Netatmo-Account falsch angelegt habe.
Sollte eigentlich nicht schwer sein.- Einloggen, sehe meine Geräte im Account
- Neue App anlegen "My Apps" -> In meinem Fall "Heizung_Netatmo"
- Pflichtfelder alle ausgefüllt -> data protection officer mail: habe die gleiche Mail genommen wie für das Login bei Netatmo. Ist das falsch?
- ID's in den Objektbaum kopiert.
redirect URI / webhook URI sind leer, muss ich hier was ausfüllen?
Meine Vorgehensweise beim Import vom Blockly:
- deine RAR-Datei heruntergeladen und mit 7-Zip als txt-Datei geöffnet.
- Neues Blockly erstellt -> Import (Copy+Paste). Muss das Blockly in eine spezielle Ordnerstruktur? (Global, Common, etc.)
Den kompletten Vorgang habe ich mehrere Male wiederholt, immer mit dem gleichen Resultat.
Moin an alle Smart Home Freunde
!!Wichtig!!
Es kann tatsächlich einen Fehler bei der Tokenabfrage geben! Hier werden die Token nicht richtig aktualisiert, warum oder wie der Fehler zustande kommt, weiß ich noch nicht genau, ich hatte dies beim Testen einer neuen Version, dieser hat sich jedoch schneller behoben als ihn rekonstruieren konnte!
Ich bin dran und werde den Fehler beheben!
Bis dahin bitte keine Aktualisierung der Blockly Version durchführen!!!
Der Fehler tritt nur auf, wenn Token komplett neu angefordert werden, solange ein refresh_token vorhanden ist, wird wohl alles normal weiter laufen.Dies liegt wohl aber an einer Änderung oder Update von ioBroker bzw. des JavaScript Adapters, deshalb wird so schnell wie möglich ein Blockly mit der Version 1.5.x erscheinen, worauf dann alle Updaten sollten!
Weitere Informationen folgen…
Danke und schöne Grüße
Newpicsel