Neues Modul: 58_DaikinCloud.pm zur Einbindung von DAIKIN Geräten über Cloud (ONECTA)

Begonnen von FrankL, 05 April 2023, 20:48:40

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo Frank,

ich hab die Anmeldeprozedur durchlaufen, die du am 5. Mai 2024 beschrieben hast. Der Grund, warum ich das gemacht habe, war dass ich mich nicht mehr bei Daikin einloggen konnte und "get Daikin_Master tokenSet" auch nicht mehr funktioniert hat. Das Daikin_Master_Device scheint jetzt wieder zu arbeiten, allerdings ist die Anlage derzeit aus, so dass ich noch keinen abschließenden Funktionstest gemacht habe.

Bei der Internetseite aus dem Browser (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) nehme ich an, dass man die Seite anschließend schließen kann, ohne sich bei Daikin auszuloggen.

Es sind noch 2 Readings vorhanden, die jetzt nicht erneuert werden:
login_status Error (16) no login-token found (wrong username or password).
status_setcmd command successfully submitted

Kann ich die ignorieren oder ggf. löschen oder lieber nicht löschen?

Vielen Dank und viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

Hallo Frank,

noch eine Nachfrage bzgl. des minimalen Intervalls.
Ich habe eine Single-Splitanlage und rein rechnerisch müsste ein Intervall von 432 Sekunden exakt 200 Abfragen pro Tag ergeben.
Gibt es die Möglichkeit das minimale Intervall von 900 auf 450 oder ggf. 600 Sekunden runterzusetzen? Was würde eigentlich passieren, wenn mehr als 200 Abfragen pro Tag erfolgen? Hat das evtl. nicht nur negative Ergebnisse für einen selbst sondern auch für alle anderen Nutzer?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

FrankL

Hallo Gisbert,

mal kurz die Antworten zu deinen Fragen:

Die Internetseite aus dem Browser (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) kannst du ganz normal schließen, nachdem du den Link in die Zwischenablage kopiert hast.

Das Reading "login_status" im Master-Device wird nicht mehr aktualisiert, weil die Authorisierung jetzt separat auf der Seite von Daikin erfolgt. Du kannst die Readings auch einmal generell löschen, falls sie dich stören deletereading <Name Master-Device> .* Alle Readings, die verwendet werden, werden beim nächsten Polling/Request wieder automatisch angelegt. Dies gilt auch für die Indoor-Devices, da nicht alle Datenpunkte und Set-Commands über die neue API zur Verfügung stehen.

Ich habe das minimale Abfrage-Interval auf 900 Sekunden definiert, damit auch noch genug Requests für das Absetzen von Befehlen zur Verfügung stehen. Jedes An- oder Ausschalten, jede Änderung des Modus, des Swing oder Temperatur, etc ist jeweils ein Request, so dass man mit den Abfragen bzw. dem Absetzen von Commands sparsam umgehen sollte. Wenn das Tageslimit von 200 überschritten ist, werden alle weiteren Anfragen abgelehnt, bis das RateLimit-Reset erreicht wurde. Wichtig zu wissen dabei ist, dass die abgelehnten Anfragen ebenfalls als Anfrage gezählt werden und so das RateLimit-Reset weiter erhöhen (ein Teufelskreis). Ich habe versucht, im Modul ein Überschreiten der Auslastung bestmöglich abzufangen. Ich denke aber, dass es sinnvoll ist, das Interval nicht noch weiter herabzusetzen, da dann die Auslastung-Probleme vorprogrammiert sind. Im Master-Device bekommt man mit den Readings RateLimit-... einen guten Überblick über die aktuelle Auslastung der eigenen Requests. Der Tageszeitraum von 24h ist nicht starr (d.h. wird nicht um = Uhr zurückgesetzt), sondern ist jeweils fortlaufend.

Ob ein dauerhaftes Überschreiten des Limits ggf. auch Auswirkung auf andere Nutzer des Moduls hat, kann ich aktuell noch nicht sagen.

MfG Frank


Fakenius

Hallo Frank,

super Modul, vielen Dank. Da ich meine AC nur wenige Wochen im Jahr nutze meine Frage nach der "Best Practise" für die Stilllegungsphase. Ein "disable" habe ich nicht gefunden!? Sollte man "interval" auf einen hohen Wert setzen?

Danke und Grüße
Joachim
FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)

FrankL

Hallo Joachim,

ein echtes "disable" ist aktuell nicht integriert. Du kannst aber das Attribut "interval" auf "0" setzen, dann wird kein regelmäßiges Abrufen der Daten mehr durchgeführt. Ich denke, dass wäre für eine Stilllegungsphase eine alternative Lösung. Die Info werde ich mal noch in der Commandref mit aufnehmen.

Wenn du es in der Stilllegungsphase weiterhin regelmäßig abrufst, wäre das aber auch kein Problem. Wenn deine Geräte in der Stilllegungsphase stromlos sind, würde die Cloud jeweils immer die letzten empfangenen Werte zurückgeben (soweit die Theorie, siehe reading "timestamp"). Wenn die Geräte weiterhin am Strom sind, könntest du mit einem regelmäßigen Abrufen auch allgemeine Werte (outdoorTemperature, roomTemperature, kWh) weiterhin auswerten oder loggen.

MfG Frank

Fakenius

Zitat von: FrankL am 15 Juni 2024, 22:33:37Hallo Joachim,

ein echtes "disable" ist aktuell nicht integriert. Du kannst aber das Attribut "interval" auf "0" setzen, dann wird kein regelmäßiges Abrufen der Daten mehr durchgeführt...

Ja, werde "interval" auf "0" setzen. Das ist das, was mir vorschwebt.

Super, vielen Dank und schönen Sonntag.

Joachim
FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)

x-ingo

Hallo Frank,

nachdem ich heute von Daikin eine Benachrichtigung bekommen habe, dass die alte API im Juli deaktiviert wird, habe ich umgestellt gemäß deiner Anleitung. Es hat problemlos funktioniert.

Danke und Grüße,
Ingo

Fakenius

Hallo Frank,

mache ich meine AC stromlos, verschwinden die Widgets (Power, Temperatur, Modus) im DeviceOverview des Innengerät-Devices und es erscheint stattdessen Text (siehe Anhang).

Bug oder Feature? ;)

Danke und Grüße
Joachim

FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)

FrankL

Hallo Joachim,

die Widgets stellen optisch nur dann etwas als steuerbar dar, wenn es auch steuerbar ist. In dem Moment, wo du die AC stromlos machst, geht die Verbindung zur Cloud natürlich auch verloren, d.h die Geräte sind dann auch nicht mehr steuerbar (vgl. auch reading "isCloudConnectionUp").

Das ist zwar optisch nicht ganz so schön, dient aber vorrangig dazu, dass keine Befehle abgesetzt werden, die dann ohnehin von der Cloud mit Fehlermeldung zurückgewiesen würden.

Ob nun Bug oder Feature liegt im Auge des Betrachters ;-)

Bei uns hängt die AC das ganze Jahr am Strom, so dass ich das noch nicht so wahrgenommen habe. Lediglich wenn ich z.B. in den Modus "fanOnly" schalte, ist z.B. das Temperaturwidget nicht da, weil dann keine Temperatureinstellung mehr zulässig ist. Aber das ist für mich so ok.

Du kannst die Widgets aber auch über die Attribute webCmd und webCmdLabel abändern oder ggf. auch löschen, falls du es individueller möchtest.

MfG Frank

Fakenius

... danke für die schnelle Antwort. Zur WAF-Erhöhung werde ich mir dann etwas einfallen lassen.

Grüße
Joachim
FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)

FrankL

Wenn die Widgets immer gleich aussehen sollen, unabhängig davon, welcher Modus eingestellt ist oder ob sie tatsächlich steuerbar sind, kannst du mit dem Attribut "widgetOverride" das ganze erzwingen, z.B.:

attr <DeviceName> widgetOverride setpoint:slider,18,0.5,25,1 onOffMode:on,off
Die Definition sorgt dafür, dass immer ein Slider für Temperatur im Bereich von 18 bis 25 Grad in 0,5 Grad-Schritten ausgewählt werden kann bzw. immer on/off angezeigt bzw. auswählbar ist. Das ganze kann beliebig abgeändert bzw. für weitere Widgets erweitert werden.

Zumindest für den WAF kann das dann einen Nutzen haben :D, im Übrigen ist damit aber keine weitergehende Funktionalität verbunden.

MfG Frank

FrankL

Hallo liebe Modulbenutzer,

mich hat gestern ebenfalls die Benachrichtigung von Daikin erreicht, die Ingo bereits angesprochen hatte:

Zitat von: noreply@daikineurope.com: Onecta Cloud API Key Invalidation – action requiredDear Daikin Customer,
We noticed that you are using the Onecta Cloud API with deprecated API key credentials. Please be informed that the API key will be invalidated starting 03 July 2024.

You can switch to our new open Onecta Cloud API platform free of charge. The API is fully documented on our developer portal:

.  Daikin Developer Portal

You can log in to this portal using your current Onecta App account. Only minor changes are required to update your current application to keep it running with the new Cloud API.

If you are using third-party software or open-source software, please contact the respective developers for further actions.

Without action on your part, your automation or integration application will stop working on 03 July 2024.

If you are no longer interested in using the Onecta Cloud API or if your automation application is no longer in use, please disable the interaction with the Onecta Cloud API.

Regards,
Daikin Residential Cloud Developer

Dass die alte API abgeschaltet wird, stand ja schon länger fest. Damit dürfte nun auch der Zeitpunkt (03.07.2024) definitiv sein. Eigentlich wollte ich nun die Empfehlung zum Umstieg auf die neue Modulversion aussprechen, habe aber gerade folgendes Problem bei mir festgestellt:

Seit heute früh (also seit genau 2024.06.19 08:16:56) wird bei mir geloggt, dass das RateLimit-Remaining-day bei 0 liegt und ich erst in 31863 Sekunden wieder Daten abrufen/senden darf/kann. Meine Nutzung ist aber nicht derart umfangreich, so dass ich mir die Beschränkung nicht erklären kann. Entweder handelt es sich um ein Problem auf Seiten von Daikin oder Gisbert könnte mit seiner Vermutung richtig liegen, dass das Nutzungsverhalten mehrerer Nutzer zusammen betrachtet wird. Das wäre natürlich fatal.

Daher folgende Frage in die Runde:

1. Hat jemand schon die aktuelle Modulversion (v2.1.8 - 15.06.2024) im Einsatz und benutzt die vordefinierte CLIENT_ID, CLIENT_SECRET und REDIRECT_URI ? Wenn ja, ist dort ebenfalls im Master-Device das RateLimit-Remaining-day bei "0" und das RateLimit-Reset im fünfstelligen Bereich ?

2. Hat jemand schon eine eigene App im Daikin Developer Portal erstellt und arbeitet mit seinen individuellen Credentials (CLIENT_ID, CLIENT_SECRET und REDIRECT_URI). Gibt es da auch Auffälligkeiten bei RateLimit-Remaining-day und RateLimit-Reset im Master-Device ?

MfG Frank

Fakenius

Zitat von: FrankL am 19 Juni 2024, 13:24:11Wenn die Widgets immer gleich aussehen sollen, unabhängig davon, welcher Modus eingestellt ist ...
Danke, das hilft ;-)

Zu Deiner aktuellen Umfrage: habe die aktuelle Version und hatte "vordefiniert definiert" aber (bisher) keine Auffälligkeiten bzgl. RateLimit-Remaining-day und RateLimit-Reset.

Gruß
Joachim
FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)

Meinhard99

Hallo in die Runde,
Ich habe heute, 19.6.24 um 9:21 das neue Modul installiert, nachdem ich gestern die Email von Daikin erhalten hatte.
Ich sehe den gleichen Effekt:
im Master-Device ist das RateLimit-Remaining-day bei "0" und das RateLimit-Reset im fünfstelligen Bereich.
Viele Grüsse
Meinhard

FrankL

Hallo Meinhard,

ich hab das Problem mittlerweile bestätigt bekommen. Das Problem ist, dass Daikin die Rate Limitation nicht an den einzelnen Nutzer, sondern an die im Daikin Developer Portal angelegte App knüpft. Mittlerweile ist auch ein entsprechender Hinweis in den Guidelines zu finden:

Zitat von: DAIKIN General API GuidelinesRate limitation
A rate limitation is applied to every application that is created through this developer portal. All applications will have the following default rate limit:
rate limit per day: 200
rate limit per minute: 20
Für Open-Source Developer wird es da auch keine Ausnahme geben:
Zitat von: DAIKIN Business validation / Open-Source DevelopersAs an Open-Source Developer, you create and maintain software solutions for a big group of users. Developers and users who want to use this software will still need to retrieve, on individual base, their credentials through the Developer Portal using the self-service functionality.

Im Endeffekt bedeutet dies, dass sich jeder Nutzer im Daikin Developer Portal anmelden muss und dort eine App anlegen und die Zugangsdaten (CLIENT_ID, CLIENT_SECRET, REDIRECT_URI) abrufen muss. Ich habe eine genaue Anleitung hierfür auf github hinterlegt. Das ganze ist zwar kein Hexenwerk, aber ich kann beim besten Willen nicht verstehen, warum von Daikin da solche Steine in den Weg gelegt werden.

Wenn du im Daikin Developer Portal deine App erstellt und die Zugangsdaten hast, kannst du in FHEM mit:
defmod <Daikin-Master-Name> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> <REDIRECT_URI>dein Master-Device anpassen. Danach die Browserseite neu laden (F5), damit dass INTERNAL AUTHORIZATION_LINK auch aktualisiert wird. Dann AUTHORIZATION_LINK anklicken und den Authorisierungsprozess nochmal wie gehabt durchlaufen.

Dann hast du deine "eigene App" mit deinem eigenen RateLimit.

Gib Bescheid, ob es geklappt hat oder wenn irgendwas nicht gehen sollte.

MfG Frank