NEWS
Test Adapter Daikin-Cloud 0.4.0
-
Genauer betrachtet, finde ich darauf auch keinen Reim
In meiner gedanklichen Welt hatte ich eigentlich ab 0 Uhr eine 200 erwartet:
stattdessen eiert der Wert wild herum und stabilisiert sich erst um 8:02 Uhr
???
-
mal danke für das Update
ein paar Fragen:
- bleibt daikin-cloud.0.info.rateLimitMinute immer auf 20, egal was man in den Einstellungen einträgt (ich hab es glaub ich selbst erkannt, geht auf 20 bei true, ist ja schon später
- zählt nur die Abfrage zum rateLimit, oder auch wenn man Werte über Scripte ändert, die werden dann ja an die api geschickt, und in weiterer Folge kommt die Steuerung über die cloud retour
- wann endet das langsame Datenabfrageintervall wieder, oder könnte man das noch einbauen
-
@hofmann-iobrf Die kommen aus HTTP Headers von jeder Antwort von den Daikin Servern. Kommen also von Daikin. Ich habe keine Ahnung warum die so schwanken.
-
@hofmann-iobrf Es ist glaube nicht ganz so einfach- also nicht rollierend 24h ... Ich glaube eher sie zählen den aktuellen tag und kennen den vortag. Dann wird je nachdem wieviel vom aktuellen Tag schon vergangen ist der aktuelle counter und ein "zeitlicher Rest Anteil des Vortags" genommen.
Damit errechnen Sie die aktuellen Requests und entscheiden ob ok oder nicht oder wie lang gepsert ist (was die Response angeht). Die Sperre ist aber dynamisch.Das erklärt auch warum man auf 15 Tage sperrzeit kommen kann wenn man an einem Tag 3000 Requests gemacht hat (also 200 und 2800 weitere während man rate limitiert war).
Wenn man also am Tag danach keine Requests macht bauen sich die 2800 "zu viel" vom Vortag über den Tag hin ab und sollten am Tagesende weg sein ...Der 15 tage gesperrt User hat auch dann geschrieben das er nach 43h offline Zeit dann bei 170 Requests "übrig" war.
Also ergo: Es ist rechnerisch rollierend, aber nicht real rollierend
Ich überlege gerade ob man daraus was für Sperrzeiten des Adapters ableiten kann. Mal schauen
-
@armilar said in Test Adapter Daikin-Cloud 0.4.0:
Kannst dann auf die 0.4.7 updaten... Sieht gut aus
Mir wurde die Version 0.4.6 als Update auf 0.3.0 angeboten, die einst via Github installiert worden war.
Habe ich dann so installiert und soweit läuft jetzt alles, aber ein Update auf 0.4.7 wird mir jetzt nicht mehr angeboten.Wie mache ich jetzt ein Update auf 0.4.7? Einfach wieder drüber installieren via Github Link?
viele Grüße
Kymchy -
@kymchy 0.4.7 ist im Beta Repo
-
ist das ein Fehler? Auf und ab dreht sie sich aber
Send state change for %ID%.climateControl.onOffMode with value=on to climateControl : onOffMode : undefinedund könntest du meine Fragen oben bitte beantworten?
-
bleibt daikin-cloud.0.info.rateLimitMinute immer auf 20, egal was man in den Einstellungen einträgt (ich hab es glaub ich selbst erkannt, geht auf 20 bei true, ist ja schon später
Keine Ahnung ... frag Daikin ... Wir geben die Werte aus die von denen kommen. Ich habe aber auch schon 19 gesehn.
zählt nur die Abfrage zum rateLimit, oder auch wenn man Werte über Scripte ändert, die werden dann ja an die api geschickt, und in weiterer Folge kommt die Steuerung über die cloud retour
Alles was werte Setzt kostet einen call und dann das pollen. am Ende macht Debug log an. Immer wenn neue rate limit infos kommen gabs auch nen Call.
wann endet das langsame Datenabfrageintervall wieder, oder könnte man das noch einbauen
... wann immer Du den State auf false setzt. Aktuell gibts da keine zeitlogik, sondern einen state den Ihr setzen können wann immer slow ausreicht und wann es wieder öfter sein muss. Ja man könnte noch eine Zeitsteuerung einbauen, aber da war in der zeit aktuell nicht drin und man müsste auch überlegen wie man das genau macht. Könnt Ihr Euch ja mal überlegen, aber fürchte dann kommen ganz komplexe Dinge raus und das ist im JavaScript Adapter besser aufgehoben
-
@apollon77 sagte in Test Adapter Daikin-Cloud 0.4.0:
... wann immer Du den State auf false setzt. Aktuell gibts da keine zeitlogik, sondern einen state den Ihr setzen können wann immer slow ausreicht und wann es wieder öfter sein muss. Ja man könnte noch eine Zeitsteuerung einbauen, aber da war in der zeit aktuell nicht drin und man müsste auch überlegen wie man das genau macht. Könnt Ihr Euch ja mal überlegen, aber fürchte dann kommen ganz komplexe Dinge raus und das ist im JavaScript Adapter besser aufgehoben
achso, ich habe das den Wert im slow-Mode als Uhrzeit verstanden. Steht ja nach dem installieren 1800 drin, dachte mir, ergibt sinn, da Sonnenstand tiefer ist. Deswegen auch die Frage, um welche Zeit es wieder ins normale pollen geht.
das hast eh mitbekommen (oder ist das eine Rückmeldung aus der Cloud?):
Send state change for %ID%.climateControl.onOffMode with value=on to climateControl : onOffMode : undefined
-
@maximal1981 Da sist schon korrekt so.
-
Version 0.4.8 geht gerade auf npm.
Wir optimieren hier die Rate Limit Wartezeit auf maximal 24h und versuchen es dann nochmals.
Und zusätzlich hat der Adapter jetzt einen Schutz davor gleiche Werte nochmals zu senden. Default ist das so eingestellt - man kann es überschreiben ist dann halt selbst dafür verantwortlich keinen Blödsinn zu treibenDieser Modus hat die Chance vielen zu helfen vor allem wenn Skripte ggf komische Dinge immer wieder gleich setzen. Es hat natürlich die "gefahr" das wenn man es am Adapter vorbei zb einschaltet der Adapter bis "polling Interval" spöter davon nicht weiss und man es somit nicht ausschalten kann weil der Adapter denkt das es doch aus ist.
Wäre super wenn Ihr Euch die Version ansehen und testen könntet dann geht die Zeitnah auch ins Stable wenn ich Rückmeldungen habe. Danke
Ingo
-
Irgendwas stimmt doch da nicht.
Rate Remaining Day springt hoch und runter, ich kann aber keine Logik erkennen.
-
Ich bekomme den Adapter nicht zum laufen. Admin ist schon länger auf https umgestellt. Einrichtung der Instanz scheint einwandfrei zu funktionieren. In Schritt 7 popt ein Fenster auf, in dem ich auf "I agree" drücke und danach ein Fenster "OAuth OK". Dann Save&Close. Instanz wird aber nicht grün. Im log steht:
Any ideas?Danke im Voraus
Bodo -
Wenn ich das richtig interpretiere, ist der Adapter ist der Ansicht, dass du den Token (d.h. Client ID und Client Secret) unter Punkt 3 nicht eingetragen hast...
-
Von meiner Seite alles okay - Keine Probleme festgestellt seit dem 12.07 mit Update 0.4.8
-
Hab Client ID und Secret noch einmal eingetragen und erhalte weiterhin "No tokens existing":
Um auf Nummer sicher zu gehen, hatte ich eine erste App bei Daikin wieder gelöscht und eine neue angelegt. Bei beiden dasselbe Verhalten.
-
- Popup-Blocker ausschalten, falls im Browser aktiv
- Speicher dir mal die Redirect-URL von Punkt 4 weg
- App bei Daikin löschen
- App neu anlegen mit Redirect-URL
- Client-ID und Client-Secret unter 3 eintragen
- Punkt 7 ausführen
-
Danke für die Unterstützung! Hat aber leider bisher nicht zum Erfolg geführt.
Habe den Adapter noch einmal gelöscht und neu installiert. Den Iobroker-Container neu gestartet.
Habe alle Schritte noch einmal durchgeführt, mal mit Edge statt Firefox. Bei Punkt 7 geht ein Tab auf:
Wenn ich da auf "I agree" klicke, ändert sich der Fensterinhalt, kurz erscheint "Proxy" und dann sieht der Tab so aus:
Und danach diesselben Fehlermeldungen im log.
-
@derda-0 Dann bitte mal Loglevel auf Debug log stellen und Log zeigen von diesem Prozess
-
Schritte 1-7 nach Neuinstallation des Adapters und loglevel = debug:
2024-07-16 10:59:13.139 - debug: daikin-cloud.0 (952) Plugin sentry Initialize Plugin (enabled=true) 2024-07-16 10:59:13.616 - info: daikin-cloud.0 (952) starting. Version 0.4.8 in /opt/iobroker/node_modules/iobroker.daikin-cloud, node: v18.19.0, js-controller: 5.0.19 2024-07-16 10:59:13.665 - warn: daikin-cloud.0 (952) No tokens existing, please enter client id and secret of your Daikin Developer Account in Adapter settings and Authenticate via Admin Interface! 2024-07-16 10:59:28.133 - warn: admin.0 (152) daikin-cloud has an invalid jsonConfig: [{"instancePath":"/items/_authenticate","schemaPath":"#/definitions/sendToProps/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"window"},"message":"must NOT have additional properties"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"else"},"message":"must match \"else\" schema"}] 2024-07-16 10:59:39.874 - debug: daikin-cloud.0 (952) Message received: {"command":"getRedirectBaseUrl","message":{"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"},"from":"system.adapter.admin.0","callback":{"message":{"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"},"id":55,"ack":false,"time":1721120379871},"_id":56009789} 2024-07-16 10:59:39.876 - debug: daikin-cloud.0 (952) Received OAuth start message: {"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"} 2024-07-16 10:59:39.876 - debug: daikin-cloud.0 (952) Get OAuth start link data: {"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/oauth2_callbacks/daikin-cloud.0/"} 2024-07-16 10:59:44.334 - debug: daikin-cloud.0 (952) Message received: {"command":"getOAuthStartLink","message":{"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"},"from":"system.adapter.admin.0","callback":{"message":{"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"},"id":56,"ack":false,"time":1721120384330},"_id":56009790} 2024-07-16 10:59:44.335 - debug: daikin-cloud.0 (952) Received OAuth start message: {"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/"} 2024-07-16 10:59:44.336 - debug: daikin-cloud.0 (952) Get OAuth start link data: {"clientId":"F_dUfZ0SHwKk5GyblI7v2U2D","clientSecret":"Pyt-xxxCA","redirectUriBase":"https://192.168.178.8:8081/oauth2_callbacks/daikin-cloud.0/"} 2024-07-16 10:59:44.346 - debug: daikin-cloud.0 (952) Get OAuth start link: https://idp.onecta.daikineurope.com/v1/oidc/authorize?client_id=F_dUfZ0SHwKk5GyblI7v2U2D&scope=openid%20onecta%3Abasic.integration&response_type=code&redirect_uri=https%3A%2F%2F192.168.178.8%3A8081%2Foauth2_callbacks%2Fdaikin-cloud.0%2F&state=71db947747086b4424799cdf7b797726a29a77951b363ed91f3881386e5a0e95 / reqState: 71db947747086b4424799cdf7b797726a29a77951b363ed91f3881386e5a0e95 2024-07-16 10:59:49.073 - debug: daikin-cloud.0 (952) Message received: {"command":"oauth2Callback","message":{"code":"st2.s.AtLtlwO45w.kSC6Kkfp2J9fhMUecPSIwUtuJ3pufurc0pHm9-UpKGFqutF8AbcOgUdQjNQC5YDgwaPnwjgj66kk4DhMRbTuZm_pntHMmqeEjaTZoi7v6gdGk16qKdBiHC4Msq6yidlH.rZ0oD4k6av1PZAgBK7_NDxpdly8DFTOtjKq_GNaNixBIdePlMtf7yHz2SaoiOB8GZLdug8eMcCarF-Xq1H7j8A.sc3","state":"71db947747086b4424799cdf7b797726a29a77951b363ed91f3881386e5a0e95"},"from":"system.adapter.admin.0","callback":{"message":{"code":"st2.s.AtLtlwO45w.kSC6Kkfp2J9fhMUecPSIwUtuJ3pufurc0pHm9-UpKGFqutF8AbcOgUdQjNQC5YDgwaPnwjgj66kk4DhMRbTuZm_pntHMmqeEjaTZoi7v6gdGk16qKdBiHC4Msq6yidlH.rZ0oD4k6av1PZAgBK7_NDxpdly8DFTOtjKq_GNaNixBIdePlMtf7yHz2SaoiOB8GZLdug8eMcCarF-Xq1H7j8A.sc3","state":"71db947747086b4424799cdf7b797726a29a77951b363ed91f3881386e5a0e95"},"id":57,"ack":false,"time":1721120389071},"_id":56009791} 2024-07-16 10:59:49.074 - debug: daikin-cloud.0 (952) OAuthRedirectReceived: {"code":"st2.s.AtLtlwO45w.kSC6Kkfp2J9fhMUecPSIwUtuJ3pufurc0pHm9-UpKGFqutF8AbcOgUdQjNQC5YDgwaPnwjgj66kk4DhMRbTuZm_pntHMmqeEjaTZoi7v6gdGk16qKdBiHC4Msq6yidlH.rZ0oD4k6av1PZAgBK7_NDxpdly8DFTOtjKq_GNaNixBIdePlMtf7yHz2SaoiOB8GZLdug8eMcCarF-Xq1H7j8A.sc3","state":"71db947747086b4424799cdf7b797726a29a77951b363ed91f3881386e5a0e95"} 2024-07-16 10:59:52.657 - error: daikin-cloud.0 (952) 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(). 2024-07-16 10:59:52.657 - error: daikin-cloud.0 (952) unhandled promise rejection: outgoing request timed out after 3500ms 2024-07-16 10:59:52.686 - error: daikin-cloud.0 (952) RPError: outgoing request timed out after 3500ms at /opt/iobroker/node_modules/openid-client/lib/helpers/request.js:140:13 at Client.grant (/opt/iobroker/node_modules/openid-client/lib/client.js:1343:22) at OnectaClient.#authorize (/opt/iobroker/node_modules/daikin-controller-cloud/src/onecta/oidc-client.ts:80:16) at OnectaClient.#getTokenSet (/opt/iobroker/node_modules/daikin-controller-cloud/src/onecta/oidc-client.ts:130:24) 2024-07-16 10:59:52.686 - error: daikin-cloud.0 (952) outgoing request timed out after 3500ms 2024-07-16 10:59:52.704 - info: daikin-cloud.0 (952) terminating 2024-07-16 10:59:52.705 - debug: daikin-cloud.0 (952) Plugin sentry destroyed 2024-07-16 10:59:52.706 - warn: daikin-cloud.0 (952) Terminated (UNCAUGHT_EXCEPTION): Without reason 2024-07-16 10:59:53.207 - info: daikin-cloud.0 (952) terminating 2024-07-16 10:59:54.582 - info: host.a5c3602f2617 stopInstance system.adapter.daikin-cloud.0 (force=false, process=true) 2024-07-16 10:59:54.689 - info: host.a5c3602f2617 stopInstance system.adapter.daikin-cloud.0 send kill signal 2024-07-16 10:59:55.690 - info: host.a5c3602f2617 stopInstance system.adapter.daikin-cloud.0 killing pid 952 2024-07-16 10:59:57.264 - error: host.a5c3602f2617 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: 2024-07-16 10:59:57.265 - error: host.a5c3602f2617 Caught by controller[1]: RPError: outgoing request timed out after 3500ms 2024-07-16 10:59:57.265 - error: host.a5c3602f2617 Caught by controller[1]: at /opt/iobroker/node_modules/openid-client/lib/helpers/request.js:140:13 2024-07-16 10:59:57.265 - error: host.a5c3602f2617 Caught by controller[1]: at Client.grant (/opt/iobroker/node_modules/openid-client/lib/client.js:1343:22) 2024-07-16 10:59:57.265 - error: host.a5c3602f2617 Caught by controller[1]: at OnectaClient.#authorize (/opt/iobroker/node_modules/daikin-controller-cloud/src/onecta/oidc-client.ts:80:16) 2024-07-16 10:59:57.265 - error: host.a5c3602f2617 Caught by controller[1]: at OnectaClient.#getTokenSet (/opt/iobroker/node_modules/daikin-controller-cloud/src/onecta/oidc-client.ts:130:24) 2024-07-16 10:59:57.265 - info: host.a5c3602f2617 instance system.adapter.daikin-cloud.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2024-07-16 10:59:57.774 - info: host.a5c3602f2617 instance system.adapter.daikin-cloud.0 started with pid 967 2024-07-16 10:59:59.306 - debug: daikin-cloud.0 (967) Redis Objects: Use Redis connection: 127.0.0.1:9001 2024-07-16 10:59:59.354 - debug: daikin-cloud.0 (967) Objects client ready ... initialize now 2024-07-16 10:59:59.356 - debug: daikin-cloud.0 (967) Objects create System PubSub Client 2024-07-16 10:59:59.358 - debug: daikin-cloud.0 (967) Objects create User PubSub Client 2024-07-16 10:59:59.427 - debug: daikin-cloud.0 (967) Objects client initialize lua scripts 2024-07-16 10:59:59.434 - debug: daikin-cloud.0 (967) Objects connected to redis: 127.0.0.1:9001 2024-07-16 10:59:59.485 - debug: daikin-cloud.0 (967) Redis States: Use Redis connection: 127.0.0.1:9000 2024-07-16 10:59:59.505 - debug: daikin-cloud.0 (967) States create System PubSub Client 2024-07-16 10:59:59.506 - debug: daikin-cloud.0 (967) States create User PubSub Client 2024-07-16 10:59:59.580 - debug: daikin-cloud.0 (967) States connected to redis: 127.0.0.1:9000 2024-07-16 10:59:59.627 - debug: daikin-cloud.0 (967) Plugin sentry Initialize Plugin (enabled=true) 2024-07-16 11:00:00.076 - info: daikin-cloud.0 (967) starting. Version 0.4.8 in /opt/iobroker/node_modules/iobroker.daikin-cloud, node: v18.19.0, js-controller: 5.0.19 2024-07-16 11:00:00.127 - warn: daikin-cloud.0 (967) No tokens existing, please enter client id and secret of your Daikin Developer Account in Adapter settings and Authenticate via Admin Interface!