NEWS
Stabiles Netatmo Thermostat Blockly (Adapter)
-
Hallo,
Ich habe seit einigen Tagen auch das Netatmo Smart Thermostat NTH01-DE-EC
Ich bekomme das Skript nicht zum starten, also ohne Fehler jedenfalls......
Bei der HomeID habe ich zweifel ob ich die richtige neme
{ body:{ homes:[ { id:"6155xxxxxxxxxxxxxxxxxx" **( Das ist doch die Home ID oder ?)** name:"xxxxx" **( undwichtig oder ? )** altitude:42Hat jemand ein Tipp wo ich was falsch eingetragen habe oder liegt es an was anderem?
mfg
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
"error":"invalid_client"
Check hier mal deine App,
https://dev.netatmo.com/myaccount/so muss es aussehen:

-
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! 😊👍
(Update 03.10.2021) v2.4.2 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.2.rarSorry, hab leider ein weiteren kleinen Fehler entdeckt...
Wenn die Version 2.2.0 oder bis 2.4.1 installiert war, muss nichts gelöscht werden!• behebt einen Fehler der die Erreichbarkeit von Räumen sowie Geräten immer auf "true" anzeigt, auch wenn es nicht so wäre…
Sorry nochmal, jetzt sollte wirklich gut sein! :man-facepalming:
-
-
Moin, Home ID sollte passen wenn du angemeldet warst und Try it war das glaub ich gedrückt hast, ansonsten stehen da nur Beispiele 😅
Hast du das Blockly neu gestartet nachdem du die Zugangsdaten eingegeben hast?
Im log steht „invalid_client“, eine App hast du auf der Seite von Netatmo angelegt und die ClientID und den ClientSecret in die Objekte eingetragen?
Als erstes würde ich die Zugangsdaten alle noch einmal kontrollieren und Blockly neu starten, sollte das nicht helfen, poste mal den log ab Start des Blocklys und schaue was in dem Objekt "token_request" steht, sollte dort ein Token und refresh Token drin stehen, schaue was in dem Objekt "access_token" und "refresh_token" steht, sollte in den drei Objekten keine Token stehen, sollten normalerweise die Fehler angegeben sein, poste diese nochmal hier, schaue auch was in den Objekten "home_data" und "home_status" steht, diese sollten entweder so aussehen wie das Try it Ergebnis auf der Netatmo Website oder es sollten auch Fehler drin stehen, poste diese ebenfalls.
Sollte in allen Objekten der gleiche Fehler stehen, reicht natürlich einer…Und dann schauen wir weiter…
PS: ja name ist erstmal unwichtig, sollte aber mit dem "Home" Namen in deiner App übereinstimmen.
@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
Moin, Home ID sollte passen wenn du angemeldet warst und Try it war das glaub ich gedrückt hast, ansonsten stehen da nur Beispiele 😅
Jep, da stehten ja auch daten die stimmen wie wohnort und wie ich das Thermostat benant habe
Hast du das Blockly neu gestartet nachdem du die Zugangsdaten eingegeben hast?
Yes Sir !
Im log steht „invalid_client“, eine App hast du auf der Seite von Netatmo angelegt und die ClientID und den ClientSecret in die Objekte eingetragen?
Auch gemacht !
Als erstes würde ich die Zugangsdaten alle noch einmal kontrollieren und Blockly neu starten, sollte das nicht helfen, poste mal den log ab Start des Blocklys
Das log ist von da an !
ich kann das aber gerne noch mal machen wenn Sie das wollen !und schaue was in dem Objekt "token_request" steht, sollte dort ein Token und refresh Token drin stehen, schaue was in dem Objekt
{"error":"invalid_client"}
"access_token" und "refresh_token" steht, sollte in den drei Objekten keine Token stehen, sollten normalerweise die Fehler angegeben sein,
{"error":"invalid_client"}
bei dem anderen auch...
poste diese nochmal hier, schaue auch was in den Objekten "home_data" und "home_status" steht, diese sollten entweder so aussehen wie das Try it Ergebnis auf der Netatmo Website oder es sollten auch Fehler drin stehen, poste diese ebenfalls.
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
Sollte in allen Objekten der gleiche Fehler stehen, reicht natürlich einer…
Und dann schauen wir weiter…
PS: ja name ist erstmal unwichtig, sollte aber mit dem "Home" Namen in deiner App übereinstimmen.
macht er ja ;)
-
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
NTH01-DE-EC
Ich sehe grad, dass ist das Thermostat um den „Boiler“ selber zu steuern, so einen besitze ich selber nicht und weiß auch nicht, ob ein anderer Nutzer so einen je eingebunden hat, ich schaue auch noch mal ob hier ein anderer scope benötigt wird, könntest du mir deine "Home_data" und "Home_status" JSON zur Verfügung stellen, sollte der nicht 100 prozentig eingebunden werden, dann kann ich diesen definitiv mit einbinden falls das nicht schon so klappt, weiß nicht genau wie der Aufbau aussieht, private Daten wie Token und Home id kannst du natürlich vorher durch xxx ersetzen…
Danke dir 😊 aber das Blockly sollte so normal auch starten, dass der Token angefordert wird und eingetragen wird.
@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
NTH01-DE-EC
Ich sehe grad, dass ist das Thermostat um den „Boiler“ selber zu steuern,
Ja, genau sowas ist das ;)
könntest du mir deine "Home_data" und "Home_status" JSON zur Verfügung stellen, sollte der nicht 100 prozentig eingebunden werden, dann kann ich diesen definitiv mit einbinden falls das nicht schon so klappt, weiß nicht genau wie der Aufbau aussieht, private Daten wie Token und Home id kannst du natürlich vorher durch xxx ersetzen…
ich bin mir hie rnicht ganz sicher weche daten du wilst, kannst sie gerne haben aber in den daten steht ebend nur
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
mfg
-
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
"error":"invalid_client"
Check hier mal deine App,
https://dev.netatmo.com/myaccount/so muss es aussehen:

@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
"error":"invalid_client"
Check hier mal deine App,
https://dev.netatmo.com/myaccount/so muss es aussehen:

ja, sieht auch so aus

ich kann dir auch gerne die zugangsdaten via PM schicken also email und PW dann können sie gerne Selber mal schauen wie das da aussieht wenn das helfen tut.
das PW kann ich ja dan ändern wenn die sache dann Rennt ;)
mfg
-
@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
"error":"invalid_client"
Check hier mal deine App,
https://dev.netatmo.com/myaccount/so muss es aussehen:

ja, sieht auch so aus

ich kann dir auch gerne die zugangsdaten via PM schicken also email und PW dann können sie gerne Selber mal schauen wie das da aussieht wenn das helfen tut.
das PW kann ich ja dan ändern wenn die sache dann Rennt ;)
mfg
-
@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@digi-bit Moin 😊
Kannst ruhig du sagen!Scheint wirklich alles soweit ok… 🤔
PS: Die Tatsache, dass du ein Wandthermostat hast spielt keine Rolle, habe gestern noch mit @bubus geschrieben, er hat auch eins und da läuft alles normal…
Dann weiss ich auch nicht was ich falsch mache :anguished:
mfg
-
@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
@digi-bit said in Stabiles Netatmo Thermostat Blockly (Adapter):
"error":"invalid_client"
Check hier mal deine App,
https://dev.netatmo.com/myaccount/so muss es aussehen:

ja, sieht auch so aus

ich kann dir auch gerne die zugangsdaten via PM schicken also email und PW dann können sie gerne Selber mal schauen wie das da aussieht wenn das helfen tut.
das PW kann ich ja dan ändern wenn die sache dann Rennt ;)
mfg
Die Tatsache, dass du ein Wandthermostat hast spielt keine Rolle, habe gestern noch mit @bubus geschrieben, er hat auch eins und da läuft alles normal…
Der Fehler „400 Bad Request“ kann vorkommen, wenn etwas falsch formatiert ist, was durchaus schon sein kann, wenn irgendwo ein Leerzeichen reingerutscht ist, kann aber auch noch vom starten ohne Zugangsdaten zurückgeblieben sein, der Fehler „invalid_client“ kann ebenfalls auf Fehler in der Eingabe der Daten zurückzuführen sein, kann aber auch vorkommen, wenn der Server nicht erreichbar ist oder die App nicht läuft bzw. die client Daten fehlerhaft sind.
Wenn definitiv alles stimmt, kann ich nicht zu 100% ausschließen das dass Blockly irgendwelche Daten nicht richtig übernimmt, kann ich mir dann vorstellen, wenn irgend ein html Fehler in den „access_token“ oder dem „refresh_token“ geschrieben wird, denn hier wird auf „undefiniert oder ein error geprüft, wenn das Blockly denkt, hier stehen plausible Daten, verwendet es diese, auch wenn sie nicht stimmen! 🤔 werde hier noch eine zusätzliche Abfrage einbauen, damit auch dies nicht vorkommen kann!
Deshalb nochmal die Frage auch an @kpmc, was genau steht in den Objekten "access_token" und "refresh_token"?
-
Die Tatsache, dass du ein Wandthermostat hast spielt keine Rolle, habe gestern noch mit @bubus geschrieben, er hat auch eins und da läuft alles normal…
Der Fehler „400 Bad Request“ kann vorkommen, wenn etwas falsch formatiert ist, was durchaus schon sein kann, wenn irgendwo ein Leerzeichen reingerutscht ist, kann aber auch noch vom starten ohne Zugangsdaten zurückgeblieben sein, der Fehler „invalid_client“ kann ebenfalls auf Fehler in der Eingabe der Daten zurückzuführen sein, kann aber auch vorkommen, wenn der Server nicht erreichbar ist oder die App nicht läuft bzw. die client Daten fehlerhaft sind.
Wenn definitiv alles stimmt, kann ich nicht zu 100% ausschließen das dass Blockly irgendwelche Daten nicht richtig übernimmt, kann ich mir dann vorstellen, wenn irgend ein html Fehler in den „access_token“ oder dem „refresh_token“ geschrieben wird, denn hier wird auf „undefiniert oder ein error geprüft, wenn das Blockly denkt, hier stehen plausible Daten, verwendet es diese, auch wenn sie nicht stimmen! 🤔 werde hier noch eine zusätzliche Abfrage einbauen, damit auch dies nicht vorkommen kann!
Deshalb nochmal die Frage auch an @kpmc, was genau steht in den Objekten "access_token" und "refresh_token"?
ok jetzt geht es mit deiner Hilfe, ich danke nochmals !
Und nun weiste auch was man so alles falsch machen kann :angel:
- falscher editor ( proton ist ganz schlecht zum öffnen der TXT )
- daten nicht mit den "stift öffnen " :dizzy_face:
mfg
-
Richtig, hier sind ein paar unglückliche Fehler aufeinander getroffen.
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 😊👍
Außerdem kann das ö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 führen, 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!
Gebt gerne immer Bescheid sollte etwas nicht funktionieren oder wenn ihr fragen, Ideen oder Wünsche habt…
-
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! 😊👍
(Update 05.10.2021) v2.4.3 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.3.rarWenn die Version 2.2.0 oder bis 2.4.2 installiert war, muss "nichts" gelöscht werden!
*wäre gut wenn trotzdem einmal das Objekt "Version" gelöscht werden könnte.• Fügt auf Anfrage eines Nutzers, die Option hinzu, dass die Info Outputs im log beim Intervall Abruf abgestellt werden können.
Hierfür steht nun ein Objekt "Log_InfoOutput" zur Verfügung, welches auf true/false umgestellt werden kann, wichtige Fehler werden weiterhin in den Log geschrieben! -
-
(Update 05.10.2021) v2.4.3 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.3.rarWenn die Version 2.2.0 oder bis 2.4.2 installiert war, muss "nichts" gelöscht werden!
*wäre gut wenn trotzdem einmal das Objekt "Version" gelöscht werden könnte.• Fügt auf Anfrage eines Nutzers, die Option hinzu, dass die Info Outputs im log beim Intervall Abruf abgestellt werden können.
Hierfür steht nun ein Objekt "Log_InfoOutput" zur Verfügung, welches auf true/false umgestellt werden kann, wichtige Fehler werden weiterhin in den Log geschrieben!@newpicsel sagte in Stabiles Netatmo Thermostat Blockly (Adapter):
(Update 05.10.2021) Neue Version
STABLE v2.4.3 - !!EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.3.rarWenn die Version 2.2.0 oder bis 2.4.2 installiert war, muss "nichts" gelöscht werden!
*wäre gut wenn trotzdem einmal das Objekt "Version" gelöscht werden könnte.• Fügt auf Anfrage eines Nutzers, die Option hinzu, dass die Info Outputs im log beim Intervall Abruf abgestellt werden können.
Hierfür steht nun ein Objekt "Log_InfoOutput" zur Verfügung, welches auf true/false umgestellt werden kann, wichtige Fehler werden weiterhin in den Log geschrieben!Hi,
Her damit gleich mal testen ;)
mfg
-
Moin Freunde,
Momentan kommt es wohl häufiger zu Problemen des Netatmo Servers, welcher teilweise nicht oder nur teilweise erreichbar ist, die API oder dadurch die eigene Bridge nicht erreichbar ist, gelegentlich ist dadurch sogar die Netatmo App nicht erreichbar oder kann nicht auf eure Bridge zugreifen!
Dies hat nichts mit dem Blockly zutun (eventuell Überlastung Wartungs oder Umstellungsarbeiten), allerdings sind die Fehler, die das Blockly ausgibt nicht immer klar oder nur schwer zu verstehen, ich arbeite gerade daran, die Fehler anzupassen, so soll es in Zukunft einfacher sein zu verstehen wo genau jetzt ein Fehler vorliegt und gerade bei Problemen des Netatmo Servers selbst dies klar erkennbar sein und wenn möglich einen Grund ausgeben (z.B. Fehler 503 Service Temporarily Unavailable) welcher von Server selbst zurückgegeben wird.
Solche Fehler verarbeitet das Blockly momentan nicht korrekt und gibt Fehler aus, die mit den Zugangsdaten zusammenhängen können, was aber nicht der Fall ist…
Gebt gerne Bescheid sollte etwas nicht klar sein!
-
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! 😊👍
(Update 16.10.2021) v2.4.4 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.4.rarWenn die Version 2.4.3 installiert war, muss nichts gelöscht werden!
Ich hatte seit dem keine Probleme mehr und konnte es so nicht real testen, Blockly läuft aber stabil und sollte keine Probleme machen.
• verbessert im Grunde nur den log bzw. werden Server Fehler besser erkannt und nicht als fehlerhafte Zugangsdaten angesehen!
Sollte euch etwas auffallen, bitte Bescheid geben…
-
-
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! 😊👍
(Benötigt ihr ein Button um in jedem Raum sofort zum regulären Heizplan zurückkehren zu können? Gebt gerne Bescheid, dann füge ich diesen gerne ein!)
Hallo das Script ist super. Es klappt soweit alles.
Aber die Idee mit dem Button für jeden Raum wäre super :
Beispiel:Dann könnte ich den Netatmo Adapter komplett löschen
Gruss helfi
-
-
Ich hätte einen Verbesserungsvorschlag:
Es läuft ein Heizungsplan. Ich verändere die Temperatur (weil der Holzofen befeuert wird) in einem Zimmer manuell auf eine niedrigere Temperatur für eine bestimmte Dauer. Es wird ein Fenster geöffnet, die Temperatur wird abgesenkt. Das Fenster wird geschlossen, und die Temperatur kehrt zum Heizungsplan zurück und nicht auf die manuell eingestellte Temperatur für die von mir gewünschte Dauer.Ich hoffe, es ist verständlich.
Kann man da was machen?
-
Ich hätte einen Verbesserungsvorschlag:
Es läuft ein Heizungsplan. Ich verändere die Temperatur (weil der Holzofen befeuert wird) in einem Zimmer manuell auf eine niedrigere Temperatur für eine bestimmte Dauer. Es wird ein Fenster geöffnet, die Temperatur wird abgesenkt. Das Fenster wird geschlossen, und die Temperatur kehrt zum Heizungsplan zurück und nicht auf die manuell eingestellte Temperatur für die von mir gewünschte Dauer.Ich hoffe, es ist verständlich.
Kann man da was machen?
Moin und sorry für die späte Antwort, ich bekomme keine Mitteilung oder Markierung bei neuem Post, muss das mal kontrollieren…
Wenn momentan ein Fenster geschlossen wird, geht es direkt zum Heizplan, die zuvor (vor dem öffnen) eingestellte Temperatur und haltezeit nun fortzusetzen, ist nicht so einfach wie man denkt, da hier alles über die Server Zeit von Netatmo läuft 😅 und ziemlich umständlich berechnet werden muss, aber ich schaue mal, ob ich optional etwas hinzufügen kann 👍
-
(Benötigt ihr ein Button um in jedem Raum sofort zum regulären Heizplan zurückkehren zu können? Gebt gerne Bescheid, dann füge ich diesen gerne ein!)
Hallo das Script ist super. Es klappt soweit alles.
Aber die Idee mit dem Button für jeden Raum wäre super :
Beispiel:Dann könnte ich den Netatmo Adapter komplett löschen
Gruss helfi
Moin @helfi9999 😊
Auch dir sorry für die späte Antwort! 🙈
Natürlich füge ich gleich hinzu, wird ein Button in jedem Raum, der einfach mit True angesteuert werden kann. 👍
-
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! 😊👍
(Update 06.04.2022) v2.4.6 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.6.rarWenn die Version 2.4.3 oder höher installiert war, muss nichts gelöscht werden!
• Fügt einen Button in jedem Raum hinzu, mit dem der jeweilige Raum zum Heizplan zurückkehrt. (Mit true ansteuern)
• Fügt die Batterie Kapazität in % hinzu (nur eine Schätzung, da werte der API leider sehr ungenau und teilweise von voll auf leer springen 🤷♂️)
-
-
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! 😊👍
(Update 13.04.2022) v2.4.8 - !!NICHT EMPFOHLEN!!
Netatmo_Thermostat_Blockly_byNewpicsel_v2.4.8.rarWenn die Version 2.4.3 oder höher installiert war, muss nichts gelöscht werden!
• Fügt auf anfrage ein Objekt in den (Home) Ordner hinzu (Heat_Power), welches angibt ob geheizt wird oder nicht (true/false). (z.B. für eine VIS übersicht praktisch)
Wie immer, sollte euch etwas auffallen, bitte Bescheid geben 😊👍
-
