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

Meinhard99

Hallo Frank,

vielen Dank für die schnelle Antwort.
Ich habe den Zugang auf eigene Secrets umgestellt. Auf den ersten Blick scheint alles zu laufen.
Wenn Probleme auftreten sollten, werde ich mich melden.

Auf diesem Weg vielen Dank für die Entwicklung des Moduls.

Viele Grüße
Meinhard

Gisbert

Hallo Frank,

hier ist meine Rückmeldung zur Einrichtung einer eigenen App. Es hat alles funktioniert, wie du es hier im Forum und bei GitHub beschrieben hast. Da meine Anlage stromlos ist, konnte ich keine umfassende Funktion testen. In Fhem scheint aber alles zu laufen, und alle 15 Minuten werden im Master-Device neue Daten abgefragt, und das Reading RateLimit-Remaining-day wird entsprechend runter gezählt.

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

artjom83

Bei mir hat es anfangs sehr gut funktioniert. Aber jetzt/aktuell scheint die API aufgrund zu vieler Anfragen gesperrt zu sein. 😔
Ein get forceUpdate gibt folgenden Status zurück:


DaikinCloud (UpdateRequest): Request limit exceeded. Automatically retry after 31535 seconds.

Fakenius

Hallo Frank,

nach jedem "modify" der DaikinCloud-Objekte wird dem Objekt wieder ein neuer "room" zugewiesen: DaikinCloud_Devices

Ich persönlich finde das etwas anstrengend ;)  Bei der Erstdefinition OK. Aber jeder hat ja so seine Ordnung... Vor allem, wenn man mehrere Geräte in verschiedenen (richtigen) Räumen hat.

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

@artjom83

Für alle, die aktuell noch die CLIENT_ID = eMe1bH5NZ970D-wfj_SkaUlE (vgl. INTERNAL Master-Device) nutzen besteht Handlungsbedarf! Wie bereits unter #134 erläutert, ist es erforderlich im Daikin Developer Portal eine eigene App anzulegen und im Anschluss das Master-Device mit
defmod <Daikin-Master-Name> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> <REDIRECT_URI> individuell anzupassen und dann den Authorisierungslink nochmal zu folgen.

Für alle, die noch mit den temporären test-Credentials (CLIENT_ID = emU20GdJDiiUxI_HnFGz69dD) arbeiten: Diese temporären test-Credentials werden von Daikin Ende August deaktiviert (vgl. auch Issue im Github.

Insoweit ist es auf absehbare Zeit für alle erforderlich, selbst im Daikin Developer Portal eine eigene App anzulegen, soweit sie das Modul weiter nutzen möchten. Ich habe auch die allgemeine Anleitung zur Einrichtung / Vorbereitung im ersten Post #1 angepasst und werde versuchen, sie aktuell zu halten.

@Fakenius

Im Rahmen eines "modify" werden in der Tat die Standard-Attribute (betrifft also beim Master-Device die Attribute autocreate, interval, consumptionData und room) zugewiesen. Das ist so eigentlich nicht gewollt bzw. von mir bedacht. Der praktische Anwendungsfall beschränkt sich jetzt aber nur auf die nun erforderliche einmalige Umstellung des Master-Devices auf die individuellen Werte für CLIENT_ID, CLIENT_SECRET, REDIRECT_URI, oder? Für die Innengeräte muss kein "modify" durchgeführt werden. Ich gebe aber zu, dass es unschön ist und würde das bei Gelegenheit noch mit ausbessern.

MfG Frank

FrankL

Ich habe eine aktuelle Version (v2.1.10) auf Github eingecheckt, die die vorhandenen Attribute im Rahmen eines  "modify" nicht mehr verändert. Die Commandref und die Hinweise sind ebenfalls aktualisiert im Hinblick auf das Anlegen einer eigenen App im Daikin Developer Portal.

Die Version kann mit folgendem Befehl aktualisiert werden.
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
Danach ist wie immer ein "reload 58_DaikinCloud.pm" (oder alternativ ein "shutdown restart") erforderlich, damit die Änderungen geladen werden.

MfG Frank

artjom83

Hallo Frank,

sorry, die Info fehlte. Ich habe das Modul in v2.1.8 genau wie in #134 eingerichtet, mit eigener App über das Daikin Developer Portal. Es hatte auch paar Tage funktioniert.
Ich habe jetzt die v2.1.10 geladen und erneut eingerichtet. Warte dann die Sperre ab und hoffe dass es nicht nochmal auftritt.

Gruß
Artjom

Gisbert

Hallo Frank,

die Hauptanwendung für mein Daikin-Single-Splitanlage mit einem Truheninnengerät ist das Zuheizen im Winter fürs Wohnzimmer.

Demnach gab es noch keine Gelegenheit deine Installation zu testen. Da es heute wieder warm zu werden droht, hab ich die Kühlfunktion getestet - die Steuerung läuft perfekt aus Fhem heraus.

In der Onecta App auf meinem Handy gibt es ein neues Firmware-Update : von 1_28_0 auf  1_31_0.
Kann ich das bedenkenlos updaten, oder bloß nicht? Was ist deine Empfehlung?

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 Ergänzung bzw. Anregung.

Da ich ja fast ausschließlich den Winterbetrieb habe und da dann aus Fhem heraus automatisiert die Temperatur rauf oder runter setze, ist mir die Slider-Funktion für die Temperatur gar nicht weiter aufgefallen.

Wenn ich jetzt die Temperatur händisch im Fhem-Device verändern möchte, gelingt mir das erst im 2. oder 3. Anlauf mit meinen fetten Fingern am Handy. Könnte man dafür nicht ein Pulldown-Menu mit den erlaubten Werten von Min bis Max in 0.5°C-Schritten einführen?

Da es dein Modul ist, und du damit für deine Bedürfnisse die beste Lösung realisiert hast, liegt die Entscheidung darüber natürlich bei dir.

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

@Gisbert

Das Update auf 1_31_0 hatte ich damals schon durchgeführt siehe Post #114. Kannst du eigentlich ohne Bedenken durchführen.

Wenn du den Slider für die Temperatur nicht magst, kannst du mit dem Attribut widgetOverride auch was eigenes definieren. Für ein Dropdown z.B.:

attr <NAME DEVICE> widgetOverride setpoint:18,18.5,19,19.5,20
Da kann sich jeder seine individuellen Präferenzen als Vorauswahl einstellen. Wenn du aber die ganze mögliche Spanne in 0,5 Grad-Schritten reinpackst, wird das Dropdown schon mächtig lang. Wie gesagt, kann jeder anpassen, wie er es mag. Ich geb dir aber Recht, dass sich so ein Dropdown mit einer gewissen Vorauswahl an Temperaturen gerade auf dem Smartphone besser bedienen lassen würde.

@artjom83

Die Sperre müsste ja mittlerweile ausgelaufen sein. Funktioniert wieder alles?

Ich habe bei mir ein FileLog angelegt, welches auf das Reading "RateLimit-Remaining-day" im Master-Device triggert und den Wert loggt. Also so z.B.

define LogLimitDay FileLog ./log/LogLimitDay-%Y.log <NAME MASTER-DEVICE>.*:RateLimit-Remaining-day.*
wobei <NAME MASTER-DEVICE> durch den richtigen Device-Name zu ersetzen wäre.

Bei den Werten sind zwar manchmal nicht nachvollziehbare Abweichungen nach oben oder unten dabei, aber in der Summe alles im grünen Bereich. Gibt Bescheid, falls es bei dir noch Probleme geben sollte. Ansonsten vielleicht das FileLog anlegen, damit wir das Problem näher eingrenzen können.

MfG Frank

artjom83

Hallo Frank,

leider nein, scheint heute Nacht wieder direkt in eine neue Sperre reingelaufen zu sein. 😔 Habe jetzt mal das FileLog angelegt.

Was mich etwas wundert... Im Daikin Developer Portal steht in den Analytics "0" Requests. Ist es bei euch auch so?

Grüße
Artjom

FrankL


Die Statistikfunktionen sind (derzeit) im Daikin Developer Portal nicht nutzbar. Dort dürfte überall 0 bzw. 0% drin stehen.

Ich sehe bei deinem Problem aktuell nur zwei Möglichkeiten, an denen das liegen könnte:
  • Entweder ist der Zugang noch nicht richtig auf deine eigene App umgestellt worden.
  • Oder du setzt (ggf. automatisiert) zu oft Steuerbefehle ab. Ich erwähne dass, weil manche z.B. mit der alten API eine temperaturgeführte Steuerung automatisiert hatten und so aller paar Minuten eine neue Setpoint-Temperatur an Daikin übermittelt hatten. Sowas wäre mit der neuen API nicht realisierbar bzw. würde ggf. zu solchen Problemen/Sperrungen führen.

Nur um sicherzugehen, ob du die Umstellung auf die eigene App richtig zu Ende gebracht hast, würde ich die einzelnen Schritte mit den markanten Punkte hier nochmal darstellen:
  • Du hast im Daikin Developer Portal eine eigene App mit eigenem Namen angelegt und hast eine eigene Client_Id und ein eigenes Client_Secret erhalten.
  • Du hast ein defmod deines Master-Devices gemacht mit deinen individuellen Client_Id und Client_Secret, also "defmod <NAME MASTER-DEVICE> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> <REDIRECT_URI>".
  • D.h. in dem INTERNAL CLIENT_ID deines Master-Devices steht weder die Client_Id "eMe1bH5NZ970D-wfj_SkaUlE" noch die Client_Id "emU20GdJDiiUxI_HnFGz69dD", sondern deine eigene erstellte Client_Id.
  • Nach dem defmod drückst du nochmal F5, damit die Browserseite von FHEM aktualisiert wird und das INTERNAL AUTHORIZATION_LINK ebenfalls den aktuellen Link enthält.
  • Du klickst auf den AUTHORIZATION_LINK, gelangst damit zur Daikin-Seite und erlaubst deiner angelegten App (d.h. überprüfe, ob der Name der dort genannten App mit dem von dir vergebenen Namen für die App identisch ist) den Zugriff.
  • Du wirst zur Redirect-URI weitergeleitet, kopierst den kompletten Link (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) in die Zwischenablage.
  • Du übergibst den Link aus der Zwischenablage an FHEM mit "set <NAME DAIKIN-MASTER> AuthCode <kompletter Link>".
  • Wenn das geklappt hat, werden die Readings "token_status", "expires_in", "token_type" aktualisiert.

Im Zweifel kannst du die Schritte "zur Sicherheit" auch einfach nochmal durchführen. Damit du gleich den Erfolg testen kannst, musst du hilfsweise das Reading "Retry-After" im Master-Device manuell löschen (ansonsten würde das Modul brav die Sperrzeit abwarten):
deletereading <NAME MASTER-DEVICE> Retry-AfterDanach ein
get <NAME MASTER-DEVICE> forceUpdateund schauen, was das Reading "RateLimit-Remaining-day" sagt bzw. ob das Reading "Retry-After" wieder mit einem Wert erstellt worden ist.

Wenn das nicht zum Erfolg geführt hat, besteht auch die Möglichkeit, die im Daikin Developer Portal angelegte App nochmals zu löschen und neu anzulegen. Dabei wird eine neue Client_Id und Client_Secret ausgegeben und das RateLimit startet komplett von neuem, so dass dann auf jeden Fall erstmal wieder Requests gestellt werden können.

Wenn es soweit erstmal läuft, würde ich wie im letzten Post vorgeschlagen ein FileLog angelegen, welches auf das Reading "RateLimit-Remaining-day" im Master-Device triggert, um eventuelle Probleme, die sich ggf. aus zu häufigen Abfragen ergeben, besser zu erkennen.

Gib Bescheid, wenn es läuft oder weiterhin Probleme gibt.

MfG Frank 

FrankL

Welchen Wert hast du eigentlich beim Attribut "interval" eingestellt? Den Standardwert von 900?

MfG Frank

WD

Hallo Frank,
ich habe eine Altherma da ist mir aufgefallen wenn ich den Slider setpoint z.b. auf 23 setze.
Das Reading setpoint auch auf 23 gesetzt wird, aber nach kurzer Zeit der Slider auf
12,5 gestellt und das Reading setpoint auf den Wert des Warmwasser setpoint gestellt wir.
Außerdem ist mir aufgefallen das es den setpoint_domesticHotWaterTank nicht mehr als Reading und Slider gibt.

Mfg Wolfgang

FrankL

Ich denke ich habe den Fehler und gefunden. Ich eine aktuelle Version v2.1.11 - 27.06.2024 eingecheckt. Kannst du mal testen, ob es funktioniert? Da ich selbst keine Altherma habe, kann ich das nicht wirklich real testen.

update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txtreload 58_DaikinCloud.pm
Als Folge haben jetzt noch weitere Readings ein Appendix mit der Managementbezeichnung. Aber ich denke, dass dürfte nicht stören bzw. hilft vielleicht sogar, die Werte besser einorden zu können.

MfG Frank