DrozmotiX / ioBroker.tado

Tado cloud connector to control Tado devices
MIT License
24 stars 13 forks source link

Issue at state change : Error: Request failed with status code 422 #138

Closed aschmidt74 closed 3 years ago

aschmidt74 commented 3 years ago

the bug

the above fails with the following line in the ioBroker Log tab: tado.0 | 2021-01-02 17:31:34.296 | error | (12405) Issue at state change : Error: Request failed with status code 422

obiously; I'd expect the control via ioBroker to work as via mobile-app or ifttt.

what works great

Versions:

ps; Happy New Year! 🍀

HGlab01 commented 3 years ago

Hi! What is a "Hotwater virtual room"?

aschmidt74 commented 3 years ago

That's not an actual room, but the hot water preparation feature of my boiler/heater - as shown in the tado app: FA420B91-5125-4648-A89F-55A92FF0F712

HGlab01 commented 3 years ago

Thanks for clarification! It looks like there is a specific API behavior for this. Will be a challenge to get this API definition!

Do you have the technical skills to trace API calls in Google Chrome by using the dev tool?

aschmidt74 commented 3 years ago

I have not specifically done that - but sounds not too difficult. yet my browser calls no api. iobroker runs remotely on the NAS. what I'd actually be curious to know is, what api-call the app or IFTTT issues when it sets an 1h ON-timer in the https://my.tado.com/api

HGlab01 commented 3 years ago

1) Go to my.tado.com by using Google Chrome 2) Navigate to the place where you can turn ON/OFF 3) Before turn ON/OFF press F12 and switch to Network Tab 4) Turn ON or OFF and check what calls are in the network tab

Then you should find something like image

The request payload is the interesting thing image

aschmidt74 commented 3 years ago

it seems, this is it! thank you so far! lets test if we can inject this from javascript as well:

Request: Referer: https://my.tado.com/app/en/main/home/zone/0

{
  "termination": {
    "typeSkillBasedApp": "TIMER",
    "durationInSeconds": 3600
  },
  "setting": {
    "power": "ON",
    "type": "HOT_WATER"
  }
}

Response 1: https://my.tado.com/api/v2/homes/DDDDDD/zones/0/overlay

{
  "type": "MANUAL",
  "setting": {
    "type": "HOT_WATER",
    "power": "ON",
    "temperature": null
  },
  "termination": {
    "type": "TIMER",
    "typeSkillBasedApp": "TIMER",
    "durationInSeconds": 3600,
    "expiry": "2021-01-02T20:17:07Z",
    "remainingTimeInSeconds": 3599,
    "projectedExpiry": "2021-01-02T20:17:07Z"
  }
}

Response 2: https://my.tado.com/api/v2/homes/DDDDDD/zones/0/state

{
  "tadoMode": "HOME",
  "geolocationOverride": false,
  "geolocationOverrideDisableTime": null,
  "preparation": null,
  "setting": {
    "type": "HOT_WATER",
    "power": "ON",
    "temperature": null
  },
  "overlayType": "MANUAL",
  "overlay": {
    "type": "MANUAL",
    "setting": {
      "type": "HOT_WATER",
      "power": "ON",
      "temperature": null
    },
    "termination": {
      "type": "TIMER",
      "typeSkillBasedApp": "TIMER",
      "durationInSeconds": 3600,
      "expiry": "2021-01-02T20:17:07Z",
      "remainingTimeInSeconds": 3599,
      "projectedExpiry": "2021-01-02T20:17:07Z"
    }
  },
  "openWindow": null,
  "nextScheduleChange": null,
  "nextTimeBlock": null,
  "link": {
    "state": "ONLINE"
  },
  "activityDataPoints": {},
  "sensorDataPoints": {}
}

last one repeats with the remainingTimeInSeconds counting down.

aschmidt74 commented 3 years ago

I'm not there yet. My goal is to let node-red trigger the Rooms.0 timer. Of course I could implement a workflow that:

  1. GETs the clientSecret via https://my.tado.com/webapp/env.js
  2. POST this together with username & password to https://auth.tado.com/oauth/token?client_id=tado-web-app&client_secret={{client_secret}}&grant_type=password&password={{password}}&scope=home.user&username={{username}} in order to get the access_token / bearer token - which in turn I
  3. PUT to https://my.tado.com/api/v2/homes/DDDDDD/zones/0/overlay - together with the
  4. json payload of {"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":3600},"setting":{"power":"ON","type":"HOT_WATER"}}

...which indeed solves the case.

however; is there a simpler way? let ioBroker.tado do all the oAuth/API stuff?

just a manual change of the 4 values there does NOT work:

your help's appreciated! ;)

HGlab01 commented 3 years ago

You can test a quick fix by installing the version https://github.com/HGlab01/ioBroker.tado/archive/v0.0.14.tar.gz manually by using the "cat icon" in the adapter tab. Let's see if it works!

aschmidt74 commented 3 years ago

Good morning & thank you for that! ;) but what xactly do I test? what to look for?

HGlab01 commented 3 years ago

Issue ON/OFF ends in error code 422 should be solved

aschmidt74 commented 3 years ago

I am running your quickfix now, and see some more promising functionality working - good!

this is the script I'm using:

var trigger = "deconz.0.Sensors.2.buttonpressed";

on(trigger, function(dp) {
    setState('tado.0.DDDDDD.Rooms.0.overlay.termination.typeSkillBasedApp', 'TIMER');
    setState('tado.0.DDDDDD.Rooms.0.overlay.termination.durationInSeconds', 600);
    setState('tado.0.DDDDDD.Rooms.0.overlay.setting.type', 'HOT_WATER');
    setState('tado.0.DDDDDD.Rooms.0.overlay.setting.power', 'ON');            /*   <--- here's an issue, imho */
});

it throws some obvious javascript errors when triggered:

04:35:10.600    warn    javascript.0 (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)
04:35:10.790    warn    javascript.0 (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)
04:35:11.401    warn    javascript.0 (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)

logs ioBroker:

tado.0  2021-01-04 04:35:12.428 info    (7499) API called with {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":600}}
//                       almost xactly what we wanted, except for                             "power":"OFF"
tado.0  2021-01-04 04:35:11.440 info    (7499) DurationInSecond changed for room : 0 in home : DDDDDD to API with : 600
tado.0  2021-01-04 04:35:11.437 info    (7499) TypeSkillBasedApp changed for room : 0 in home : DDDDDD to API with : TIMER
javascript.0    2021-01-04 04:35:11.403 warn    (32280) at processImmediate (internal/timers.js:461:21)
javascript.0    2021-01-04 04:35:11.403 warn    (32280) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
javascript.0    2021-01-04 04:35:11.402 warn    (32280) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:463:25)
javascript.0    2021-01-04 04:35:11.402 warn    (32280) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1065:38)
javascript.0    2021-01-04 04:35:11.401 warn    (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)
javascript.0    2021-01-04 04:35:11.400 warn    (32280) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1407:20)
javascript.0    2021-01-04 04:35:11.394 warn    (32280) State "tado.0.DDDDDD.Rooms.0.overlay.setting.power" not found
tado.0  2021-01-04 04:35:10.846 info    (7499) DurationInSecond changed for room : 0 in home : DDDDDD to API with : 600
tado.0  2021-01-04 04:35:10.842 info    (7499) TypeSkillBasedApp changed for room : 0 in home : DDDDDD to API with : TIMER
javascript.0    2021-01-04 04:35:10.794 warn    (32280) at processImmediate (internal/timers.js:461:21)
javascript.0    2021-01-04 04:35:10.793 warn    (32280) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
javascript.0    2021-01-04 04:35:10.792 warn    (32280) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:463:25)
javascript.0    2021-01-04 04:35:10.791 warn    (32280) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1065:38)
javascript.0    2021-01-04 04:35:10.790 warn    (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)
javascript.0    2021-01-04 04:35:10.788 warn    (32280) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1407:20)
javascript.0    2021-01-04 04:35:10.783 warn    (32280) State "tado.0.DDDDDD.Rooms.0.overlay.setting.power" not found
tado.0  2021-01-04 04:35:10.658 info    (7499) DurationInSecond changed for room : 0 in home : DDDDDD to API with : 600
tado.0  2021-01-04 04:35:10.655 info    (7499) TypeSkillBasedApp changed for room : 0 in home : DDDDDD to API with : TIMER
javascript.0    2021-01-04 04:35:10.603 warn    (32280) at processImmediate (internal/timers.js:461:21)
javascript.0    2021-01-04 04:35:10.603 warn    (32280) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
javascript.0    2021-01-04 04:35:10.602 warn    (32280) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:463:25)
javascript.0    2021-01-04 04:35:10.601 warn    (32280) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1065:38)
javascript.0    2021-01-04 04:35:10.600 warn    (32280) at Object.<anonymous> (script.js.common.tado_Wasser_EIN:7:5)
javascript.0    2021-01-04 04:35:10.599 warn    (32280) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1407:20)
javascript.0    2021-01-04 04:35:10.596 warn    (32280) State "tado.0.DDDDDD.Rooms.0.overlay.setting.power" not found

which alltogether results in an 10min timer, that counts down! however; it's running in the OFF state. there is simply no objects-branch tado.0.DDDDDD.Rooms.0.overlay.setting.power to set power:ON

what am I missing here?!

aschmidt74 commented 3 years ago

to manually add a power state object under settings works, is javascript-filled with ON, but has no effect on the APIcall that uses OFF nonetheless.

HGlab01 commented 3 years ago
  1. Power on/off shall be triggered at tado.0.DDDDD.Rooms.#.setting.power --> is this state not available because you mentioned that you added this manually? Delete the state and restart the adapter, the state should be created by the adapter.
  2. setState('tado.0.DDDDDD.Rooms.0.overlay.setting.type', 'HOT_WATER') shall never be set but a state tado.0.283178.Rooms.1.setting.type should be available (no need to change this one)

What should work and being efficient:

on(trigger, function(dp) {
    setState('tado.0.DDDDDD.Rooms.0.overlay.termination.typeSkillBasedApp', 'TIMER');
    setState('tado.0.DDDDDD.Rooms.0.overlay.termination.durationInSeconds', 600);
    setState('tado.0.DDDDDD.Rooms.0.setting.power', 'ON');
});
aschmidt74 commented 3 years ago

Hi there! Am I mistaken, or are you rather more here than there, located in Vienna as well? ;)

In any case, I was mistaken and assumed ...termination and ...setting, as in the request, were on the same branch/level. So I removed the manually added ...overlay.setting.power state. Furthermore I had to remove my HUE-switch-trigger (because one button-press fires several events).

So we have a clean 3-liner, as provided above {...} It setStates the 3 values, that's visible in the objects-tab. and then, this:

host.raspberrypi    2021-01-04 21:17:27.758 info    Restart adapter system.adapter.tado.0 because enabled
host.raspberrypi    2021-01-04 21:17:27.757 info    instance system.adapter.tado.0 terminated with code 0 (NO_ERROR)
host.raspberrypi    2021-01-04 21:17:27.756 error   Caught by controller[0]: at processTicksAndRejections (internal/process/task_queues.js:80:21)
host.raspberrypi    2021-01-04 21:17:27.755 error   Caught by controller[0]: at endReadableNT (_stream_readable.js:1327:12)
host.raspberrypi    2021-01-04 21:17:27.754 error   Caught by controller[0]: at IncomingMessage.EventEmitter.emit (domain.js:486:12)
host.raspberrypi    2021-01-04 21:17:27.754 error   Caught by controller[0]: at IncomingMessage.emit (events.js:327:22)
host.raspberrypi    2021-01-04 21:17:27.753 error   Caught by controller[0]: at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/adapters/http.js:260:11)
host.raspberrypi    2021-01-04 21:17:27.753 error   Caught by controller[0]: at settle (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/settle.js:17:12)
host.raspberrypi    2021-01-04 21:17:27.752 error   Caught by controller[0]: at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15)
host.raspberrypi    2021-01-04 21:17:27.750 error   Caught by controller[0]: Error: Request failed with status code 422
host.raspberrypi    2021-01-04 21:17:27.741 error   Caught by controller[0]: 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(). The promise rejected
tado.0  2021-01-04 21:17:27.122 info    (14505) Terminated (NO_ERROR): Without reason
tado.0  2021-01-04 21:17:27.118 info    (14505) terminating
tado.0  2021-01-04 21:17:27.020 info    (14505) cleaned everything up...
tado.0  2021-01-04 21:17:27.017 error   (14505) Error: Request failed with status code 422 at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15) at settle (/opt/iobroker/node_modu
tado.0  2021-01-04 21:17:27.010 error   (14505) unhandled promise rejection: Request failed with status code 422
tado.0  2021-01-04 21:17:27.009 error   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().
tado.0  2021-01-04 21:17:25.977 info    (14505) Power changed for room : 0 in home : DDDDDD to API with : ON and Temperature : 20 and mode : TIMER
tado.0  2021-01-04 21:17:25.970 info    (14505) DurationInSecond changed for room : 0 in home : DDDDDD to API with : 600
tado.0  2021-01-04 21:17:25.961 info    (14505) TypeSkillBasedApp changed for room : 0 in home : DDDDDD to API with : TIMER
javascript.0    2021-01-04 21:17:25.918 info    (31445) script.js.common.tado_Wasser_EIN: registered 0 subscriptions and 0 schedules
javascript.0    2021-01-04 21:17:25.852 info    (31445) Start javascript script.js.common.tado_Wasser_EIN
HGlab01 commented 3 years ago

Hi neighbor (yes, from Vienna, too) Not really an idea why it is not working. Can you please do: 1) start adapter in debug mode (Tab instances and switch in the corresponding adapter line from info to debug) 2) check wich state is stored in tado.0.DDDDDD.Rooms.0.overlay.setting.type (I guess HOT_WATER ist stored?) 3) change manually (not by the JS script) the state tado.0.DDDDDD.Rooms.0.overlay.setting.power to ON/OFF and check log. This log would be nice to have for further analyzes,

Sorry, but ti seams to take a couple of round trips to solve the very specific issue.

Is there a possibility to switch a classical thermostat into this mode or is it a specific device?

aschmidt74 commented 3 years ago

Hi neighbor ;) If you prefer a shortcut, we can resolve this in deutsch und per fon & post a solution afterwards.

  1. debug mode log load is insane - and I am insane enough to purge my personal information from the .log ;)
  2. tado.0.DDDDDD.Rooms.0.overlay.setting.type is normally empty and set to HOT_WATER when the App sets the entire 'room'/mode to ON
  3. there is no tado.0.DDDDDD.Rooms.0.overlay.setting.power. I assume you refer to tado.0.DDDDDD.Rooms.0.setting.power so I watched and edited a) ioBrokers objects tab and b) the tado app on my iPhone.

this is the .log.html.zip, and this is what I did in that log-period:

  1. forced adapter restart
  2. "Wasser"/Rooms.0 is OFF
  3. manual set tado.0.DDDDDD.Rooms.0.setting.power to ON
  4. this is being reset to OFF upon the next 30s update
  5. set "Wasser"/Rooms.0 to ON via the App (timer: 20min)
  6. confirmed in ioBroker by an update
  7. manual set tado.0.DDDDDD.Rooms.0.setting.power to OFF
  8. timer continues counting down, just in OFF-mode

Rooms.1 (Wohnzimmer) and Rooms.2 (Badezimmer) behave a bit different:

  1. by default they have got a clean .overlay and tado.0.DDDDDD.Rooms.1.setting.power is ON
  2. a manual switch to OFF puts the room in timer-mode-OFF ('Until You Cancel', as preset in the App)
  3. another manual switch to ON puts the room in timer-mode-ON

our 3-line-script applied to Rooms.1 instead of Rooms.0 ... just works. the only apparent difference is the precondition: Rooms.1 isn't xactly OFF, just in timer-mode-OFF (which runs indefinitely, until cancelled)

HGlab01 commented 3 years ago

Hallo! Ich glaub wir kommen den Problem näher und ich denke es sind 2 unterschiedliche Probleme Im Log finde ich keinen ERROR --> das Schalten auf OFF hat funktioniert

2021-01-05 01:09:04.727 - info: tado.0 (2905) Power changed for room : 0 in home : DDDDDD to API with : off and Temperature : 20 and mode : TIMER
2021-01-05 01:09:04.730 - debug: tado.0 (2905) Send API ZoneOverlay API call Home : DDDDDD zone : 0 config : {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":1200}}
2021-01-05 01:09:05.484 - debug: tado.0 (2905) Timeout set for timer 'DDDDDD0' with 750ms
2021-01-05 01:09:05.748 - info: tado.0 (2905) API called with {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":1200}}
2021-01-05 01:09:05.750 - debug: tado.0 (2905) Data refreshed (DoConnect()) called

Beim Schalten auf ON finde ich jedoch die dazugehörigen Log-Einträge nicht - da hat was nicht funktioniert. Wenn man nach "Room power set :" sucht, findet man zwar den State-Wechsel, dann klappt es aber nicht. 2021-01-05 01:07:27.734 - debug: tado.0 (2905) Room power set : ON

Kannst du daher bitte prüfen ob es für das Device einen Eintrag tado.0.XXXXXX.Rooms.0.overlay.clearZoneOverlay gibt mit einem Button image

1) Adapter anhalten 2) Tad.0 komplett mit allen Unterknoten löschen 3) Adapter restarten (wieder im Debug-Modus) 4) Über die App Warmwasser einschalten und warten bis der Adapter die Aktualisierung hat 5) Über die App Warmwasser ausschalten und warten 6) Screenshot auf dem man folgende Bereich mit Werten sieht image 7) bitte prüfen ob es den Eintrag tado.0.XXXXXX.Rooms.0.overlay.clearZoneOverlay gibt mit einem Button image 8) wenn ja den Button drücken 9) die paar Zeilen log schicken, durch das Klicken entstanden sind und erneut Screenshot 10) dann auf OFF Log-Ausschnitt und Screenshot 11) dann auf ON Log-Ausschnitt und Screenshot

Sorry, ist ein wenig mühsam, aber das Device verhält sich irgendwo noch anders als die Thermostate und das gilt es rauszufinden!

aschmidt74 commented 3 years ago

hej auch auf .de!

Ja, einen laufenden ON-timer auf OFF-timer setzen scheint zu funktionieren. Kann es sein, dass das setting.power:ON nur mit passendem overlay funktioniert? Ich sehe noch immer nicht klar, was der unterschied zum browser API-call ist, und dem was ioBroker absetzt.

Und, ja, klar, den Button tado.0.DDDDDD.Rooms.0.overlay.clearZoneOverlay gibt's.

Dann schauen wir 'mal! Hoffe der run ist ergiebiger:

  1. ☑️ Adapter anhalten
  2. ☑️ Tad.0 komplett mit allen Unterknoten löschen
  3. ☑️ Adapter restarten (wieder im Debug-Modus)
  4. ☑️ Über die App Warmwasser einschalten und warten bis der Adapter die Aktualisierung hat 📷 post App ON
  5. ☑️ Über die App Warmwasser ausschalten und warten
  6. ☑️ Screenshot auf dem man folgende Bereich mit Werten sieht 📷 post App OFF
  7. ☑️ bitte prüfen ob es den Eintrag tado.0.XXXXXX.Rooms.0.overlay.clearZoneOverlay gibt [...]
  8. ☑️ wenn ja den Button drücken - tado.0.DDDDDD.Rooms.0.overlay war schon leer, hat augenschinlich nichs zum vorigen Snap verändert.
  9. ☑️ die paar Zeilen log schicken, durch das Klicken entstanden sind und erneut Screenshot - evtl steht der buttonpress im .log
  10. ☑️ dann auf ON Log-Ausschnitt und Screenshot - 10./11. ist getauscht; es war ja schon OFF, also hab ich manuell auf ON geändert. 📷 post manual ON - fällt aber mit dem nächsten update wieder zurück auf OFF 📷 post1 manual ON - OFF agn
  11. ☑️ dann auf OFF Log-Ausschnitt und Screenshot - ist ja auf OFF zurückgefallen, daher zuerst per App auf ON, dann clearZoneOverlay-Button pressed 📷 App ON - button pressed und nach dem nächsten update: 📷 button pressed - OFF

Hier das .log & snapshots ich habe links daneben das log mitlaufen lassen, damit du die timecodes der snapshots siehst. Ich sehe aber gerade, dass es diesmal keine info: tado.0 (0000) API called with ...-Zeilen gibt. strange.

HGlab01 commented 3 years ago

Die Bilder waren sehr hilfreich, somit ist nun zumindest klar, dass der Code eigentlich funktionieren müsste. Die Logs sind recht verwirrend, zu den Zeitpunkten der Screenshots finde ich ganz andere Aktivitäten im Log und daher ist es ziemliches raten wann/was passiert ist.

Nächster Wunsch von meiner Seite: Es geht nur mehr um ON/OFF über die Objects (also manuell im ioBroker). Zuvor wäre es aber gut den JavaScript Adapter zu deaktivieren um SideEffects auszuschließen.

Wichtig wäre es nach der jeweiligen Aktion die richtigen Zeilen Logs zu bekommen. Wie du schon gesehen hast wird extrem viel im Debug-Mode mitgeschrieben, da verliert man, auch wenn man den SourceCode kennt, rasch den Überblick.

Daher folgender Vorschlag: neue Version installieren https://github.com/HGlab01/ioBroker.tado/archive/v0.0.15.tar.gz

1) Refresh intervall der Instanz auf 10000 stellen (damit ein Refresh nicht ins Log reinfunkt) 2) Tado device auf ON (via APP) 2) ein Browser-Tab das Log offen lassen ein weiterer Browser-Tab die Objects öffnen 3) wenn alles bereit ist mit dem Icon image den Log für den Tag löschen (ACHTUNG: Ja, der Log für den Tag ist dann wirklich ganz weg, ich hoffe das macht dir keine Probleme) 4) über ioBroker ON auf OFF in Tado Objects umstellen 5) "Download log" --> heutiges Datum --> eigener Browsertab mit den aktuellen Logs 6) die ersten ca 30 Zeilen direkt hier in das Issue reinkopieren; Log sollte starten mit "GETS INTERESSTING!!!" 7) 3) dann über ioBrokoer OFF auf ON und 5+6 ausführen 8) 3) dann über iobroker tado.DDDDD.Rooms.x.overlay.termination.durationInSeconds auf 10000 stellen 9) 5+6 10) 3) dann über iobroker tado.0.DDDDD.Rooms.x.overlay.termination.typeSkillBasedApp auf "permanent" stellen 11) 5+6

Die Logs sollten ca. so aussehen:

2021-01-07 10:28:11.685 - debug: tado.0 (26655) DurationInSeconds set : 1800
2021-01-07 10:28:11.685 - debug: tado.0 (26655) Room Temperature set : 22.9
2021-01-07 10:28:11.685 - debug: tado.0 (26655) Room mode set : NEXT_TIME_BLOCK
2021-01-07 10:28:11.685 - debug: tado.0 (26655) Room power set : OFF
2021-01-07 10:28:11.686 - debug: tado.0 (26655) Device id channel : tado
2021-01-07 10:28:11.686 - debug: tado.0 (26655) Device id channel : 0
2021-01-07 10:28:11.686 - debug: tado.0 (26655) Device id channel : 283178
2021-01-07 10:28:11.686 - debug: tado.0 (26655) Device id channel : Rooms
2021-01-07 10:28:11.686 -:: debug: tado.0 (26655) Device id channel : 1
2021-01-07 10:28:11.686 - debug: tado.0 (26655) Device id channel : setting
2021-01-07 10:28:11.687 - debug: tado.0 (26655) Device id channel : power
2021-01-07 10:28:11.687 - info: tado.0 (26655) Power changed for room : 1 in home : XXXXXXXX to API with : off and Temperature : 22.9 and mode : NEXT_TIME_BLOCK
2021-01-07 10:28:11.687 - debug: tado.0 (26655) Send API ZoneOverlay API call Home : XXXXXX zone : 1 config : {"setting":{"type":"HEATING","power":"OFF"},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","durationInSeconds":null}}
2021-01-07 10:28:12.440 - debug: tado.0 (26655) Timeout set for timer 'XXXXXXX1' with 750ms
2021-01-07 10:28:12.674 - info: tado.0 (26655) API called with {"setting":{"type":"HEATING","power":"OFF"},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","durationInSeconds":null}}
2021-01-07 10:28:12.674 - debug: tado.0 (26655) Data refreshed (DoConnect()) called

oder

2021-01-07 10:42:29.682 - debug: tado.0 (26655) DurationInSeconds set : 1800
2021-01-07 10:42:29.683 - debug: tado.0 (26655) Room Temperature set : 22.9
2021-01-07 10:42:29.683 - debug: tado.0 (26655) Room mode set : NEXT_TIME_BLOCK
2021-01-07 10:42:29.684 - debug: tado.0 (26655) Room power set : ON
2021-01-07 10:42:29.684 - debug: tado.0 (26655) Device id channel : tado
2021-01-07 10:42:29.684 - debug: tado.0 (26655) Device id channel : 0
2021-01-07 10:42:29.684 - debug: tado.0 (26655) Device id channel : 283178
2021-01-07 10:42:29.685 - debug: tado.0 (26655) Device id channel : Rooms
2021-01-07 10:42:29.685 - debug: tado.0 (26655) Device id channel : 1
2021-01-07 10:42:29.685 - debug: tado.0 (26655) Device id channel : setting
2021-01-07 10:42:29.685 - debug: tado.0 (26655) Device id channel : power
2021-01-07 10:42:29.685 - info: tado.0 (26655) Power changed for room : 1 in home : XXXXXX to API with : on and Temperature : 22.9 and mode : NEXT_TIME_BLOCK
2021-01-07 10:42:29.686 - debug: tado.0 (26655) Send API ZoneOverlay API call Home : XXXXXX zone : 1 config : {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22.9}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","durationInSeconds":null}}
2021-01-07 10:42:30.436 - debug: tado.0 (26655) Timeout set for timer 'XXXXXXX1' with 750ms
2021-01-07 10:42:30.878 - info: tado.0 (26655) API called with {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":22.9}},"termination":{"typeSkillBasedApp":"NEXT_TIME_BLOCK","durationInSeconds":null}}
2021-01-07 10:42:30.879 - debug: tado.0 (26655) Data refreshed (DoConnect()) called
2021-01-07 10:42:30.880 - debug: tado.0 (26655) State change detected from different source then adapter
2021-01-07 10:42:30.881 - debug: tado.0 (26655) state tado.0.283178.Rooms.1.setting.power changed: on (ack = false)
aschmidt74 commented 3 years ago

Hej there! tja... das schaut bei dir ja recht sauber aus! Ich habe das auch mal mit meinem Rooms.1 gemacht:

tado.0  2021-01-08 01:18:41.722 debug   (9082) state tado.0.DDDDDD.Rooms.1.setting.power changed: off (ack = false)
tado.0  2021-01-08 01:18:41.720 debug   (9082) State change detected from different source then adapter
tado.0  2021-01-08 01:18:41.719 debug   (9082) Data refreshed (DoConnect()) called
tado.0  2021-01-08 01:18:41.717 info    (9082) API called with {"setting":{"type":"HEATING","power":"OFF"},"termination":{"typeSkillBasedApp":"MANUAL","durationInSeconds":null}}
tado.0  2021-01-08 01:18:41.430 debug   (9082) Timeout set for timer 'DDDDDD1' with 750ms
tado.0  2021-01-08 01:18:40.677 debug   (9082) Send API ZoneOverlay API call Home : DDDDDD zone : 1 config : {"setting":{"type":"HEATING","power":"OFF"},"termination":{"typeSkillBasedApp":"MANUAL","durationInSeconds":null}}
tado.0  2021-01-08 01:18:40.675 info    (9082) Power changed for room : 1 in home : DDDDDD to API with : off and Temperature : 21 and mode : MANUAL
tado.0  2021-01-08 01:18:40.674 debug   (9082) Device id channel : power
tado.0  2021-01-08 01:18:40.674 debug   (9082) Device id channel : setting
tado.0  2021-01-08 01:18:40.673 debug   (9082) Device id channel : 1
tado.0  2021-01-08 01:18:40.673 debug   (9082) Device id channel : Rooms
tado.0  2021-01-08 01:18:40.672 debug   (9082) Device id channel : DDDDDD
tado.0  2021-01-08 01:18:40.671 debug   (9082) Device id channel : 0
tado.0  2021-01-08 01:18:40.671 debug   (9082) Device id channel : tado
tado.0  2021-01-08 01:18:40.670 debug   (9082) Room power set : OFF
tado.0  2021-01-08 01:18:40.669 debug   (9082) Room mode set : NO_OVERLAY
tado.0  2021-01-08 01:18:40.669 debug   (9082) Room Temperature set : 21
tado.0  2021-01-08 01:18:40.668 debug   (9082) DurationInSeconds set : 1800
tado.0  2021-01-08 01:18:40.667 debug   (9082) Type set : HEATING
tado.0  2021-01-08 01:18:40.666 info    (9082) GETS INTERESSTING!!!

^^^ app: ON. manuell: OFF

tado.0  2021-01-08 01:19:56.646 debug   (9082) state tado.0.DDDDDD.Rooms.1.setting.power changed: on (ack = false)
tado.0  2021-01-08 01:19:56.645 debug   (9082) State change detected from different source then adapter
tado.0  2021-01-08 01:19:56.644 debug   (9082) Data refreshed (DoConnect()) called
tado.0  2021-01-08 01:19:56.642 info    (9082) API called with {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"MANUAL","durationInSeconds":null}}
tado.0  2021-01-08 01:19:56.424 debug   (9082) Timeout set for timer 'DDDDDD1' with 750ms
tado.0  2021-01-08 01:19:55.672 debug   (9082) Send API ZoneOverlay API call Home : DDDDDD zone : 1 config : {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}},"termination":{"typeSkillBasedApp":"MANUAL","durationInSeco
tado.0  2021-01-08 01:19:55.671 info    (9082) Power changed for room : 1 in home : DDDDDD to API with : on and Temperature : 21 and mode : MANUAL
tado.0  2021-01-08 01:19:55.671 debug   (9082) Device id channel : power
tado.0  2021-01-08 01:19:55.670 debug   (9082) Device id channel : setting
tado.0  2021-01-08 01:19:55.670 debug   (9082) Device id channel : 1
tado.0  2021-01-08 01:19:55.669 debug   (9082) Device id channel : Rooms
tado.0  2021-01-08 01:19:55.669 debug   (9082) Device id channel : DDDDDD
tado.0  2021-01-08 01:19:55.668 debug   (9082) Device id channel : 0
tado.0  2021-01-08 01:19:55.668 debug   (9082) Device id channel : tado
tado.0  2021-01-08 01:19:55.667 debug   (9082) Room power set : ON
tado.0  2021-01-08 01:19:55.667 debug   (9082) Room mode set : MANUAL
tado.0  2021-01-08 01:19:55.665 debug   (9082) Room Temperature set : 21
tado.0  2021-01-08 01:19:55.665 debug   (9082) DurationInSeconds set : 1800
tado.0  2021-01-08 01:19:55.664 debug   (9082) Type set : HEATING
tado.0  2021-01-08 01:19:55.662 info    (9082) GETS INTERESSTING!!!

^^^ app: OFF. manuell: ON

scheint wie gewünscht zu funktionieren.

.logs löschen ist kein problem, ich fahre diese updates/tests nur am pensionierten raspberry.

also, zurück zum wundersamen Rooms.0 Ich musste den refresh timer auf 2min setzen, weil sonst initial garkein overlay branch vorhanden war, und ich die app-settings nie erfahre. Manuelle obj-Änderungen werden scheinbar nur im zuge eines refresh' propagiert. Bei objekt dropdown-auswahl und check - daraufhin passiert erstmal garnichts im log - bis eben zum nächsten refresh.

Das folgende sind die 4 .logs dazu. Sorry, ich habe die ersten zwei vom logs-tab/screen (abgeschnitten) kopiert, und erst die zweiten beiden per download - also leserichtung beachten ;)

tado.0  2021-01-08 00:56:00.404 debug   (30531) Write value : false
tado.0  2021-01-08 00:56:00.402 debug   (30531) Create_state called for : Stage_02_HomeData with value : {"id":DDDDDD,"name":"MyHomeName","dateTimeZone":"Europe/Vienna","dateCreated":"2018-11-26T16:19:50.348Z","temperatureUnit":"CELSIUS","p
tado.0  2021-01-08 00:56:00.400 debug   (30531) Create_state called for : DDDDDD._info.JSON_response.Stage_02_HomeData with value : {"id":DDDDDD,"name":"MyHomeName","dateTimeZone":"Europe/Vienna","dateCreated":"2018-11-26T16:19:50.348Z","te
tado.0  2021-01-08 00:56:00.385 debug   (30531) Home_data id with value : DDDDDD
tado.0  2021-01-08 00:56:00.383 debug   (30531) HomeId DDDDDD name : Stage_02_HomeDataStage_02_HomeData value {"id":DDDDDD,"name":"MyHomeName","dateTimeZone":"Europe/Vienna","dateCreated":"2018-11-26T16:19:50.348Z","temperatureUnit":"CELSIU
tado.0  2021-01-08 00:56:00.382 debug   (30531) JSON data written for Stage_02_HomeData with values : {"id":DDDDDD,"name":"MyHomeName","dateTimeZone":"Europe/Vienna","dateCreated":"2018-11-26T16:19:50.348Z","temperatureUnit":"CELSIUS","part
tado.0  2021-01-08 00:56:00.380 debug   (30531) Home_data Result : {"id":DDDDDD,"name":"MyHomeName","dateTimeZone":"Europe/Vienna","dateCreated":"2018-11-26T16:19:50.348Z","temperatureUnit":"CELSIUS","partner":null,"simpleSmartScheduleEnabl
tado.0  2021-01-08 00:56:00.374 debug   (30531) No type defined for name : Stage_01_GetMe_Data|value : |{"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000000","homes":[{"id":DDDDDD
tado.0  2021-01-08 00:56:00.372 debug   (30531) Write value : false
tado.0  2021-01-08 00:56:00.370 debug   (30531) Create_state called for : Stage_01_GetMe_Data with value : {"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000000","homes":[{"id":000
tado.0  2021-01-08 00:56:00.369 debug   (30531) Create_state called for : DDDDDD._info.JSON_response.Stage_01_GetMe_Data with value : {"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000
tado.0  2021-01-08 00:56:00.364 debug   (30531) HomeId DDDDDD name : Stage_01_GetMe_DataStage_01_GetMe_Data value {"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000000","homes":[{"
tado.0  2021-01-08 00:56:00.364 debug   (30531) JSON data written for Stage_01_GetMe_Data with values : {"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000000","homes":[{"id":DDDDDD
tado.0  2021-01-08 00:56:00.362 debug   (30531) GetMe result : {"name":"My Name","email":"my.eMail@redact.ed","username":"my.eMail@redact.ed","id":"0x000000000000000000000","homes":[{"id":DDDDDD,"name":"MyHomeName"}],"locale":"en_AT","
tado.0  2021-01-08 00:55:59.753 debug   (30531) state tado.0.DDDDDD.Rooms.0.setting.power changed: off (ack = false)
tado.0  2021-01-08 00:55:59.752 debug   (30531) State change detected from different source then adapter
tado.0  2021-01-08 00:55:59.750 debug   (30531) Data refreshed (DoConnect()) called
tado.0  2021-01-08 00:55:59.745 info    (30531) API called with {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":1200}}
tado.0  2021-01-08 00:55:59.385 debug   (30531) Timeout set for timer 'DDDDDD0' with 750ms
tado.0  2021-01-08 00:55:58.631 debug   (30531) Send API ZoneOverlay API call Home : DDDDDD zone : 0 config : {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":1200}}
tado.0  2021-01-08 00:55:58.629 info    (30531) Power changed for room : 0 in home : DDDDDD to API with : off and Temperature : 20 and mode : TIMER
tado.0  2021-01-08 00:55:58.628 debug   (30531) Device id channel : power
tado.0  2021-01-08 00:55:58.626 debug   (30531) Device id channel : setting
tado.0  2021-01-08 00:55:58.625 debug   (30531) Device id channel : 0
tado.0  2021-01-08 00:55:58.624 debug   (30531) Device id channel : Rooms
tado.0  2021-01-08 00:55:58.623 debug   (30531) Device id channel : DDDDDD
tado.0  2021-01-08 00:55:58.622 debug   (30531) Device id channel : 0
tado.0  2021-01-08 00:55:58.620 debug   (30531) Device id channel : tado
tado.0  2021-01-08 00:55:58.619 debug   (30531) Room power set : OFF
tado.0  2021-01-08 00:55:58.618 debug   (30531) Room mode set : TIMER
tado.0  2021-01-08 00:55:58.616 debug   (30531) Room Temperature set : 20
tado.0  2021-01-08 00:55:58.615 debug   (30531) DurationInSeconds set : 1200
tado.0  2021-01-08 00:55:58.613 debug   (30531) Type set : HOT_WATER
tado.0  2021-01-08 00:55:58.610 info    (30531) GETS INTERESSTING!!!

^^^ per App auf ON (timer) gesetzt. Dann: Object manuell auf OFF

host.raspberrypi    2021-01-08 00:58:31.253 info    Restart adapter system.adapter.tado.0 because enabled
host.raspberrypi    2021-01-08 00:58:31.252 info    instance system.adapter.tado.0 terminated with code 0 (NO_ERROR)
host.raspberrypi    2021-01-08 00:58:31.251 error   Caught by controller[1]: at processTicksAndRejections (internal/process/task_queues.js:80:21)
host.raspberrypi    2021-01-08 00:58:31.250 error   Caught by controller[1]: at endReadableNT (_stream_readable.js:1327:12)
host.raspberrypi    2021-01-08 00:58:31.250 error   Caught by controller[1]: at IncomingMessage.EventEmitter.emit (domain.js:486:12)
host.raspberrypi    2021-01-08 00:58:31.249 error   Caught by controller[1]: at IncomingMessage.emit (events.js:327:22)
host.raspberrypi    2021-01-08 00:58:31.249 error   Caught by controller[1]: at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/adapters/http.js:260:11)
host.raspberrypi    2021-01-08 00:58:31.248 error   Caught by controller[1]: at settle (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/settle.js:17:12)
host.raspberrypi    2021-01-08 00:58:31.247 error   Caught by controller[1]: at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15)
host.raspberrypi    2021-01-08 00:58:31.246 error   Caught by controller[1]: Error: Request failed with status code 422
host.raspberrypi    2021-01-08 00:58:31.234 error   Caught by controller[0]: 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(). The promise rejected
tado.0  2021-01-08 00:58:30.722 debug   (30531) Polling-Timer cleared.
tado.0  2021-01-08 00:58:30.721 debug   (30531) Check if timer DDDDDD2 to be cleared.
tado.0  2021-01-08 00:58:30.720 debug   (30531) Check if timer DDDDDD1 to be cleared.
tado.0  2021-01-08 00:58:30.719 debug   (30531) Timer DDDDDD0 cleared.
tado.0  2021-01-08 00:58:30.718 debug   (30531) Check if timer DDDDDD0 to be cleared.
tado.0  2021-01-08 00:58:30.659 info    (30531) Terminated (NO_ERROR): Without reason
tado.0  2021-01-08 00:58:30.658 debug   (30531) Plugin sentry destroyed
tado.0  2021-01-08 00:58:30.647 info    (30531) terminating
tado.0  2021-01-08 00:58:30.550 debug   (30531) No suitable Lua script, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) }
tado.0  2021-01-08 00:58:30.514 info    (30531) cleaned everything up...
tado.0  2021-01-08 00:58:30.510 error   (30531) Error: Request failed with status code 422 at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15) at settle (/opt/iobroker/node_modu
tado.0  2021-01-08 00:58:30.499 error   (30531) unhandled promise rejection: Request failed with status code 422
tado.0  2021-01-08 00:58:30.498 error   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().
tado.0  2021-01-08 00:58:30.267 debug   (30531) Timeout set for timer 'DDDDDD0' with 750ms
tado.0  2021-01-08 00:58:29.516 debug   (30531) Send API ZoneOverlay API call Home : DDDDDD zone : 0 config : {"setting":{"type":"HOT_WATER","power":"ON","temperature":{"celsius":20}},"termination":{"typeSkillBasedApp":"TIMER","durationInSe
tado.0  2021-01-08 00:58:29.515 info    (30531) Power changed for room : 0 in home : DDDDDD to API with : on and Temperature : 20 and mode : TIMER
tado.0  2021-01-08 00:58:29.515 debug   (30531) Device id channel : power
tado.0  2021-01-08 00:58:29.515 debug   (30531) Device id channel : setting
tado.0  2021-01-08 00:58:29.514 debug   (30531) Device id channel : 0
tado.0  2021-01-08 00:58:29.514 debug   (30531) Device id channel : Rooms
tado.0  2021-01-08 00:58:29.514 debug   (30531) Device id channel : DDDDDD
tado.0  2021-01-08 00:58:29.513 debug   (30531) Device id channel : 0
tado.0  2021-01-08 00:58:29.513 debug   (30531) Device id channel : tado
tado.0  2021-01-08 00:58:29.513 debug   (30531) Room power set : ON
tado.0  2021-01-08 00:58:29.512 debug   (30531) Room mode set : TIMER
tado.0  2021-01-08 00:58:29.512 debug   (30531) Room Temperature set : 20
tado.0  2021-01-08 00:58:29.512 debug   (30531) DurationInSeconds set : 1200
tado.0  2021-01-08 00:58:29.511 debug   (30531) Type set : HOT_WATER
tado.0  2021-01-08 00:58:29.511 info    (30531) GETS INTERESSTING!!!

^^^ per App auf OFF gesetzt. Dann: Object manuell auf ON

vvv per App auf ON (timer) gesetzt. Dann: Object manuell auf 10000

2021-01-08 01:02:09.196 - info: tado.0 (424) GETS INTERESSTING!!!
2021-01-08 01:02:09.198 - debug: tado.0 (424) Type set : HOT_WATER
2021-01-08 01:02:09.199 - debug: tado.0 (424) DurationInSeconds set : 10000
2021-01-08 01:02:09.200 - debug: tado.0 (424) Room Temperature set : 20
2021-01-08 01:02:09.201 - debug: tado.0 (424) Room mode set : TIMER
2021-01-08 01:02:09.202 - debug: tado.0 (424) Room power set : ON
2021-01-08 01:02:09.203 - debug: tado.0 (424) Device id channel : tado
2021-01-08 01:02:09.204 - debug: tado.0 (424) Device id channel : 0
2021-01-08 01:02:09.205 - debug: tado.0 (424) Device id channel : DDDDDD
2021-01-08 01:02:09.205 - debug: tado.0 (424) Device id channel : Rooms
2021-01-08 01:02:09.206 - debug: tado.0 (424) Device id channel : 0
2021-01-08 01:02:09.207 - debug: tado.0 (424) Device id channel : overlay
2021-01-08 01:02:09.208 - debug: tado.0 (424) Device id channel : termination
2021-01-08 01:02:09.208 - debug: tado.0 (424) Device id channel : durationInSeconds
2021-01-08 01:02:09.209 - info: tado.0 (424) DurationInSecond changed for room : 0 in home : DDDDDD to API with : 10000
2021-01-08 01:02:09.212 - debug: tado.0 (424) Send API ZoneOverlay API call Home : DDDDDD zone : 0 config : {"setting":{"type":"HOT_WATER","power":"ON","temperature":{"celsius":20}},"termination":{"typeSkillBasedApp":"TIMER","durationInSeconds":10000}}
2021-01-08 01:02:09.256 - debug: tado.0 (424) state tado.0.DDDDDD.Rooms.0.overlay.termination.typeSkillBasedApp changed: TIMER (ack = true)
2021-01-08 01:02:09.966 - debug: tado.0 (424) Timeout set for timer 'DDDDDD0' with 750ms
2021-01-08 01:02:10.260 - error: 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().
2021-01-08 01:02:10.261 - error: tado.0 (424) unhandled promise rejection: Request failed with status code 422
2021-01-08 01:02:10.272 - error: tado.0 (424) Error: Request failed with status code 422
at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15)
at settle (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/adapters/http.js:260:11)
at IncomingMessage.emit (events.js:327:22)
at IncomingMessage.EventEmitter.emit (domain.js:486:12)
at endReadableNT (_stream_readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
2021-01-08 01:02:10.277 - info: tado.0 (424) cleaned everything up...
2021-01-08 01:02:10.319 - debug: tado.0 (424) No suitable Lua script, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) }
2021-01-08 01:02:10.403 - info: tado.0 (424) terminating
2021-01-08 01:02:10.406 - debug: tado.0 (424) Plugin sentry destroyed
2021-01-08 01:02:10.407 - info: tado.0 (424) Terminated (NO_ERROR): Without reason
2021-01-08 01:02:10.411 - debug: tado.0 (424) Check if timer DDDDDD0 to be cleared.
2021-01-08 01:02:10.412 - debug: tado.0 (424) Timer DDDDDD0 cleared.
2021-01-08 01:02:10.417 - debug: tado.0 (424) Check if timer DDDDDD1 to be cleared.
2021-01-08 01:02:10.418 - debug: tado.0 (424) Check if timer DDDDDD2 to be cleared.
2021-01-08 01:02:10.419 - debug: tado.0 (424) Polling-Timer cleared.
2021-01-08 01:02:10.983 - error: host.raspberrypi Caught by controller[0]: 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(). The promise rejected with the reason:
2021-01-08 01:02:10.992 - error: host.raspberrypi Caught by controller[1]: Error: Request failed with status code 422
2021-01-08 01:02:10.993 - error: host.raspberrypi Caught by controller[1]: at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15)
2021-01-08 01:02:10.994 - error: host.raspberrypi Caught by controller[1]: at settle (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/settle.js:17:12)
2021-01-08 01:02:10.995 - error: host.raspberrypi Caught by controller[1]: at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/adapters/http.js:260:11)
2021-01-08 01:02:10.995 - error: host.raspberrypi Caught by controller[1]: at IncomingMessage.emit (events.js:327:22)
2021-01-08 01:02:10.996 - error: host.raspberrypi Caught by controller[1]: at IncomingMessage.EventEmitter.emit (domain.js:486:12)
2021-01-08 01:02:10.996 - error: host.raspberrypi Caught by controller[1]: at endReadableNT (_stream_readable.js:1327:12)
2021-01-08 01:02:10.997 - error: host.raspberrypi Caught by controller[1]: at processTicksAndRejections (internal/process/task_queues.js:80:21)

vvv per App auf ON (timer) gesetzt. Dann: Object manuell auf 'Permanent(Manual)' (per dropdown auswahl)

2021-01-08 01:10:11.731 - info: tado.0 (2957) GETS INTERESSTING!!!
2021-01-08 01:10:11.732 - debug: tado.0 (2957) Type set : HOT_WATER
2021-01-08 01:10:11.733 - debug: tado.0 (2957) DurationInSeconds set : 1800
2021-01-08 01:10:11.733 - debug: tado.0 (2957) Room Temperature set : 20
2021-01-08 01:10:11.733 - debug: tado.0 (2957) Room mode set : MANUAL
2021-01-08 01:10:11.734 - debug: tado.0 (2957) Room power set : ON
2021-01-08 01:10:11.734 - debug: tado.0 (2957) Device id channel : tado
2021-01-08 01:10:11.734 - debug: tado.0 (2957) Device id channel : 0
2021-01-08 01:10:11.735 - debug: tado.0 (2957) Device id channel : DDDDDD
2021-01-08 01:10:11.735 - debug: tado.0 (2957) Device id channel : Rooms
2021-01-08 01:10:11.735 - debug: tado.0 (2957) Device id channel : 0
2021-01-08 01:10:11.736 - debug: tado.0 (2957) Device id channel : overlay
2021-01-08 01:10:11.736 - debug: tado.0 (2957) Device id channel : termination
2021-01-08 01:10:11.736 - debug: tado.0 (2957) Device id channel : typeSkillBasedApp
2021-01-08 01:10:11.737 - info: tado.0 (2957) TypeSkillBasedApp changed for room : 0 in home : DDDDDD to API with : MANUAL
2021-01-08 01:10:11.738 - debug: tado.0 (2957) Send API ZoneOverlay API call Home : DDDDDD zone : 0 config : {"setting":{"type":"HOT_WATER","power":"ON","temperature":{"celsius":20}},"termination":{"typeSkillBasedApp":"MANUAL","durationInSeconds":null}}
2021-01-08 01:10:12.490 - debug: tado.0 (2957) Timeout set for timer 'DDDDDD0' with 750ms
2021-01-08 01:10:12.776 - error: 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().
2021-01-08 01:10:12.777 - error: tado.0 (2957) unhandled promise rejection: Request failed with status code 422
2021-01-08 01:10:12.783 - error: tado.0 (2957) Error: Request failed with status code 422
at createError (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/createError.js:16:15)
at settle (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.tado/node_modules/axios/lib/adapters/http.js:260:11)
at IncomingMessage.emit (events.js:327:22)
at IncomingMessage.EventEmitter.emit (domain.js:486:12)
at endReadableNT (_stream_readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
2021-01-08 01:10:12.787 - info: tado.0 (2957) cleaned everything up...
2021-01-08 01:10:12.818 - debug: tado.0 (2957) No suitable Lua script, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) }
2021-01-08 01:10:12.925 - info: tado.0 (2957) terminating

HTH & haveaniceday!

HGlab01 commented 3 years ago

Ich glaub ich hab das besondere Verhalten der HOT_WATER Devices gefunden. To be tested with: https://github.com/HGlab01/ioBroker.tado/archive/v0.0.20.tar.gz

rvdgaag commented 3 years ago
Screenshot 2021-01-08 at 13 37 47

Same issue with the tado.0.43494.Rooms.2.setting.power (power on/off) for the aircondtions units.

aschmidt74 commented 3 years ago

Hi rvdgaag! Have you brougfht your adapter installation up to the above mentioned quickfix v0.0.20 level? Good we have another excotic tado "room" - an aircondition is on my wishlist, actually :)

rvdgaag commented 3 years ago

Yup I did since I had the same 422 error code I hoped this would solve the issue.

aschmidt74 commented 3 years ago

Yessss! I think you did it! Just did a quickcheck for your quickfix v0.0.20 and ... it works! It's not sufficient to set the setting.power alone, but the triplet works as expected, also in .js

setState('tado.0.262223.Rooms.0.overlay.termination.typeSkillBasedApp', 'TIMER');
setState('tado.0.262223.Rooms.0.overlay.termination.durationInSeconds', 600);
setState('tado.0.262223.Rooms.0.setting.power', 'ON');

I guess it's the scripts responsibility to cleanup the overlay branch. Setting just the setting.power to OFF would continue the timer, just in OFF mode.

Thanks a lot, neighbour! You deserve a well airconditioned room now! :->

HGlab01 commented 3 years ago

@aschmidt74

Yessss! I think you did it!

cool!

Setting just the setting.power to OFF would continue the timer, just in OFF mode.

This is the expected behavior. You can mainly steer by setting overlay.termination.typeSkillBasedApp to one of the three modes: image If, for example, you want to turn off until any manual action set typeSkillBasedApp to Permanent (MANUAL) If you want to do until next time block set it to "next block" (NEXT_TIME_BLOCK). If you want to use a timer it is sufficient to set just overlay.termination.durationInSeconds, typeSkillBasedApp will be set to "Use Timer" (TIMER) by the adapter.

So I would not say you have to clean up anything on the script, but you have to say the adapter what you want to have ;-)

Thanks a lot, neighbour!

Welcome!

You can update to https://github.com/HGlab01/ioBroker.tado/archive/v0.0.21.tar.gz where log are set back to standard.

HGlab01 commented 3 years ago

@rvdgaag if there is an issue on Adapter for AC please create a new issue and execute the steps mentioned in https://github.com/iobroker-community-adapters/ioBroker.tado/issues/138#issuecomment-756122413 Before executing this please ensure you have installed Adapter https://github.com/HGlab01/ioBroker.tado/archive/v0.0.20.tar.gz Please do not forget to switch to debug mode, information in info mode will not help to solve the issue. Is ON and OFF not working? Are other changes like only changing the temperature working? As the API behaves different for HEATING, HOT_WATER and AIRCONDITION I need your support for understanding the differences.

HGlab01 commented 3 years ago

@DutchmanNL PR #117 includes the Pooling and the fix. I believe it is now time to merge the PR ;-)

aschmidt74 commented 3 years ago

this is a node-red example on how to start a timer in Rooms.0 and set it to power: ON, or OFF i.e. ClearZoneOverlay: true

[ { "id": "b154e726.b6e4b8", "type": "link in", "z": "bb6c2f8.9ed29d", "name": "Switch", "links": [ "c6ece992.e8d068" ], "x": 195, "y": 760, "wires": [ [ "ce6bae94.85a44" ] ] }, { "id": "cfde84e4.5ddac8", "type": "inject", "z": "bb6c2f8.9ed29d", "name": "ON", "props": [ { "p": "payload.on", "v": "true", "vt": "bool" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 170, "y": 720, "wires": [ [ "ce6bae94.85a44" ] ] }, { "id": "eb585a38.5b0098", "type": "inject", "z": "bb6c2f8.9ed29d", "name": "OFF", "props": [ { "p": "payload.on", "v": "false", "vt": "bool" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 170, "y": 800, "wires": [ [ "ce6bae94.85a44" ] ] }, { "id": "5d1db1c4.759af", "type": "group", "z": "bb6c2f8.9ed29d", "name": "Warmwasser EIN für 5min", "style": { "label": true, "label-position": "sw" }, "nodes": [ "7494ef8d.e72c6", "5041be8b.2616", "d3519ac1.d613d8", "ce6bae94.85a44", "dc779881.9485a8" ], "x": 294, "y": 659, "w": 612, "h": 210 }, { "id": "7494ef8d.e72c6", "type": "ioBroker out", "z": "bb6c2f8.9ed29d", "g": "5d1db1c4.759af", "name": "overlay.termination.typeSkillBasedApp", "topic": "tado.0.DDDDDD.Rooms.0.overlay.termination.typeSkillBasedApp", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 730, "y": 740, "wires": [] }, { "id": "5041be8b.2616", "type": "ioBroker out", "z": "bb6c2f8.9ed29d", "g": "5d1db1c4.759af", "name": "overlay.termination.durationInSeconds", "topic": "tado.0.DDDDDD.Rooms.0.overlay.termination.durationInSeconds", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 730, "y": 780, "wires": [] }, { "id": "d3519ac1.d613d8", "type": "ioBroker out", "z": "bb6c2f8.9ed29d", "g": "5d1db1c4.759af", "name": "setting.power", "topic": "tado.0.DDDDDD.Rooms.0.setting.power", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 650, "y": 700, "wires": [] }, { "id": "ce6bae94.85a44", "type": "function", "z": "bb6c2f8.9ed29d", "g": "5d1db1c4.759af", "name": "tado.0.DDDDDD.Rooms.0", "func": "var POW=null\nvar TSBA=null\nvar DIS=null\nvar CZO=null\n\nif (msg.payload.on || false) {\n//    node.warn('Warmwasser ON');\n    POW={payload:\"ON\"}\n    TSBA={payload:\"TIMER\"}\n    DIS={payload:60*5}\n} else {\n//    node.warn('Warmwasser OFF');\n    CZO={payload:true}\n}\n\nreturn [ POW, TSBA, DIS,CZO ]", "outputs": 4, "noerr": 0, "initialize": "", "finalize": "", "x": 430, "y": 760, "wires": [ [ "d3519ac1.d613d8" ], [ "7494ef8d.e72c6" ], [ "5041be8b.2616" ], [ "dc779881.9485a8" ] ] }, { "id": "dc779881.9485a8", "type": "ioBroker out", "z": "bb6c2f8.9ed29d", "g": "5d1db1c4.759af", "name": "overlay.clearZoneOverlay", "topic": "tado.0.DDDDDD.Rooms.0.overlay.clearZoneOverlay", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 690, "y": 820, "wires": [] } ]

tnx alot & close.

sly-1 commented 3 years ago

Hello, I have the same problem (Error: Request failed with status code 422) and therefore wanted to install version v0.0.21. (URL: https://github.com/HGlab01/ioBroker.tado/archive/v0.0.21.tar.gz)

When I try I get the following error message:

$ ./iobroker url "https://github.com/HGlab01/ioBroker.tado/archive/v0.0.21.tar.gz" --debug
install HGlab01/ioBroker.tado#v0.0.21.tar
NPM version: 6.14.10
npm install HGlab01/ioBroker.tado#v0.0.21.tar --loglevel error --prefix "/opt/iobroker" (System call)
npm ERR! code 1
npm ERR! Command failed: git checkout v0.0.21.tar
npm ERR! error: Pfadspezifikation 'v0.0.21.tar' stimmt mit keinen git-bekannten Dateien überein.npm ERR! 

npm ERR! A complete log of this run can be found in:npm ERR!     /home/iobroker/.npm/_logs/2021-02-06T16_41_43_351Z-debug.log
upload [5] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/words.js words.js application/javascript
upload [4] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/tado.png tado.png image/png
upload [3] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/style.css style.css text/css
upload [2] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/index_m.html index_m.html text/html
upload [1] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/button.png button.png image/png
upload [0] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/admin.d.ts admin.d.ts video/mp2t
process exited with code 0

Does anyone have any ideas? Looking forward to your feedback.

HGlab01 commented 3 years ago

try the latest one https://github.com/HGlab01/ioBroker.tado/archive/v0.0.31.tar.gz

It tested this one a couple of seconds ago:

$ ./iobroker url "https://github.com/HGlab01/ioBroker.tado/archive/v0.0.31.tar.gz"
install https://github.com/HGlab01/ioBroker.tado/archive/v0.0.31.tar.gz
NPM version: 6.14.4
npm install https://github.com/HGlab01/ioBroker.tado/archive/v0.0.31.tar.gz --loglevel error (System call)
upload [17] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/words.js words.js application/javascript
upload [16] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/tsconfig.json tsconfig.json application/json
upload [15] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/tado.png tado.png image/png
upload [14] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/style.css style.css text/css
upload [13] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/index_m.html index_m.html text/html
upload [12] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json
upload [11] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/ru/translations.json i18n/ru/translations.json application/json
upload [10] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/pt/translations.json i18n/pt/translations.json application/json
upload [9] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/pl/translations.json i18n/pl/translations.json application/json
upload [8] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/nl/translations.json i18n/nl/translations.json application/json
upload [7] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/it/translations.json i18n/it/translations.json application/json
upload [6] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/fr/translations.json i18n/fr/translations.json application/json
upload [5] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/es/translations.json i18n/es/translations.json application/json
upload [4] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/en/translations.json i18n/en/translations.json application/json
upload [3] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/i18n/de/translations.json i18n/de/translations.json application/json
upload [2] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/button.png button.png image/png
upload [1] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/admin.d.ts admin.d.ts video/mp2t
upload [0] tado.admin C:/iobroker/node_modules/iobroker.tado/admin/.DS_Store .DS_Store null
Update "system.adapter.tado.0"
process exited with code 0
sly-1 commented 3 years ago

manually by using the "cat icon" in the adapter tab

Unfortunately, the same problem:

$ ./iobroker url "https://github.com/HGlab01/ioBroker.tado/archive/v0.0.31.tar.gz" --debug
install HGlab01/ioBroker.tado#v0.0.31.tar
NPM version: 6.14.10
npm install HGlab01/ioBroker.tado#v0.0.31.tar --loglevel error --prefix "/opt/iobroker" (System call)
npm ERR! code 1
npm ERR! Command failed: git checkout v0.0.31.tar
npm ERR! error: Pfadspezifikation 'v0.0.31.tar' stimmt mit keinen git-bekannten Dateien überein.npm ERR! 

npm ERR! A complete log of this run can be found in:npm ERR!     /home/iobroker/.npm/_logs/2021-02-06T17_16_16_903Z-debug.log
upload [5] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/words.js words.js application/javascript
upload [4] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/tado.png tado.png image/png
upload [3] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/style.css style.css text/css
upload [2] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/index_m.html index_m.html text/html
upload [1] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/button.png button.png image/png
upload [0] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/admin.d.ts admin.d.ts video/mp2t
Update "system.adapter.tado.0"
process exited with code 0
HGlab01 commented 3 years ago

not really an idea... what you can try: download the file and save it to the disk/volume where iobroker is runnning use the path to your lokal drive (e.g. /home/iobroker/v0.0.31.tar.gz) instead of https://.... maybe this works? no idea why it is not working in your environment

sly-1 commented 3 years ago

Thanks for the tip, I will give it a try. I will get back to you.

sly-1 commented 3 years ago

Previously, I uninstalled the tado instance and the adapter. Is that right?

Now I get this message:

$ ./iobroker url "/home/iobroker/v0.0.31.tar.gz" --debug
install /home/iobroker/v0.0.31.tar.gz
NPM version: 6.14.10npm install /home/iobroker/v0.0.31.tar.gz --loglevel error --prefix "/opt/iobroker" (System call)
+ iobroker.tado@0.2.4updated 1 package in 25.561s
40 packages are looking for funding  run `npm fund` for details
ERROR: host.raspberrypi4-iob Cannot install /home/iobroker/v0.0.31.tar.gz: 0
ERROR: process exited with code 25
sly-1 commented 3 years ago

Apparently the adapter was installed despite error message. The adapter page shows version 0.2.4. Is this correct? After that I added an instance on the adapter page. How can I check the version?

At least I can now turn off the hot water device in the tado.0 object and turn it on again by clearZoneOverlay.

HGlab01 commented 3 years ago

in https://github.com/HGlab01/ioBroker.tado/archive/v0.2.6-1.tar.gz I also updated the version number in the package to v0.2.6-1

sly-1 commented 3 years ago

Even with this version I get the error message. What is your recommendation? First uninstall the instance and the adapter then install the new version via the cat icon?

$ ./iobroker url "https://github.com/HGlab01/ioBroker.tado/archive/v0.2.6-1.tar.gz" --debug
install HGlab01/ioBroker.tado#v0.2.6-1.tar
NPM version: 6.14.10
npm install HGlab01/ioBroker.tado#v0.2.6-1.tar --loglevel error --prefix "/opt/iobroker" (System call)
npm ERR! code 1
npm ERR! Command failed: git checkout v0.2.6-1.tar
npm ERR! error: Pfadspezifikation 'v0.2.6-1.tar' stimmt mit keinen git-bekannten Dateien überein.
npm ERR! 
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/iobroker/.npm/_logs/2021-02-07T11_20_10_929Z-debug.log
upload [17] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/words.js words.js application/javascript
upload [16] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/tsconfig.json tsconfig.json application/json
upload [15] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/tado.png tado.png image/png
upload [14] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/style.css style.css text/css
upload [13] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/index_m.html index_m.html text/html
upload [12] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json
upload [11] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/ru/translations.json i18n/ru/translations.json application/json
upload [10] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/pt/translations.json i18n/pt/translations.json application/json
upload [9] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/pl/translations.json i18n/pl/translations.json application/json
upload [8] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/nl/translations.json i18n/nl/translations.json application/json
upload [7] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/it/translations.json i18n/it/translations.json application/json
upload [6] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/fr/translations.json i18n/fr/translations.json application/json
upload [5] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/es/translations.json i18n/es/translations.json application/json
upload [4] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/en/translations.json i18n/en/translations.json application/json
upload [3] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/i18n/de/translations.json i18n/de/translations.json application/json
upload [2] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/button.png button.png image/png
upload [1] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/admin.d.ts admin.d.ts video/mp2t
upload [0] tado.admin /opt/iobroker/node_modules/iobroker.tado/admin/.DS_Store .DS_Store null
Update "system.adapter.tado.0"
process exited with code 0
sly-1 commented 3 years ago

Here is the log file from /home/iobroker/.npm/_logs/:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/bin/node',
1 verbose cli   '/usr/bin/npm',
1 verbose cli   'install',
1 verbose cli   'HGlab01/ioBroker.tado#v0.2.6-1.tar',
1 verbose cli   '--loglevel',
1 verbose cli   'error',
1 verbose cli   '--prefix',
1 verbose cli   '/opt/iobroker'
1 verbose cli ]
2 info using npm@6.14.10
3 info using node@v12.20.1
4 verbose npm-session 0fa59c193e74bee0
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData error for github:HGlab01/ioBroker.tado#v0.2.6-1.tar Command failed: git checkout v0.2.6-1.tar
7 silly fetchPackageMetaData error: Pfadspezifikation 'v0.2.6-1.tar' stimmt mit keinen git-bekannten Dateien überein.
8 timing stage:rollbackFailedOptional Completed in 2ms
9 timing stage:runTopLevelLifecycles Completed in 6255ms
10 verbose stack Error: Command failed: git checkout v0.2.6-1.tar
10 verbose stack error: Pfadspezifikation 'v0.2.6-1.tar' stimmt mit keinen git-bekannten Dateien überein.
10 verbose stack
10 verbose stack     at ChildProcess.exithandler (child_process.js:308:12)
10 verbose stack     at ChildProcess.emit (events.js:314:20)
10 verbose stack     at maybeClose (internal/child_process.js:1022:16)
10 verbose stack     at Socket.<anonymous> (internal/child_process.js:444:11)
10 verbose stack     at Socket.emit (events.js:314:20)
10 verbose stack     at Pipe.<anonymous> (net.js:675:12)
11 verbose cwd /opt/iobroker
12 verbose Linux 5.10.11-v7l+
13 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "HGlab01/ioBroker.tado#v0.2.6-1.tar" "--loglevel" "error" "--prefix" "/opt/iobroker"
14 verbose node v12.20.1
15 verbose npm  v6.14.10
16 error code 1
17 error Command failed: git checkout v0.2.6-1.tar
17 error error: Pfadspezifikation 'v0.2.6-1.tar' stimmt mit keinen git-bekannten Dateien überein.
18 verbose exit [ 1, true ]
HGlab01 commented 3 years ago

I did not expect, that it works now (still no idea why in your eco system the install does not work). But if you install it via lokal drive you should be able to double check afterwards the installed version number.

sly-1 commented 3 years ago

This happens when I download the file and copy it to the local directory. Then start the installation via the cat icon:

$ ./iobroker url "/home/iobroker/ioBroker.tado-0.2.6-1.tar.gz" --debug
install /home/iobroker/ioBroker.tado-0.2.6-1.tar.gz
NPM version: 6.14.10
npm install /home/iobroker/ioBroker.tado-0.2.6-1.tar.gz --loglevel error --prefix "/opt/iobroker" (System call)
+ iobroker.tado@0.2.6-1updated 1 package in 24.23s

40 packages are looking for funding  run `npm fund` for details
ERROR: host.raspberrypi4-iob Cannot install /home/iobroker/ioBroker.tado-0.2.6-1.tar.gz: 0
ERROR: process exited with code 25
HGlab01 commented 3 years ago

and which version number is shown afterwards in the adapter tab?

sly-1 commented 3 years ago

This is displayed: Bildschirmfoto 2021-02-07 um 13 31 43

HGlab01 commented 3 years ago

not sure what the screen shows. I meant this one: image

sly-1 commented 3 years ago

Bildschirmfoto 2021-02-07 um 13 39 43

HGlab01 commented 3 years ago

Then I guess the installation worked somehow. This is the best I can offer as long as the Pull Request was not merged (Dutchman seams to be very busy at the moment...)

sly-1 commented 3 years ago

All right, then I want to thank you for your quick support. Well done.

I would have one more question ;) Do you have or is there a description how to use the functions from the adapter? What can be used at the moment and how?