NEWS
Test Adapter Tado v0.3.0-x (PreRelease)
-
@basti81
Die Version gibt es nur über GitHub. -
@thomas-braun das war es. Danke dir
-
Version 0.3.0 launched on iobroker latest (beta) repository
-
ich habe die gleichen error Meldungen.
Beobachtet habe ich, dass es mit dem Aktualisierungsintervall zu tun haben muss.
Wenn ich den Aktualisierungsintervall auf 30s habe, dann kommen diese errors sehr häufig.
Und zwar immer dann, wenn genau zu dem Zeitpunkt des Aktualisierungsintervalls die API angesprochen wird und gleichzeitig ein Thermostat getriggert wird.
Wenn ich das Aktualisierungsintervall z.B. auf 300 s einstelle, kommen die errors deutlich seltener.
Beispiel: Aktualisierungsintervall 300 s
Heute früh um 5 Uhr hat mein Skript alle 9 Thermostate problemlos getriggert.
Um 5:04 Uhr wurden nochmal 3 Thermostate getriggert, weil das Fenster offen war und dabei sind die errors entstanden.
Meine 9 Thermostate werden im sekundentakt über ein Skript angesprochen. Hat seither super funktioniert. Ich nutze die aktuellste Adapter Version 0.3.....(22244) Request failed with status code 422 error at processTicksAndRejections (internal/process/task_queues.js:84:21) error at endReadableNT (_stream_readable.js:1241:12) error at IncomingMessage.EventEmitter.emit (domain.js:483:12) error at IncomingMessage.emit (events.js:326:22) error at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:260:11) error at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12) error at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15) error (22244) Error: Request failed with status code 422 error (22244) unhandled promise rejection: Request failed with status code 422 error (22244) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
-
@k_o_bold
du kannst mal die Version verwenden
DrozmotiX/ioBroker.tado#87d98e9490feee5d2f1bfdd8046c80182e3285fbDa ist nun eine Funktion eingebaut, die zeitgleiche Requests verhindert wenn es keine GET Request sind.
Am besten ein paar Mal die Fenster auf und zu
Im Log sollte man dann sehen, dass die Calls serialisiert werden. -
@hglab ,
der Adapter schnurrt ja wieder wie ein Kätzchen ;-).
Er läuft wieder fehlerfrei und man sieht im log, dass manche Befehle leicht verzögert abgesetzt werden.
Besten Dank für deine schnelle Unterstützung. -
@k_o_bold
das klingt gut!
Kannst du mir bitte ein Log posten auf dem man diese Logik sieht. Nur damit ich sehe ob es so funkt wie ich es mir gedacht habe :-).
Danke! -
@hglab ,
nach etwas ausgiebigerem Test gibt es wohl doch noch ein Problem...
Im Vergleich zu vorher kommt jetzt nur noch ein error und der Adapter startet neu.tado.0 2021-10-08 07:28:54.247 error (20483) Issue at setZoneOverlay: 'Error: Request failed with status code 422'. Based on config {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedAp tado.0 2021-10-08 07:28:53.357 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '6' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 07:28:53.356 info (20483) Temperature changed for room '6' in home '421159' to '22' tado.0 2021-10-08 07:28:45.724 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '4' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":5}},"termination":{"typeSkillBasedApp":"MANUAL","durationInS tado.0 2021-10-08 07:28:45.724 info (20483) Temperature changed for room '4' in home '421159' to '5' tado.0 2021-10-08 07:28:38.342 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '11' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":18}},"termination":{"typeSkillBasedApp":"TADO_MODE","durati tado.0 2021-10-08 07:28:38.342 info (20483) Temperature changed for room '11' in home '421159' to '18' tado.0 2021-10-08 07:28:37.355 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '10' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"TADO_MODE","durati tado.0 2021-10-08 07:28:37.354 info (20483) Temperature changed for room '10' in home '421159' to '21' tado.0 2021-10-08 07:28:36.343 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '9' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":19}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 07:28:36.343 info (20483) Temperature changed for room '9' in home '421159' to '19' tado.0 2021-10-08 07:28:35.340 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '8' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 07:28:35.340 info (20483) Temperature changed for room '8' in home '421159' to '22' tado.0 2021-10-08 07:28:34.341 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '7' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 07:28:34.341 info (20483) Temperature changed for room '7' in home '421159' to '21' tado.0 2021-10-08 07:28:32.373 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '4' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":19}},"termination":{"typeSkillBasedApp":"MANUAL","durationIn tado.0 2021-10-08 07:28:32.373 info (20483) Temperature changed for room '4' in home '421159' to '19' tado.0 2021-10-08 07:28:31.344 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '3' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 07:28:31.343 info (20483) Temperature changed for room '3' in home '421159' to '22' tado.0 2021-10-08 07:28:30.359 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '2' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":18}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 07:28:30.358 info (20483) Temperature changed for room '2' in home '421159' to '18' scenes.0 2021-10-08 07:28:29.542 info (1205) State value to set for "scene.0.0_Szene_Heizplan_Tag" has to be type "boolean" but received type "string" tado.0 2021-10-08 07:28:29.358 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '1' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":23}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 07:28:29.357 info (20483) Temperature changed for room '1' in home '421159' to '23'
-
@k_o_bold sagte in Test Adapter Tado v0.3.0-x (PreRelease):
Meine 9 Thermostate werden im sekundentakt über ein Skript angesprochen.
Ist vielleicht auch etwas häufig. Warum spricht man die Heizung sekündlich an?
-
Ist vielleicht auch etwas häufig. Warum spricht man die Heizung sekündlich an?
Ich denke auch, dass man da an den Scripts was machen sollte. Ich denke das hier wirklich schon der Tado-Server auf DoS schaltet. Im Adapter das zu vermeiden ist natürlich auch irgendwie möglich, aber schon recht kompliziert. Den 2 Calls hintereinander innerhalb von 1 bis 2 Sekunden ist wohl in Ordnung, wenn es dann aber 10 Calls sind mit jeweils einer Sekunde dann nicht mehr...
Was nun im Adapter abgefangen ist, dass immer nur EIN PUT/POST/DELETE zugleich gemacht werden kann. GET können weiterhin parallel gemacht werden.Um nochmals sicher zu gehen! Du nutzt die Insgtallation über:
DrozmotiX/ioBroker.tado#87d98e9490feee5d2f1bfdd8046c80182e3285fb
-
@hglab ,
ich habe jetzt eine Verzögerung von 5 s pro Thermostat definiert. ( 5 s Takt ).
Ich nutze die von dir empfohlene Version und habe sie so wie du im Screenshot dargestellt installiert.tado.0 2021-10-08 08:12:26.386 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '7' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":5}},"termination":{"typeSkillBasedApp":"TADO_MODE","duration tado.0 2021-10-08 08:12:26.386 info (20483) Temperature changed for room '7' in home '421159' to '5' tado.0 2021-10-08 08:12:25.229 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '11' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":18}},"termination":{"typeSkillBasedApp":"TADO_MODE","durati tado.0 2021-10-08 08:12:25.229 info (20483) Temperature changed for room '11' in home '421159' to '18' tado.0 2021-10-08 08:12:20.225 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '10' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"TADO_MODE","durati tado.0 2021-10-08 08:12:20.224 info (20483) Temperature changed for room '10' in home '421159' to '21' tado.0 2021-10-08 08:12:15.227 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '9' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":19}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 08:12:15.227 info (20483) Temperature changed for room '9' in home '421159' to '19' tado.0 2021-10-08 08:12:10.224 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '8' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 08:12:10.223 info (20483) Temperature changed for room '8' in home '421159' to '22' tado.0 2021-10-08 08:12:05.206 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '7' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 08:12:05.206 info (20483) Temperature changed for room '7' in home '421159' to '21' tado.0 2021-10-08 08:12:01.118 error (20483) Issue at setZoneOverlay: 'Error: Request failed with status code 422'. Based on config {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedAp tado.0 2021-10-08 08:12:00.223 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '6' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 08:12:00.222 info (20483) Temperature changed for room '6' in home '421159' to '22' tado.0 2021-10-08 08:11:56.103 error (20483) Issue at setZoneOverlay: 'Error: Request failed with status code 422'. Based on config {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":19}},"termination":{"typeSkillBasedAp tado.0 2021-10-08 08:11:55.221 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '4' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":19}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 08:11:55.220 info (20483) Temperature changed for room '4' in home '421159' to '19' tado.0 2021-10-08 08:11:51.102 error (20483) Issue at setZoneOverlay: 'Error: Request failed with status code 422'. Based on config {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedAp tado.0 2021-10-08 08:11:50.216 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '3' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 08:11:50.215 info (20483) Temperature changed for room '3' in home '421159' to '22' tado.0 2021-10-08 08:11:45.218 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '2' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":18}},"termination":{"typeSkillBasedApp":"TADO_MODE","duratio tado.0 2021-10-08 08:11:45.217 info (20483) Temperature changed for room '2' in home '421159' to '18' scenes.0 2021-10-08 08:11:40.404 info (1205) State value to set for "scene.0.0_Szene_Heizplan_Tag" has to be type "boolean" but received type "string" tado.0 2021-10-08 08:11:40.205 info (20483) Call API 'ZoneOverlay' for home '421159' and zone '1' with body {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":23}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","d tado.0 2021-10-08 08:11:40.205 info (20483) Temperature changed for room '1' in home '421159' to '23'
-
weil es schon mal funktioniert hat. Ich habe zwei Heizpläne "home" / "away" , diese werden über den Scene Adapter ausgeführt und mit der V 0.2... hat das genau so noch funktioniert.
-
@k_o_bold sagte in Test Adapter Tado v0.3.0-x (PreRelease):
weil es schon mal funktioniert hat.
Das heißt ja nix. Wenn z.B. tado jetzt ihre Server anders eingestellt hat funktioniert es nicht mehr in der Häufigkeit wie du da anklingelst.
Wobei ich immer noch nicht die Notwendigkeit für einen Takt im einstelligen Sekundentakt sehe. Ich hab bei mir 30 Sekunden im Adapter drin. Schont dein Netz und die Server bei tado.
-
@thomas-braun sagte in Test Adapter Tado v0.3.0-x (PreRelease):
Ich hab bei mir 30 Sekunden im Adapter drin.
sprichst du jetzt von dem Aktualisierungsintervall im Adapter?
Da habe ich auch 30 s drin.Mag sein, das das sekündliche Beschießen der API mittlerweile grenzwertig ist und der Tado Server hier blockiert, aber selbst mit 5 s. habe ich Probleme ( Siehe mein letzter Post ). Das sollte doch machbar sein, alle 5 Sekunden ein Thermostat zu regeln.
Über die Notwendigkeit im Sekundentakt die Thermostate zu regeln kann man sich streiten.
-
ich habe jetzt eine Verzögerung von 5 s pro Thermostat definiert. ( 5 s Takt )
Wenn die Calls einzeln durchgehen jedoch nicht in der Taktung dann kann der Adapter nichts mehr dazu beitragen. Wenn es in der v0.2.x funktioniert hat und jetzt nicht dann hat das keinen kausalen Zusammenhang, denn der REST-Call hat sich nicht verändert.
Tado ist sicher sensibler geworden in der externen Verwendung der API. Tado "duldet" die Verwendung der API durch dritte, kann und wird aber dementsprechende Maßnahmen ergreifen, damit ihre Server nicht unnötig beansprucht werden. Und da kann dann schon auch mal ein sinnvoller UseCase betroffen sein.Im Adapter wurden nun zwei Themen optimiert:
- wenn es zu dem Fehler kommt wird er "sauber" angefangen
- wenn Calls parallel abgesetzt werden, dann wird gewartet bis der erste Call durch ist bevor der zweite Call durchgereicht wird; die Calls werden also serialisiert
-
@hglab ,
danke für deine Unterstützung....
Da scheint Tado wohl sensibler geworden zu sein...
Ich habe meine Skripte nun etwas umgebaut, so dass sich mein Fenster Lüftmodus- Skripte nicht mehr mit meinem Home/away Skript in die Quere kommen. Dadurch wird verhindert, dass mehrere Thermostate kurz nacheinander angesprochen werden. -
Moin,
Bei mir geht das Tado Ventil zu, wenn das Velux Dachfenster auf ist - und der Tado Zeitplan soll wieder aktiviert werden, wenn das Fenster wieder zu ist. Mein Blockly hat in der letzten Heizperiode hervorragend funktioniert. Jetzt leider nicht mehr.
Bei offenem Fenster wird jetzt zwar immer noch der Thermostat auf "off" gestellt , aber "Clear Zone Overlay" scheint nicht mehr zu funktionieren. Hat jemand eine Idee was ich ändern muss? -
@pfahlenbauer
Konnte es selber lösen: Ich habe das Objekt geändert von tado.0.xxxxxx.Rooms.1.overlay.clearZoneOverlay auf tado.0.xxxxxx.Rooms.1.overlayClearZone
Jetzt geht's wieder. -
@pfahlenbauer
als würde es in der Readme stehen -
@hglab Kleiner Wink mit dem Zaun @pfahlenbauer