Hallo liebe FHEM-Gemeinde,
ich möchte an dieser Stelle das von mir geschriebene Modul 58_DaikinCloud.pm vorstellen. Es dient der Einbindung von Daikin-Geräten (Klimageräte, Altherma-Wärmepumpen, etc), die nur noch per Cloud über die ONECTA-App erreichbar sind. Betroffen hiervon sind insbesondere die Innengeräte, die mit einem WLAN-Modul vom Typ BPR069C4X ausgestattet sind und über keine lokale API mehr verfügen (und damit nicht mehr über 58_HVAC_DaikinAC.pm integriert werden können).
Mit den Modulversionen v1.x.x erfolgte bislang der Zugriff auf die Daikin-Cloud über eine per Reverse Engineering entwickelte Lösung. Dieser Zugang bzw. die entsprechenden Zugangs-Keys werden von Daikin am 03.07.2024 deaktiviert! Mittlerweile hat Daikin aber für die Cloud-Anbindung eine offene API geschaffen und dokumentiert. Auf dieser offenen API basieren nunmehr die Modulversionen v2.x.x!
Die Einrichtung (bzw. die Umstellung von der Modulversion v1.x.x auf v2.x.x.) wird hier beschrieben. Ich versuche die Beschreibung bzw. mögliche Änderungen auch hier im ersten Post aktuell zu halten.
1. Vorbereitung
Damit die Klimageräte gesteuert werden können, ist es erforderlich, dass der Registrierungsprozess in der ONECTA-App abgeschlossen worden ist. Das heißt die Innengeräte sind mit dem Internet verbunden und in der ONECTA-App ersichtlich.
Um die Schnittstelle (API) von Daikin nutzen zu können, muss zunächst das Daikin Developer Portal (https://developer.cloud.daikineurope.com/login) aufgerufen werden. Dort meldest du dich mit den Zugangsdaten für die ONECTA-App an.
Im Daikin Developer Portal legst du wie folgt eine neue APP an: Rechts oben bei deiner E-Mail-Adresse öffnest du das Drop-Down-Menü und wählst My Apps -> New App. Du vergibst einen frei wählbaren Application Name (z.B. FHEM - DaikinCloud). Ferner definierst du die REDIRECT_URI. Die REDIRECT_URI wird im Rahmen des Authorisierungsprozesses nur einmal benötigt, um den initialen Authorisierungscode vom Authorisierungsserver zu erhalten. Am einfachsten ist es, dort die Adresse https://my.home-assistant.io/redirect/oauth zu verwenden.
Es besteht auch die Möglichkeit, eine individuelle REDIRECT_URI für FHEM zu definieren. Diese muss nach folgendem Schema erstellt/definiert werden: https://<IP-FHEM-Server>:8083/fhem?cmd=set%20<Master-Device-Name>%20AuthCode%20. Hierbei ist zu beachten, dass nur sichere Verbindungen (also https) als REDIRECT_URI akzeptiert werden. Eine individuelle REDIRECT_URI funktioniert also nur, wenn ihr SSL auf eurem FHEM eingerichtet habt. IP-FHEM-Server und Master-Device-Name sind durch die entsprechende IP und Device-Namen zu ersetzen. Ferner ist zu beachten, dass bei Nutzung des csrfToken in FHEM (Standard ab FHEM-Version 5.8) noch ein &fwcsrf=<dein CSRF-Token> angehangen wird (zu ersetzen durch den jeweiligen CSRF-Token -> vgl. INTERNAL CSRFTOKEN im Device FHEMWEB). Da die individuelle Konfiguration der REDIRECT_URI mit vielen Fallstricken verbunden ist, kann ich jedem Einsteiger nur empfehlen stattdessen https://my.home-assistant.io/redirect/oauth als REDIRECT_URI zu verwenden.
Im Anschluss werden dir die CLIENT_ID und (einmal!) das CLIENT_SECRET angezeigt. Kopiere und speichere dir diese beiden Werte. Achte insbesondere darauf, das CLIENT_SECRET zu speichern, da es nur dieses eine Mal angezeigt wird! Solltest du das CLIENT_SECRET nicht gespeichert haben oder nicht mehr wissen, hilft nur die App im Daikin Developer Portal zu löschen und neu anzulegen.
2. Installation
a) Damit das Modul in FHEM verwendet werden kann, ist der folgende update-Befehl in FHEM auszuführen:
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
Um automatisch immer die aktuelle Version des Moduls im Rahmen des FHEM-Befehls update zu erhalten, kann man den Link auch generell als Update-Quelle hinzufügen:
update add https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
b) Nach einem Update von FHEM sollte in der Regel ein Neustart von FHEM gemacht werden, damit alle Änderungen ordnungsgemäß geladen werden:
shutdown restart
c) Für die Kommunikation mit der Daikin-Cloud ist in FHEM zunächst ein Master-Device anzulegen:
define <NAME Master-Device> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> <REDIRECT_URI>
Verwende hierfür die unter Vorbereitung gespeicherten Werte für CLIENT_ID und CLIENT_SECRET. Achte darauf, dass die REDIRECT_URI zu 100% identisch mit der im Daikin Developer Portal angegebenen REDIRECT_URI ist. Ansonsten wird die Authorisierung fehlschlagen.
Wenn bereits ein Master-Device aus der Modulversion v1.x.x vorhanden ist, kannst du einfach eine Änderung/Umstellung wie folgt durchführen:
defmod <NAME Master-Device> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> <REDIRECT_URI>
d) Sobald das Master-Device erstellt worden ist, kann der AUTHORIZATION_LINK (zu finden als INTERNAL im Master-Device) aufgerufen werden, um den Authorisierungsprozess zu starten. Ihr werdet auf die Seite von Daikin geleitet, müsst euch dort einloggen, den Nutzungsbedingungen zustimmen und die Freigabe der Daten erlauben. Anschließend werdet ihr auf die REDIRECT_URI weitergeleitet.
e) Wenn ihr eine individuelle REDIRECT_URI für FHEM konfiguriert habt, wird der Authorisierungscode automatisch an FHEM übergeben. Wenn dies nicht funktioniert, überprüft eure REDIRECT_URI oder verwendet die oben angegebene allgemeime REDIRECT_URI. Bei Verwendung der allgemeinen REDIRECT_URI erfolgt eine Weiterleitung/Mitbenutzung von https://my.home-assistant.io/redirect/oauth, um den Authorisierungscode zu bekommen. Bevor ihr eine Fehlermeldung wie "Invalid paramaters given" wegklickt, muss der komplette Link der Internetseite aus dem Browser (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) in die Zwischenablage kopiert und in FHEM als set-command eingegeben werden:
set <NAME Master-Device> AuthCode <kompletter Link der Rückgabe-URL>
f) Mit dem Setzen des Authorisierungscodes bekommt FHEM die erforderlichen Token für den Zugriff auf die Daikin-Cloud übermittelt. Die Einrichtung des Master-Devices ist damit abgeschlossen. Die Innengeräte werden standardmäßig beim Abruf der Daten aus der Cloud als Device in FHEM angelegt. Standardmäßig werden die Daten aus der Cloud alle 900 Sekunden abgerufen / aktualisiert.
3. Verwendung
Die Daten werden in den Readings der jeweiligen Innengeräte dargestellt. Die Innengeräte können über verschiedene "Set"-Befehle gesteuert werden. Die möglichen/zulässigen Befehle sind jeweils modellabhängig. Eine nähere Dokumentation hierzu ist im Modul selbst enthalten.
Aktuell hat Daikin Request-Limits für das Abrufen der Cloud-Daten und das Senden von Kommandos hinterlegt. Pro Tag können maximal 200 Anfragen und pro Minute maximal 20 Anfragen gesendet werden. Sowohl bei dem 24-Stunden-Limit als auch dem 1-Minuten-Limit handelt es sich um gleitende Zeitfenster, die fortlaufend aktualisiert bzw. immer zeitweise zurückgesetzt werden.
Aktuell sind (noch) nicht alle Datenpunkte in der neuen API enthalten. Es fehlen insbesondere: dryKeepSetting, fanMotorRotationSpeed, heatExchangerTemperature, suctionTemperature und diverse wifi-readings. Ferner sind z.B. demandControl und demandValue nicht vorhanden, so dass aktuell auch keine Bedarfssteuerung möglich ist. Es handelt sich hierbei um Einschränkungen, die die neue API mit sich bringt und damit durch das Modul auch nicht behoben oder beseitigt werden können. Sobald Daikin die Daten in der neuen API zur Verfügung stellt, stehen diese automatisch auch (wieder) in FHEM zur Verfügung.
MfG Frank
Hallo Frank,
das sind großartige Neuigkeiten! Das Modul funktioniert auf Anhieb so wie von dir beschrieben. Echt Super!
Meine Installation umfasst ein Multisplitgerät mit drei Inneneinheiten und ein Single-Split-System. Alle Einheiten wurden in kurzer Zeit gefunden und als Geräte in fhem angelegt. Zahlreiche Readings sind vorhanden, und mit Daten gefüllt (Ausnahme: "errorCode_gateway").
Die Steuerung der Geräte via fhem funktioniert, ebenso wie das Polling der Cloud.
Noch zur Info meine Daikin-Hardware:
Multisplit
Außeneinheit: 3MXM68N2V1B9
Inneneinheiten: FTXM42R2V1B und 2x FTXM20R2V1B mit WLAN-Modul BRP069C4x
Singlesplit
Außeneinheit: RXM25N9
Inneneinheit: FTXM25N mit WLAN-Modul BRP069B4x
Herzlichen Dank und Grüße
Bernhard
Hi,
ich habe hier eine sehr ähnliche Konfiguration:
Ein Außengerät 3MXM40A, drei Innengeräte, 2x FTXM20R 1x FTXM25R (Wlan BRP069C4x)
Installation des Moduls 5 min. incl. download, alle Geräte erkannt.
Einstellungen und Istwerte werden gelesen.
PERFEKT!
Lg, Jörg
Zitat von: Starkstrombastler am 06 April 2023, 09:46:35Zahlreiche Readings sind vorhanden, und mit Daten gefüllt (Ausnahme: "errorCode_gateway").
Das Reading errorCode_gateway hat auch bei mir keinen Wert. Das stimmt auch so mit den JSON-Rohdaten aus der Daikin-Cloud überein, ist also kein Fehler. Dort hat dieser Key ebenfalls den Wert "" (leer). Ich gehe davon aus, dass der Wert erst dann gefüllt wird, wenn tatsächlich mal ein Fehler vorliegen sollte. Ob man dann mit den Fehlercodes tatsächlich was anfangen kann, ist natürlich eine andere Frage.
Auf jeden Fall schön zu hören, dass es auch mit anderen Kombinationen, also sowohl mit anderen Multi-Split-Kombis als auch mit Single-Split-Installationen problemlos läuft.
MfG Frank
Hallo Frank,
ich hab dir eine PM geschrieben - hab erst danach gesehen, dass du einen neuen Thread aufgemacht hast.
Ich hab die bisher einzige Fehlermeldung dort gepostet. Vielleicht kannst du damit etwas anfangen.
Viele Grüße Gisbert
Ich habe mir die energy-Readings angeschaut - und musste erstmal etwas knobeln um da durchzusteigen.
Der Vergleich mit den Daten in der App liefert folgende Erkenntnis:
Die d-Readings beziehen sich auf 2-Stunden-Zeitscheiben gestern (d1..d12) und heute (d13...d24).
Die w-Readings beziehen sich auf ganze Tage (Mo...So) der letzten Woche (w1...w7) und aktuelle Woche (w8...w14).
die m-Readings beziehen sich auf ganze Monate (Jan...Dez) im letzten Jahr (m1...m12) und aktuelles Jahr (m13...m24).
Einige Readings liegen in der Zukunft und sind naturgemäß mit Null gefüllt.
Erkenntnis:
- das kleinste sinnvolle Polling-Intervall für die energy-Readings ist 7200 sek.
- der besseren Lesbarkeit wegen bietet sich ein Mapping der Reading-Namen an, so dass die jeweiligen Zeitintervalle besser erkennbar sind.
Allerdings bilden diese Daten nur einen begrenzten Zeithorizont ab und sind in fhem nicht so einfach grafisch (SVG) darzustellen. Daher folgende Idee: Es wird nur für den zuletz aktualisierten Wert einer Gruppe (heating|cooling_d|w|m) ein Reading erzeugt und in der Standardansicht (attr ConsumptenData 0) dargestellt. Die Anzahl der energy-Readings schrumpft damit von 124 auf 6. Mit fhem-Bordmitteln können diese einfach archiviert und grafisch aufbereitet werden.
Hallo Bernhard,
ich hatte die energy-Readings optional mit eingebaut, aber der Auswertung noch keine große Beachtung geschenkt, weil sie nicht "live" aufgezeichnet/aktualisiert werden, sondern nur im 2-Stunden-Takt und auch die Genauigkeit (kleinste Einheit 100 Wh) und der tatsächliche Verbrauch von meinen gemessenen "realen" Werten gewissene Abweichungen hat. Ich messe bei mir den Verbrauch mit einem Tasmota-Gerät (SONOFF POWR316D), der mir das ganze besser darstellt/aufzeichnet.
Die Daten habe ich bisher stumpf aus den JSON-Werten, die aus der Cloud kommen, extrahiert. Damit sind sie natürlich genauso schön (oder eben auch häßlich), wie sie auch in der ONECTA-App zu sehen sind. Ich gebe dir Recht, dass die Bezeichnungen der energy-Readings nicht gerade selbsterklärend sind.
Nun zu deiner Idee: Ein separates Polling-Intervall für die energy-Readings von 7200 lässt sich nur bedingt umsetzen. Die Abfrage der Clouddaten bzw. die Antwort von der Cloud enthält immer alle Daten, erst bei der Verarbeitung der JSON-Daten kann ich entscheiden, gewisse Daten nicht zu verarbeiten, um Rechenressourcen zu sparen.
Standardmäßig habe ich den erstellten Indoor-Unit-Devices in FHEM das Attribut "event-on-change-reading" spendiert, d.h. es werden nur Events getriggert, bei denen ein geänderter Wert empfangen worden ist. Ich hätte jetzt gedacht, dass das fürs loggen der energy-Readings brauchbar wäre. Ein Mapping der Reading-Namen wäre aber tatsächlich sinnvoll.
Mein Problem ist eher folgendes: Ich wollte das Modul sehr universell für jedwede Geräte von Daikin halten und habe daher versucht, auf eine individuelle Veränderung/Verarbeitung der Cloud-Daten zu verzichten, da ich nicht weiß, ob die Daten von den verschiedenen Geräten jeweils identisch sind. Das fängt halt schon beim unterschiedlichen Funktionsumfang der verschiedenen Innengeräte an. Von daher weiß ich nicht, ob die consumptionData bei allen Geräten 100% identisch gestrickt ist.
Zur Not hilft es vielleicht auch erstmal vorübergehend, sich ein eigenes userReadings-Attribut anzulegen, was zur Verarbeitung/Loggen der Werte dient. Ich werde bei mir die energy-Readings mal mit loggen und schauen, was für Erkenntnisse ich daraus gewinnen kann.
MfG Frank
Ich hab mir jetzt mal eine simple Lösung überlegt, mit der der fortlaufende Jahresverbrauch in einem Reading ermittelt und dann geloggt werden könnte. Ich hab es bei mir aber zum Testen erstmal nur als userReadings angelegt. Wenn sich das so bewähren sollte, würde ich es mit ins Modul übernehmen.
Wenn jemand ebenfalls mit testen möchte, kann er bei sich unter dem attribut userReadings der jeweiligen Indoor-Devices folgenden Code speichern:
energy_heating_year:energy_heating_m.* { my $kWh=0; for (my $i=13; $i<25; $i++) {$kWh += ReadingsNum($name,'energy_heating_m_'.$i,0)}; $kWh},
energy_cooling_year:energy_cooling_m.* { my $kWh=0; for (my $i=13; $i<25; $i++) {$kWh += ReadingsNum($name,'energy_cooling_m_'.$i,0)}; $kWh}
Voraussetzung ist, dass das attribut consumptionData im Cloud-Device und in dem jeweiligen Indoor-Device auf 1 gesetzt ist.
Damit wird jeweils der aufsummierte Jahresverbrauch des aktuellen Jahres für heating und cooling als entsprechendes Reading angelegt. Wenn diese beiden Readings geloggt werden, lässt sich damit dann auch eine weitere grafische Auswertung (SVG) gut realisieren.
Als kleiner Nachteil: Zum 01.01. eines jeden Jahres würde der Jahreszähler wieder bei 0 beginnen.
Ich denke, dass dann ein seperater Tagessummen- oder Wochensummenzähler nicht erforderlich ist. Er könnte aber nach dem gleichen System realisiert werden.
MfG Frank
Hallo Frank,
für ein genaues Monitoren sind die Energy Readings eher ungeeignet. Wird aber kein separater Zähler eingesetzt sind damit zumindest tendenzielle Aussagen möglich. Daher halte ich es auf jeden Fall für sinnvoll, die Werte in ein paar wenigen Readings zu aggregieren.
Auf jeden Fall werde ich die vorgeschlagenen User-Readings ausprobieren.
MfG
Bernhard
Hallo Bernhard,
ich hab deine Idee umgesetzt und eine geänderte 58_DaikinCloud.pm hochgeladen (aktuelle Datei jeweils im ersten Post hier (https://forum.fhem.de/index.php?msg=1271178)). Die Umsetzung habe ich wie folgt vorgenommen:
Sobald im Master-Device das attribut consumptionData auf 1 gesetzt wird, werden in den Indoor-Units jeweils readings für kumulierte Tages-, Wochen- und Jahreswerte für heating und cooling erzeugt (beginnend jeweils mit "kWh_.."). Wobei es reichen dürfte, den Jahreswert zu loggen. Damit kann man auch zur grafischen Aufbereitung was anfangen. Wenn man im SVG die "delta-d" Funktion verwendet, bekommt man aus den kumulierten Jahreswerten auch die Tageswerte schön angezeigt.
Wenn zusätzlich in der Indoor-Unit das attribut consumptionData auf 1 gesetzt wird, werden in der jeweiligen Indoor-Unit die "Roh-Daten" wie bisher mit angezeigt. Auf ein weiteres Mapping habe ich verzichtet, weil mir das zu aufwendig war bzw. ich aufgrund des o.g. kumulierten Jahreszählers keine Notwendigkeit mehr sehe.
Darüber hinaus habe ich die Fehlermeldung von Gisbert zum Anlass genommen, noch eine Plausi-Prüfung einzuführen: Ein Set-Befehl für eine Indoor-Unit kann grundsätzlich nur erfolgreich abgesetzt werden, wenn die Indoor-Unit auch aktuell mit der Cloud verbunden ist (reading isCloudConnectionUp == true). Dies ist zu beachten, falls z.B. die Geräte per Relais zeitweise (z.B. über Nacht) komplett stromlos gemacht werden. Dann sollte bei automatisierten Abläufen darauf geachtet werden, dass nach dem Einschalten des Stromes ca. 2 Minuten (d.h. ca. 1 Minute bis das Gerät "hochgefahren" ist und sich mit dem Internet/der Cloud verbunden hat + 1 weitere Minute für das erste erfolgreiche Polling mit "isCloudConnectionUp == true") gewartet wird, bis Set-Befehle automatisiert an die Indoor-Unit gesendet werden. Bei mir ist Klimaanlage sonst immer in StandBy, daher war mir diese Problematik bislang nicht aufgefallen.
Für eine Aktualisierung die 58_DaikinCloud.pm herunterladen und in den Ordner fhem/FHEM kopieren. Danach das
reload 58_DaikinCloud.pm
nicht vergessen. Die kWh-Werte kommen dann automatisch beim nächsten Polling, wenn im Master-Device consumptionData auf 1 gesetzt ist.
MfG Frank
Hallo Frank,
vielen Dank für dein Update.
Ich versuche (verzweifelt) dein Modul downzuloaden. Beim Antippen öffnet sich ein neues Fenster mit dem Inhalt des Moduls, auch der Download-Zähler geht eins nach oben, aber die Datei wurde nicht runtergeladen.
Liegt das an der neuen Forums-Software oder an deiner Datei?
Viele Grüße Gisbert
Hallo Gisbert,
das wird wohl an den Einstellungen deines Browsers liegen, wenn er die pm-Dateien standardmäßig anzeigen will, statt herunterzuladen. Du kannst aber auch einfach einen Rechtsklick auf die Datei/Link machen und wählen "Ziel speichern unter ..."
Ich hab den aktuellen Stand auch immer im github unter https://github.com/frank-lie/DaikinCloud abgelegt.
MfG Frank
Hallo Frank,
beim reload 58_DaikinCloud.pm erhalte ich folgende Antwort:
Excessively long <> operator at .//FHEM/58_DaikinCloud.pm line 27.
Ist das so beabsichtigt?
Viele Grüße Gisbert
Ich schau heute Abend nochmal genau drüber, aber so ein Fehler klingt nicht normal und kam bei mir auch nicht.
Wie und wo hast du denn die 58_DaikinCloud.pm runtergeladen (hier im Forum oder Github)? Oder hast du mit copy und paste selbst die Datei erstellt oder editiert?
Da in Zeile 27 nur die Anweisung "use strict;" steht, kann ich deine Fehlermeldung auch nicht wirklich einordnen.
MfG Frank
Hallo Gisbert,
ich hab nochmal das Modul gecheckt. Da ist alles in Ordnung. Beim Reload der "58_DaikinCloud.pm" dürften nur die Perl Warnings im Log kommen, dass diverse Subroutinen redefined worden sind. Das wäre so auch vollkommen richtig.
Ich glaube aber zu wissen, wo bei dir der Fehler liegt. Du hast bestimmt im Github versucht, die Datei "58_DaikinCloud.pm" mit Rechtsklick und "Ziel speichern unter ..." runterzuladen, oder? Das funktioniert im Github so nicht. Wahrscheinlich ist deine runtergeladene Datei auch über 800 kB groß und enthält nur html-Zeug.
Daher zur Lösung folgende Varianten:
a) Hier aus dem Forum die "58_DaikinCloud.pm" mit Rechtsklick und "Ziel speichern unter ..." lokal speichern und nach FHEM kopieren.
oder
b) Im Github unter https://github.com/frank-lie/DaikinCloud den grünen Button "Code" anklicken und Download Zip auswählen. Die darin enthaltene "58_DaikinCloud.pm" entpacken und nach FHEM kopieren.
oder
c) Wenn bei dir FHEM auf Linux läuft, kannst du dort in der Shell auch einfach die Datei direkt ins FHEM Verzeichnis runterladen lassen (Option -P <Verzeichnis deiner FHEM-Installation> ggf. anpassen):
sudo wget https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/58_DaikinCloud.pm -O 58_DaikinCloud.pm -P /opt/fhem/FHEM
Egal für welche Variante du dich entscheidest. Danach das
reload 58_DaikinCloud.pm
nicht vergessen.
Sag Bescheid, ob jetzt alles geklappt hat.
MfG Frank
Hallo Frank,
ich hab die ganze Sache wiederholt.
- Download per wget anhand deines Befehls; ich kannte den wget-Befehl bereits, hab jetzt deinen mit den Optionen genommen. Ergebnis: Fehler ist reproduzierbar
- Datei aus dem Forum runtergeladen (das ging in der vorherigen Forums-Software einfacher). Datei verschoben, Rechte angepasst, reload in Fhem durchgeführt. Ergebnis: kein Fehler!
Im Device gibt es jetzt auch die kWh (für mich nicht notwendig, da ich selbst sehr präzise messe), die beim vorigen Versuch nicht da waren.
Viele Grüße Gisbert
Hmm seltsam. Hab bei mir gerade nochmal das Update mit wget aus Github getestet. Funktioniert bei mir auf diese Weise fehlerfrei. Es handelt sich ja auch um dieselbe Datei wie hier im Forum. Würde mich mal interessieren, warum das bei dir Probleme gab. Könnte nur vermuten, dass es beim Download der Datei entweder ein Problem mit den Rechten gab oder die Datei an falscher Stelle gespeichert wurde. Ist dein FHEM-Modul-Pfad wie im Befehl "/opt/fhem/FHEM" bzw. hattest du die Option "-P <Modul-Pfad>" an deinen FHEM-Modul-Pfad angepasst? Hattest du nach den wget-Befehl mal geschaut, ob im FHEM-Modul-Verzeichnis auch tatsächlich eine "58_DaikinCloud.pm" mit aktueller Uhrzeit gespeichert/erstellt worden ist?
Mich irritiert bei deiner geposteteten Fehlermeldung "Excessively long <> operator at .//FHEM/58_DaikinCloud.pm line 27." der doppelte slash vor dem FHEM ...
Wenn du Lust hast, kannst du es nochmal testen und schauen, ob du den Fehler findest.
MfG Frank
Hallo Frank, Danke für das Modul.
Ich habe eine Altherma 3 h ht Wärmepumpe diverse Reading wie z.b.
roomTemperature, outdoorTemperature, leavingWaterTemperature, tankTemperature und...... funktionieren.
kWh heating day, week und year sind die Wassertank Werte sollten aber wahrscheinlich die Heizungswerte sein.
Die Set onoffMode, operationMode und setpoint funktionieren leider nicht.
Vielleicht hast du einmal Zeit dir das anzuschauen.
Danke und Viele Grüße Wolfgang
Hallo Wolfgang,
schön zu hören, dass die Altherma grundsätzlich auch erkannt wird. Ich hab allerdings keinen Einblick, welche Readings bei der Altherma ausgegeben werden müssten, da du der erste mit Feedback zu so einem Gerät bist.
Du schreibst, dass die Set onoffMode, operationMode und setpoint nicht funktionieren. Was funktioniert genau nicht? Kommt da direkt eine Fehlermeldung beim Set bzw. wird ein Fehler im FHEM-Log protokolliert? Wenn der Befehl ohne Fehlermeldung von der Cloud akzeptiert wird, dauert es manchmal auch bis zu ein paar Minuten, bis das Ergebnis auch in der Onecta-App aktualisiert ist. Daher ggf. etwas Geduld. Gibt es denn andere Befehle, die bei der Altherma schon fehlerfrei funtionieren?
Ich überlege, eine Funktion ins Modul einzubauen, die auch die Rohdaten im json-Format ausgibt. Da könnte ich dann ggf. besser sehen, was die Altherma von anderen Klimaanlagen unterscheidet.
MfG Frank
Hallo Frank,
Danke, schon ganz Klasse dein Modul, meine Wärmepumpe Daikin Altherma 3 H MT F wird auch erkannt und abgefragt :D
Die Idee mit den Rohdaten auslesen hört sich gut an, dann könnte man vielleicht auch besser unterstützen mit Werten ob das passt oder auch nicht.
Grundsätzlich müsste auch der Stromverbrauch und die erzeugte Wärmemenge und wahrscheinlich noch ein paar andere Dinge anzeigebar sein.
Ich habe hier mal die Details die bisher in FHEM hierzu angezeigt werden:
define DaikinCloud_Gateway DaikinCloud 76679578-6d02-47ca-905d-b02e6f367c78
attr DaikinCloud_Gateway devStateIcon on:Ventilator_wind@green off:Ventilator_fett@black
attr DaikinCloud_Gateway event-on-change-reading .*
attr DaikinCloud_Gateway room DaikinCloud_Devices
attr DaikinCloud_Gateway stateFormat onOffMode
attr DaikinCloud_Gateway webCmd onOffMode:setpoint:operationMode:swing:fanSpeed
attr DaikinCloud_Gateway webCmdLabel Power<br>:Temperatur<br>:Modus<br>:Swing<br>:Drehzahl<br>
# CFGFN
# DEF 76679578-6d02-47ca-905d-b02e6f367c78
# FUUID 6436d737-f33f-4971-9fc0-735e99fe5b6273c6
# NAME DaikinCloud_Gateway
# NR 72881
# NTFY_ORDER 50-DaikinCloud_Gateway
# STATE on
# TYPE DaikinCloud
# eventCount 2
# READINGS:
# 2023-04-12 18:11:19 controlMode externalRoomTemperature
# 2023-04-12 18:11:19 dateTime 2023-04-12T17:38:52
# 2023-04-12 18:11:19 deviceModel Altherma
# 2023-04-12 18:11:19 eepromVersion 1708873-36A
# 2023-04-12 18:11:19 embeddedId c53f8824-08b1-4adb-a1a3-387f9f14a14c
# 2023-04-12 18:11:19 errorCode_climateControlMainZone
# 2023-04-12 18:11:19 errorCode_domesticHotWaterTank
# 2023-04-12 18:11:19 firmwareVersion 3.2.4
# 2023-04-12 18:11:19 firmwareVersion_userInterface 6.9.0
# 2023-04-12 18:11:19 heatupMode reheatSchedule
# 2023-04-12 18:11:19 iconId 3
# 2023-04-12 18:11:19 iconId_climateControlMainZone 8
# 2023-04-12 18:11:19 iconId_domesticHotWaterTank 9
# 2023-04-12 18:11:19 iconId_indoorUnitHydro 4
# 2023-04-12 18:11:19 iconId_outdoorUnit 5
# 2023-04-12 18:11:19 iconId_userInterface 6
# 2023-04-12 18:11:19 id 76679578-6d02-47ca-905d-b02e6f367c78
# 2023-04-12 18:11:19 ipAddress 192.168.10.123
# 2023-04-12 18:11:19 isCloudConnectionUp true
# 2023-04-12 18:11:19 isFirmwareUpdateSupported true
# 2023-04-12 18:11:19 isHolidayModeActive false
# 2023-04-12 18:11:19 isHolidayModeActive_domesticHotWaterTank false
# 2023-04-12 18:11:19 isInEmergencyState false
# 2023-04-12 18:11:19 isInEmergencyState_domesticHotWaterTank false
# 2023-04-12 18:11:19 isInErrorState_climateControlMainZone false
# 2023-04-12 18:11:19 isInErrorState_domesticHotWaterTank false
# 2023-04-12 18:11:19 isInInstallerState false
# 2023-04-12 18:11:19 isInInstallerState_domesticHotWaterTank false
# 2023-04-12 18:11:19 isInWarningState false
# 2023-04-12 18:11:19 isInWarningState_domesticHotWaterTank false
# 2023-04-12 18:11:19 isPowerfulModeActive false
# 2023-04-12 18:11:19 lastUpdateReceived 2023-04-12T16:09:10.581Z
# 2023-04-12 18:11:19 leavingWaterTemperature 33
# 2023-04-12 18:11:19 macAddress 2c:3b:70:77:37:32
# 2023-04-12 18:11:19 miconId 20010E05
# 2023-04-12 18:11:19 modelInfo BRP069A78
# 2023-04-12 18:11:19 modelInfo_indoorUnitHydro ETVX12S18EA9W
# 2023-04-12 18:11:19 modelInfo_outdoorUnit EPRA08EAW1
# 2023-04-12 18:11:19 modelInfo_userInterface ETVX12S18EA9W
# 2023-04-12 18:11:19 name Gateway
# 2023-04-12 18:11:19 name_climateControlMainZone
# 2023-04-12 18:11:19 name_domesticHotWaterTank
# 2023-04-12 18:11:19 name_indoorUnitHydro Indoor Hydro Unit
# 2023-04-12 18:11:19 name_outdoorUnit Outdoor Unit
# 2023-04-12 18:11:19 name_userInterface User Interface
# 2023-04-12 18:11:19 onOffMode on
# 2023-04-12 18:11:19 onOffMode_domesticHotWaterTank on
# 2023-04-12 18:11:19 operationMode heating
# 2023-04-12 18:11:19 operationMode_domesticHotWaterTank heating
# 2023-04-12 18:11:19 outdoorTemperature 10
# 2023-04-12 18:11:19 powerfulMode off
# 2023-04-12 18:11:19 serialNumber xxxxxx
# 2023-04-12 18:11:19 setpointMode fixed
# 2023-04-12 18:11:19 setpointMode_domesticHotWaterTank fixed
# 2023-04-12 18:11:19 softwareVersion 0792
# 2023-04-12 18:11:19 softwareVersion_outdoorUnit 8028
# 2023-04-12 18:11:19 softwareVersion_userInterface 6.9.0
# 2023-04-12 18:11:19 ssid daikin-ap
# 2023-04-12 18:11:19 tankTemperature 56
# 2023-04-12 18:11:19 timestamp 2023-04-12T16:09:10.581Z
# 2023-04-12 18:11:19 type heating-wlan
# 2023-04-12 18:11:19 wifiConnectionSSID xxxxxx
# 2023-04-12 18:11:19 wifiConnectionStrength -43
# helper:
# settable:
# onOffMode onOffMode:off,on
# operationMode operationMode:heating,cooling,auto
# powerfulMode powerfulMode:off,on
# temperatureControl_value_operationModes_auto_setpoints_leavingWaterTemperature setpoint:slider,25,1,55,1
# temperatureControl_value_operationModes_cooling_setpoints_leavingWaterTemperature setpoint:slider,7,1,22,1
# temperatureControl_value_operationModes_heating_setpoints_leavingWaterTemperature setpoint:slider,25,1,55,1
#
setstate DaikinCloud_Gateway on
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 controlMode externalRoomTemperature
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 dateTime 2023-04-12T17:38:52
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 deviceModel Altherma
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 eepromVersion 1708873-36A
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 embeddedId c53f8824-08b1-4adb-a1a3-387f9f14a14c
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 errorCode_climateControlMainZone
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 errorCode_domesticHotWaterTank
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 firmwareVersion 3.2.4
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 firmwareVersion_userInterface 6.9.0
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 heatupMode reheatSchedule
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId 3
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId_climateControlMainZone 8
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId_domesticHotWaterTank 9
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId_indoorUnitHydro 4
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId_outdoorUnit 5
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 iconId_userInterface 6
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 id 76679578-6d02-47ca-905d-b02e6f367c78
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 ipAddress 192.168.10.123
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isCloudConnectionUp true
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isFirmwareUpdateSupported true
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isHolidayModeActive false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isHolidayModeActive_domesticHotWaterTank false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInEmergencyState false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInEmergencyState_domesticHotWaterTank false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInErrorState_climateControlMainZone false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInErrorState_domesticHotWaterTank false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInInstallerState false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInInstallerState_domesticHotWaterTank false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInWarningState false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isInWarningState_domesticHotWaterTank false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 isPowerfulModeActive false
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 lastUpdateReceived 2023-04-12T16:09:10.581Z
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 leavingWaterTemperature 33
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 macAddress 2c:xx
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 miconId xxxxxx
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 modelInfo BRP069A78
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 modelInfo_indoorUnitHydro ETVX12S18EA9W
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 modelInfo_outdoorUnit EPRA08EAW1
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 modelInfo_userInterface ETVX12S18EA9W
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name Gateway
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name_climateControlMainZone
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name_domesticHotWaterTank
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name_indoorUnitHydro Indoor Hydro Unit
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name_outdoorUnit Outdoor Unit
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 name_userInterface User Interface
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 onOffMode on
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 onOffMode_domesticHotWaterTank on
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 operationMode heating
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 operationMode_domesticHotWaterTank heating
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 outdoorTemperature 10
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 powerfulMode off
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 serialNumber xxxxxx
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 setpointMode fixed
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 setpointMode_domesticHotWaterTank fixed
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 softwareVersion 0792
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 softwareVersion_outdoorUnit 8028
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 softwareVersion_userInterface 6.9.0
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 ssid daikin-ap
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 tankTemperature 56
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 timestamp 2023-04-12T16:09:10.581Z
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 type heating-wlan
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 wifiConnectionSSID xxxxxx
setstate DaikinCloud_Gateway 2023-04-12 18:11:19 wifiConnectionStrength -43
MfG Christian
Hallo Frank
Im FHEM Log kommen keine Fehler.
Aber wenn ich set onoffMode auf off schalte zeigt das onOffMode Reading für ca. 30sec. off danach wieder on,
wenn ich setpoint z.b. von 23 auf 22 stelle kommt ein Pop Up mit dem
Text: cmd: setpoint. value: 22.0 is out of range or step (min: 30 step: 1 max: 50)!
und der Slider sprint auch wieder retour auf 23.
Bei set operationMode heating kommt auch ein Pop Up mit dem
Text: cmd: setpoint. value: 23 is no possible option (slider,-10,1,10,1)! No datapath found for cmd: fanMode. : value: auto ! No datapath found for cmd: fanLevel. : value: 1 !
MfG Wolfgang
Danke für das Feedback. Ich meine auch schon zu erkennen, wo zumindest ein Problem steckt. Die "normalen" Klimaanlagen mit ihren Innengeräten haben alle nur einen Managementpoint (climateControl) pro Innengerät, über den sämtliche Befehle abgesetzt werden. Bei der Altherma sind mindestens zwei Managementpoints (climateControl und domesticHotWaterTank) für das Gerät vorhanden, so dass mein Modul Probleme bei der Zuordnung der Set-Befehle und der zulässigen Optionen bekommen hat. Das Vorhandensein weiterer Managementpoints müsste ich erst noch in den Routinen implementieren. Ich hab es erstmal so gefixt, dass ausschließlich der Managementpoint climateControl mit Set-Befehlen angesprochen werden kann und damit zumindest erstmal nichts mehr durcheinander kommt und zumindest eine partielle Steuerung möglich sein dürfte.
Das weiteren hab ich im Master-Device eine Möglichkeit hinzugefügt mit "get rawData" die Rohdaten in Form des originalen Json-Stringes angezeigt zu bekommen. Achtung der String geht wahrscheinlich über mehrere Seiten. Am besten mit Strg+A markieren und Strg+C kopieren. Wenn ihr mir den Json-String zur Verfügung stellen könntet (am besten per PM), würde ich das ganze analysieren und versuchen mit einzubinden. Aber das ganze könnte ein bißchen dauern ...
Im Anhang die aktualisierte 58_DaikinCloud.pm (v1.2.0). Für alle anderen Klimaanlagenbenutzer besteht keine Notwendigkeit, das aktualisierte Modul runter zu laden.
MfG Frank
8)
PM ist raus ;)
MfG Christian
Hallo Christian
Ist es bei der neuen 58_DaikinCloud.pm (v1.2.0) jetzt möglich Set Befehle abzusetzen.
MfG Wolfgang
Hallo Wolfgang,
mit der Version v1.2.0 dürfte es bei der Altherma bei dir noch nicht geklappt haben. Ich hab mittlerweile die Rohdaten von Christian analysiert und die Routinen neu überarbeitet und ihm gestern eine neue Version (v1.3.0) zur Verfügung gestellt, aber noch kein Feedback erhalten.
Das Einlesen der Readings von allen Managementmentpoints klappt damit auch bei der Altherma zumindest in meinen Tests mit Christians Rohdaten fehlerfrei (auch hinsichtlich zusätzlicher kWh-Angaben getrennt für Heizung und Warmwasser). Das Absetzen der Befehle an die Altherma sollte in der Version v1.3.0 theoretisch funktionieren. Bei mir vor Ort kann ich es halt nicht testen, weil ich keine Altherma habe. Wenn du dich am "Alpha-Test" für die Altherma beteiligen willst, hänge ich dir die v1.3.0 hier mal an. Die jeweils aktuelle Modul-Datei ist ersten Post hier (https://forum.fhem.de/index.php?msg=1271178) zu finden.
Einfach die geänderte Modul-Datei ins FHEM-Verzeichnis kopieren, nicht vergessen ein "reload 58_DaikinCloud.pm" zu machen. Alternativ tut es auch ein FHEM-Neustart mit "shutdown restart". Vor dem ersten Absetzen eines Set-Befehles ist zwingend ein polling-Abruf (also ggf. "get <devicename> forceUpdate" durchführen) erforderlich, damit die möglichen Set-Befehle erstmal ausgelesen werden können.
Falls es nicht funktionieren sollte, würde mir das Ergebnis von "list <Altherma-device-name>" und das Ergebnis von "get <Master-device-name> rawData" zur Fehlersuche weiterhelfen.
MfG Frank
Hallo Frank
Danke für das Modul.
Die Set Befehle funktionieren bis auf Set setpoint (cmd: setpoint. value: 21.0 is no possible option (slider,-10,1,10,1)!) alle.
Die kWh Readings und alle anderen funktionieren auch.
Mfg Wolfgang
Hallo Wolfgang,
danke für die Rückmeldung. Die Fehlermeldung mit dem Setpoint kann ich nicht ganz nachvollziehen. Gibt es bei deiner Altherma irgendeinen anderen Modus, wo eine Temperatur zwischen -10 Grad und 10 Grad eingestellt werden könnte? Welcher Modus wird aktuell im Reading "operationMode" angezeigt? Hast du noch weitere Set-Befehle mit setpoint_... (z.B. setpoint_domesticHotWaterTank ?). Für eine weitere Analyse bräuchte ich sonst deine Rohdaten, da ich - ohne dein Gerät bzw. die Einstellmöglichkeiten, etc zu kennen - nur raten kann ...
Du kannst mir gerne eine persönliche Nachricht mit dem Ergebnis von "list <Altherma-device-name>" und das Ergebnis von "get <Master-device-name> rawData" zur Fehlersuche senden, dann würde ich schauen, wo der Fehler liegt. Mit den Ergebnissen würde ich auch keinen Zugriff auf deine Anlage bekommen (da ich damit dein TokenSet nicht bekomme). Es würde rein zur Analyse des Fehlers dienen.
MfG Frank
Hallo Wolfgang,
ich hab deine Rohdaten analysiert und die besondere zusätzliche "Offset-Einstellmöglichkeit" bei dir gefunden. Das kannte ich bis jetzt bei keiner anderen (Klima-)Anlage. Ich habs mit eingebunden, so dass du jetzt mit "setpoint" die Raumtemperatur und mit "offset" den Offset steuern kannst. Gib bitte nochmal Bescheid, ob es bei dir auch tatsächlich funktioniert.
Die aktuelle 58_DaikinCloud.pm (v1.3.1) habe ich angehangen. Die jeweils aktuelle Modul-Datei ist ersten Post hier (https://forum.fhem.de/index.php?msg=1271178) zu finden.
MfG Frank
Hallo Zusammen,
ich war beruflich in Frankfurt und bin soeben erst zurück gekommen ;)
Ich habe mal schnell die v1.3.1 getestet, sieht auf den ersten Blick sehr gut aus :)
Das setpoint funktioniert auch bei mir steuert aber eigentlich nicht direkt die Raumtemperatur sondern eher eine Art Sollwert für die Vorlauftemperatur, ist in der Daikin-App allerdings genauso geregelt, keine Ahnung ob das auch noch anders geht wenn ein Digitales Raumbediengerät von Daikin direkt verwendet wird.
Von einem Offset habe ich bei mir jetzt nichts entdecken können, ich vermute aber mal das es dieses bei meiner Anlage dann auch nicht gibt.
Ich habe dir Frank auch noch einmal meine Daten als PM gesendet.
LG Christian
Hallo Christian,
danke für deine Rückmeldung. Ein Datenpunkt für eine "Offset-Temperatur"-Einstellung ist bei deiner Anlage (als auch bei den anderen bisher bekannten Klima-Split-Anlagen) nicht vorhanden. Das hatte ich erstmals bei der Anlage von Wolfgang so gesehen/kennen gelernt.
Da das Modul die möglichen Steuerbefehle automatisiert aus den Datenpunkten der Clouddaten ermittelt, werden auch nur die Steuerbefehle in der "setlist" aufgeführt, die das jeweilige Gerät tatsächlich unterstützt. Daher ist es auch zutreffend, dass bei dir weder ein "offset"-Reading noch ein "offset"-Steuerbefehl existiert.
Mit den "setpoint"-Befehlen stellt man im Endeffekt die Temperatur ein, genauso wie man sie über die ONECTA-App von Daikin steuern würde. Ob es sich dabei um eine Vorlauftemperatur oder die Raumtemperatur (oder was auch immer) handelt, weiß wahrscheinlich der jeweilige Anlagenbesitzer am besten. Im Endeffekt zählt ja, dass man nun die Werte über FHEM z.B. zeitgesteuert oder automatisiert einbinden kann.
Sagt Bescheid, falls ihr noch einen Fehler findet oder Verbesserungsvorschläge habt.
MfG Frank
Hallo Frank,
es funktioniert so wie du es mir beschrieben hast.
Nochmals herzlichen Dank.
Mfg Wolfgang
Hallo Frank,
ich hab das Modul aus Thread #27 runtergeladen und reloaded. Als Version wird im Device firmwareVersion
1_23_0 angezeigt.
Ist das so richtig? Im Modul steht eine höhere Versionsnummer.
Viele Grüße Gisbert
Hallo Gisbert,
das Reading "firmwareVersion" im Indoor-Device gibt die aktuelle Firmware-Version der Hardware (Netzwerk-Gateway) deines Gerätes zurück, hat also nichts mit der Modul-Version zu tun. Kannst du auch in der ONECTA-App unter dem jeweiligen Innengerät/Einstellungen/Netzwerk-Gateway sehen.
Die Modul-Version wird in FHEM als INTERNAL im Master-Device mit VERSION im Zeitpunkt des "define" des Devices abgelegt. D.h. das INTERNAL VERSION wird durch einen "reload 58_DaikinCloud.pm" nicht aktualisiert, sondern erst z.B. bei einem Neustart von FHEM, wenn die Devices beim Einlesen der config neu mit define angelegt werden. Das Aktualisieren des INTERNAL VERSION im Master-Device könntest du daher mit einem "shutdown restart" erzwingen.
MfG Frank
Beitrag gelöscht, da er im falschen Forum geschrieben wurde.
Hallo Gisbert,
ich glaube du bist im falschen Thread, oder ?!? Mit fhempy habe ich nichts zu tun ;-)
MfG Frank
Hallo Frank,
ist mir aufgefallen, hab's ins richtige Forum gepostet.
Ich lösche den obigen Beitrag, bzw. schreibe, dass der Beitrag gelöscht ist.
Viele Grüße Gisbert
Hallo Frank,
beim Akkudoktor-Forum und auf GitHub scheint es ein interessantes Projekt zu geben: ESP32-Faikin.
Das vorhandene Wlan-Modul wird ersetzt und durch ein neues ersetzt und anschließend benötigt man die Daikin-Cloud nicht mehr.
Viele Grüße Gisbert
Hallo Gisbert,
das Projekt hatte ich bei meiner Recherche damals auch schon entdeckt und hier (https://forum.fhem.de/index.php?msg=1262347) angesprochen. Es hat sich zwar zwischenzeitlich weiterentwickelt (und wurde von ESP32-Daikin zu ESP32-Faikin umbenannt), konnte mich aber aus folgenden Gründen dennoch nicht zum Ausprobieren bewegen:
- Es erfordert halt Mut zum "hardwaretechnischen Eingriff" in das Innengerät. Das Risiko, dass ich damit die Platine vom Innengerät beschädige, war mir dann bei einer gerade neu eingebauten Klima doch zu groß. Insbesondere weil ich auch keine Dokumentation über die tatsächlich verwendete Schnittstelle (S21 oder S801 ?) finden konnte. Ich wüsste noch nicht mal, ob ich bei mir an die entsprechenden Anschlüsse auf der Platine noch rankomme bzw. was ich dazu alles auseinandernehmen müsste.
- Nur mal zum Testen ist mir der Preis für den Adapter zu hoch bzw. die Probleme für den Versand aus UK zu umständlich. Und nur mit einem ESP32 ist es halt nicht getan, wenn es eigentlich verpolungssicher und mit Levelshifter sein müsste.
- Da die Steuerungsignale des Adapters per reverse engineering ermittelt worden sind, ist es fraglich, ob damit alle Funktionalitäten des jeweiligen Innengerätes gesteuert werden können. Von daher bin ich aktuell mit meiner Cloud-Lösung zufrieden. Da weiß ich, was ich habe ;-)
Das waren meine Beweggründe, warum ich den Weg mit dem ESP32 nicht weiter verfolgt habe. Ich will es hier aber nicht schlechtreden bzw. andere davon abhalten. Im Gegenteil, ich würde mich freuen, wenn es jemand entweder mit dem Adapter oder mit einem eigenen ESP32 bereits erfolgreich umgesetzt hat und entsprechende Bilder von der Einbausituation posten würde.
MfG Frank
Hallo Frank,
tolles Modul für FHEM - 58_DaikinCloud.pm -
.. hat bei mir auf Anhieb funktioniert.
Super !
Seit Mitte April habe ich eine Altherma 3 R W Wärmepumpe
(nur Heizen, ohne Warmwasserbereitung)
Was ich vermisse (aber das liegt evtl. daran, dass diese Werte in der Cloud nicht vorhanden sind) ist:
- Rücklauftemperatur
- Wärmemenge
unter "kWh_heating_year" wird der Stromverbrauch seit Inbetriebnahme angezeigt, aber nicht die erzeugte Wärme
Wärmemenge wäre interessant, um den COP abschätzen und mitschreiben zu können.
hier die aktuellen Readings (WP derzeit im StandBy)
define DaikinCloud_MM DaikinCloud c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
attr DaikinCloud_MM devStateIcon on:Ventilator_wind@green off:Ventilator_fett@black
attr DaikinCloud_MM event-on-change-reading .*
attr DaikinCloud_MM room DaikinCloud_Devices
attr DaikinCloud_MM webCmd onOffMode:setpoint:operationMode
attr DaikinCloud_MM webCmdLabel Power<br>:Temperatur<br>:Modus<br>
# CFGFN
# DEF c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
# FUUID 64592d02-f33f-93ac-efdc-7c1266d9f34db592
# NAME DaikinCloud_MM
# NR 981
# NTFY_ORDER 50-DaikinCloud_c7b2efe8_1664_43ea_8a4a_9dd5f4daf6a4
# STATE off
# TYPE DaikinCloud
# eventCount 3
# READINGS:
# 2023-05-08 20:25:26 controlMode leavingWaterTemperature
# 2023-05-08 20:25:26 dateTime 2023-05-08T19:50:07
# 2023-05-08 20:25:26 deviceModel Altherma
# 2023-05-08 20:25:26 eepromVersion 3608726-16D
# 2023-05-08 20:25:26 embeddedId cfa79ec5-fb61-47fb-919a-d9b5c33aef88
# 2023-05-08 20:25:26 errorCode_climateControlMainZone
# 2023-05-08 20:25:26 firmwareVersion_gateway 3.2.4
# 2023-05-08 20:25:26 firmwareVersion_userInterface 7.1.0
# 2023-05-08 20:25:26 iconId_climateControlMainZone 8
# 2023-05-08 20:25:26 iconId_gateway 3
# 2023-05-08 20:25:26 iconId_indoorUnitHydro 4
# 2023-05-08 20:25:26 iconId_outdoorUnit 5
# 2023-05-08 20:25:26 iconId_userInterface 6
# 2023-05-08 20:25:26 id c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
# 2023-05-08 20:25:26 ipAddress 192.168.178.77
# 2023-05-08 20:25:26 isCloudConnectionUp true
# 2023-05-08 20:25:26 isFirmwareUpdateSupported_gateway true
# 2023-05-08 20:25:26 isHolidayModeActive_climateControlMainZone false
# 2023-05-08 20:25:26 isInEmergencyState_climateControlMainZone false
# 2023-05-08 20:25:26 isInErrorState_climateControlMainZone false
# 2023-05-08 20:25:26 isInInstallerState_climateControlMainZone false
# 2023-05-08 20:25:26 isInWarningState_climateControlMainZone false
# 2023-05-08 20:25:26 kWh_heating_day 0
# 2023-05-08 20:25:26 kWh_heating_week 0
# 2023-05-08 20:25:26 kWh_heating_year 335
# 2023-05-08 20:25:26 lastUpdateReceived 2023-05-08T17:52:21.938Z
# 2023-05-08 20:25:26 leavingWaterTemperature 17
# 2023-05-08 20:25:26 macAddress 2c:3b:70:04:60:38
# 2023-05-08 20:25:26 managementPoint_Nr_1 gateway
# 2023-05-08 20:25:26 managementPoint_Nr_2 climateControlMainZone
# 2023-05-08 20:25:26 managementPoint_Nr_3 indoorUnitHydro
# 2023-05-08 20:25:26 managementPoint_Nr_4 outdoorUnit
# 2023-05-08 20:25:26 managementPoint_Nr_5 userInterface
# 2023-05-08 20:25:26 miconId_userInterface 20010E07
# 2023-05-08 20:25:26 modelInfo_gateway BRP069A78
# 2023-05-08 20:25:26 modelInfo_indoorUnitHydro EHBH08EF9W
# 2023-05-08 20:25:26 modelInfo_userInterface EHBH08EF9W
# 2023-05-08 20:25:26 name c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
# 2023-05-08 20:25:26 name_gateway Gateway
# 2023-05-08 20:25:26 name_indoorUnitHydro Indoor Hydro Unit
# 2023-05-08 20:25:26 name_outdoorUnit Outdoor Unit
# 2023-05-08 20:25:26 name_userInterface User Interface
# 2023-05-08 20:25:26 offset 0
# 2023-05-08 20:25:26 onOffMode off
# 2023-05-08 20:25:26 operationMode heating
# 2023-05-08 20:25:26 outdoorTemperature 18
# 2023-05-08 20:25:26 serialNumber 0188542
# 2023-05-08 20:25:26 setpointMode weatherDependent
# 2023-05-08 20:25:26 softwareVersion_indoorUnitHydro 0222
# 2023-05-08 20:25:26 softwareVersion_outdoorUnit FFFF
# 2023-05-08 20:25:26 softwareVersion_userInterface 7.1.0
# 2023-05-08 20:25:26 ssid daikin-ap
# 2023-05-08 20:25:26 state off
# 2023-05-08 20:25:26 timestamp 2023-05-08T17:52:21.938Z
# 2023-05-08 20:25:26 type heating-wlan
# 2023-05-08 20:25:26 wifiConnectionSSID Funky0
# 2023-05-08 20:25:26 wifiConnectionStrength -36
# helper:
# table:
# climateControlMainZone:onOffMode onOffMode:off,on
# climateControlMainZone:temperatureControl_value_operationModes_auto_setpoints_leavingWaterOffset offset:slider,-10,1,10,1
# climateControlMainZone:temperatureControl_value_operationModes_heating_setpoints_leavingWaterOffset offset:slider,-10,1,10,1
#
setstate DaikinCloud_MM off
setstate DaikinCloud_MM 2023-05-08 20:25:26 controlMode leavingWaterTemperature
setstate DaikinCloud_MM 2023-05-08 20:25:26 dateTime 2023-05-08T19:50:07
setstate DaikinCloud_MM 2023-05-08 20:25:26 deviceModel Altherma
setstate DaikinCloud_MM 2023-05-08 20:25:26 eepromVersion 3608726-16D
setstate DaikinCloud_MM 2023-05-08 20:25:26 embeddedId cfa79ec5-fb61-47fb-919a-d9b5c33aef88
setstate DaikinCloud_MM 2023-05-08 20:25:26 errorCode_climateControlMainZone
setstate DaikinCloud_MM 2023-05-08 20:25:26 firmwareVersion_gateway 3.2.4
setstate DaikinCloud_MM 2023-05-08 20:25:26 firmwareVersion_userInterface 7.1.0
setstate DaikinCloud_MM 2023-05-08 20:25:26 iconId_climateControlMainZone 8
setstate DaikinCloud_MM 2023-05-08 20:25:26 iconId_gateway 3
setstate DaikinCloud_MM 2023-05-08 20:25:26 iconId_indoorUnitHydro 4
setstate DaikinCloud_MM 2023-05-08 20:25:26 iconId_outdoorUnit 5
setstate DaikinCloud_MM 2023-05-08 20:25:26 iconId_userInterface 6
setstate DaikinCloud_MM 2023-05-08 20:25:26 id c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
setstate DaikinCloud_MM 2023-05-08 20:25:26 ipAddress 192.168.178.77
setstate DaikinCloud_MM 2023-05-08 20:25:26 isCloudConnectionUp true
setstate DaikinCloud_MM 2023-05-08 20:25:26 isFirmwareUpdateSupported_gateway true
setstate DaikinCloud_MM 2023-05-08 20:25:26 isHolidayModeActive_climateControlMainZone false
setstate DaikinCloud_MM 2023-05-08 20:25:26 isInEmergencyState_climateControlMainZone false
setstate DaikinCloud_MM 2023-05-08 20:25:26 isInErrorState_climateControlMainZone false
setstate DaikinCloud_MM 2023-05-08 20:25:26 isInInstallerState_climateControlMainZone false
setstate DaikinCloud_MM 2023-05-08 20:25:26 isInWarningState_climateControlMainZone false
setstate DaikinCloud_MM 2023-05-08 20:25:26 kWh_heating_day 0
setstate DaikinCloud_MM 2023-05-08 20:25:26 kWh_heating_week 0
setstate DaikinCloud_MM 2023-05-08 20:25:26 kWh_heating_year 335
setstate DaikinCloud_MM 2023-05-08 20:25:26 lastUpdateReceived 2023-05-08T17:52:21.938Z
setstate DaikinCloud_MM 2023-05-08 20:25:26 leavingWaterTemperature 17
setstate DaikinCloud_MM 2023-05-08 20:25:26 macAddress 2c:3b:70:04:60:38
setstate DaikinCloud_MM 2023-05-08 20:25:26 managementPoint_Nr_1 gateway
setstate DaikinCloud_MM 2023-05-08 20:25:26 managementPoint_Nr_2 climateControlMainZone
setstate DaikinCloud_MM 2023-05-08 20:25:26 managementPoint_Nr_3 indoorUnitHydro
setstate DaikinCloud_MM 2023-05-08 20:25:26 managementPoint_Nr_4 outdoorUnit
setstate DaikinCloud_MM 2023-05-08 20:25:26 managementPoint_Nr_5 userInterface
setstate DaikinCloud_MM 2023-05-08 20:25:26 miconId_userInterface 20010E07
setstate DaikinCloud_MM 2023-05-08 20:25:26 modelInfo_gateway BRP069A78
setstate DaikinCloud_MM 2023-05-08 20:25:26 modelInfo_indoorUnitHydro EHBH08EF9W
setstate DaikinCloud_MM 2023-05-08 20:25:26 modelInfo_userInterface EHBH08EF9W
setstate DaikinCloud_MM 2023-05-08 20:25:26 name c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
setstate DaikinCloud_MM 2023-05-08 20:25:26 name_gateway Gateway
setstate DaikinCloud_MM 2023-05-08 20:25:26 name_indoorUnitHydro Indoor Hydro Unit
setstate DaikinCloud_MM 2023-05-08 20:25:26 name_outdoorUnit Outdoor Unit
setstate DaikinCloud_MM 2023-05-08 20:25:26 name_userInterface User Interface
setstate DaikinCloud_MM 2023-05-08 20:25:26 offset 0
setstate DaikinCloud_MM 2023-05-08 20:25:26 onOffMode off
setstate DaikinCloud_MM 2023-05-08 20:25:26 operationMode heating
setstate DaikinCloud_MM 2023-05-08 20:25:26 outdoorTemperature 18
setstate DaikinCloud_MM 2023-05-08 20:25:26 serialNumber 0188542
setstate DaikinCloud_MM 2023-05-08 20:25:26 setpointMode weatherDependent
setstate DaikinCloud_MM 2023-05-08 20:25:26 softwareVersion_indoorUnitHydro 0222
setstate DaikinCloud_MM 2023-05-08 20:25:26 softwareVersion_outdoorUnit FFFF
setstate DaikinCloud_MM 2023-05-08 20:25:26 softwareVersion_userInterface 7.1.0
setstate DaikinCloud_MM 2023-05-08 20:25:26 ssid daikin-ap
setstate DaikinCloud_MM 2023-05-08 20:25:26 state off
setstate DaikinCloud_MM 2023-05-08 20:25:26 timestamp 2023-05-08T17:52:21.938Z
setstate DaikinCloud_MM 2023-05-08 20:25:26 type heating-wlan
setstate DaikinCloud_MM 2023-05-08 20:25:26 wifiConnectionSSID Funky0
setstate DaikinCloud_MM 2023-05-08 20:25:26 wifiConnectionStrength -36
bei "setpoint" kommt: "No datapath found for cmd: setpoint. : value: !"
dasselbe bei "operationMode"
Gruß
Michael
Hallo Michael,
wenn in der ONECTA-App auch Informationen zur Rücklauftemperatur oder zur erzeugten Wärmemenge angezeigt werden, dann könnten sie auch vom Modul abgefragt oder ausgewertet werden. Wenn derartige Daten aber bereits nicht in der ONECTA-App ersichtlich sind, spricht es eher dafür, dass sie auch nicht als Cloud-Daten übermittelt werden und damit auch vom Modul nicht aus den Cloud-Daten gelesen werden können. Im Zweifelsfall könntest du im Master-Device ein get <name-Master-Device> rawData
machen und mir die json-rawData per PM zukommen lassen. Dann würde ich mal drüber schauen, ob noch weitere auswertbare Daten drin sind.
Wegen der möglichen absetzbaren Befehle kannst du im Altherma-Device ein get <name-altherma-device> setlist
machen und die zulässigen Set-Befehle mit Optionen anzeigen lassen. Anhand der geposteten Internals kann ich erkennen, dass lediglich der Set-Befehl "onOffMode" mit "off" oder "on" und der Set-Befehl "offset" mit Werten zwischen "-10" und "10" zulässig bzw. einstellbar ist. Kannst du darüber hinaus in der ONECTA-App weitere Einstellungen (operationMode, setpoint) vornehmen? Wenn ja verwendest du im Modul die Original-Zugangsdaten des "Eigentümers" der Anlage oder hast du einen Zweitbenutzer angelegt/eingeladen? Ich frage aus dem Grund, weil ich festgestellt habe, dass bei meiner Multi-Split-Anlage es so ist, dass die Zugangsdaten des "Eigentümers" weitergehende Einstellmöglichkeiten erlauben. Der angelegte/eingeladene Zweitbenutzer hat nur eingeschänkte Zugriffsrechte. Er kann bei mir z.B. keine Einstellungen zur demandControl vornehmen.
Falls du in der ONECTA-App weitergehende Einstellmöglichkeiten hast, kannst du mir sonst deine json-rawData per PM zukommen lassen. Dann würde ich mal drüber schauen, ob ich im Modul noch etwas extra einarbeiten müsste.
Ansonsten kannst du die vordefinierten Attribute bei dir wie folgt anpassen, damit im FHEMWEB nur die einstellbaren Befehle dargestellt werden:
attr DaikinCloud_MM webCmd onOffMode:offset
attr DaikinCloud_MM webCmdLabel Power<br>:Offset<br>
MfG Frank
Hallo Frank,
PM mit raw-Daten ist raus.
Wenn ich einen Offset-wert per Slider oder direkt in der Befehlszeile mit z.B.: "set DaikinCloud_MM offset 2" ändern möchte kommt folgende Fehlermeldung:
"unknown argument offset, choose one of onOffMode:off,on offset:slider,-10,1,10,1"
Hallo Michael,
ich hab die rawData erhalten und schau das morgen mal durch.
Beim Set-Befehl "offset" hab ich den Fehler im Quellcode gefunden. Werde das dann morgen beheben.
MfG Frank
Hallo Michael,
ich hab mir deine Daten mal angeschaut. In den "sensoryData" sind nur "outdoorTemperature" und "leavingWaterTemperature" enthalten. Weitere Temperaturangaben wie Rücklauftemperatur etc gibt es nicht. Ebenso sind keine Wärmemengen, sondern unter "consumptionData" nur die "electrical"-Werte (also Stromverbrauch) enthalten. Die bislang erzeugten Readings sind damit soweit vollständig. Mit einem
attr DaikinCloud_MM consumptionData 1
kannst du dir die elektrischen Werte/Readings im Detail darstellen lassen, aber eigentlich finde ich das nicht sehr hilfreich. Für Auswertungszwecke reicht es vollkommen, das Reading "kWh_heating_year" zu loggen und damit die Auswertung in FHEM vorzunehmen.
Wenn die Wärmemengen am Display (?) deiner Altherma vorhanden und ablesbar sind, bleibt im Endeffekt nur zu hoffen, dass Daikin mit einem Firmwareupdate des Altherma-Gateways irgendwann die Daten auch an die Cloud übermittelt. Solange aber derartige Informationen in der ONECTA-App nicht angezeigt werden, gehe ich davon aus, dass entsprechende Daten auch nicht in der Cloud vorliegen und folglich vom Modul nicht ausgelesen werden können.
Hinsichtlich des Set-Befehls "offset" habe ich eine Korrektur/Ergänzung im Quelltext vorgenommen und hier als Modulversion v1.3.3 angehangen. Die jeweils aktuelle Modul-Datei ist ersten Post hier (https://forum.fhem.de/index.php?msg=1271178) zu finden. Für eine Aktualisierung die 58_DaikinCloud.pm herunterladen und in den Ordner fhem/FHEM kopieren. Danach das
reload 58_DaikinCloud.pm
nicht vergessen. Sag mal Bescheid, ob damit die Steuerung der offset-Werte fehlerfrei funktioniert.
MfG Frank
Hallo Frank,
Dankeschön; mit der neuen Version funktioniert das mit dem "offset".
Das mit den fehlenen Daten (RL-Temp, Wärmemenge) in der Cloud habe ich mir schon gedacht.
Aber Dein Modul ist trotzdem toll, weil es erlaubt, Außentemperatur und Vorlauftemperatur mitzuloggen
und wenigstens zwecks Plausibilität mit meinen sonst verbauten Sensoren zu vergleichen.
Für die Energiedaten habe ich separate Zähler für Strom und Wärmemenge verbaut.
Stromzähler kann ich schon auslesen (Modbus); für die Wärmemenge bin ich am basteln mit W-Mbus.
Die Anzeigen für Strom und Wärmemenge aus der WP sind derzeit unplausibel, was auch daran liegen kann, dass die bisher umgesetzten Leistungen sehr niedrig waren (Genauigkeitsproblem). Ob sich das bessert, wird der kommende Winter zeigen.
Danke nochmals
Michael
Es gibt für die Altherma auch ein interessantes Projekt names "ESPAltherma". Dazu werden mit einem ESP32 oder ESP8266 an der Altherma per X10A-Port die Daten abgegriffen und über MQTT gesendet. Keine Ahnung, ob da alle Modelle vollständig eingebunden sind/unterstützt werden. Die Doku ist unter https://raomin.github.io/ESPAltherma/ relativ ausführlich dargestellt. Wenn man für so eine Hardware-Lösung bereit ist, wäre das auch ein interessanter Ansatz.
MfG Frank
Das mit dem ESPAltherma ist bestimmt interessant für Bastler und Löt-Enthusiasten; ich gehöre nicht dazu.
Ich sehe eher den Ball bei DAIKIN, die anderen Herstellern von Wärmeerzeugern im Bereich Remote-Monitoring und Remote-Bedienung deutlich hinterherhinken.
Bei meiner Ölheizng z.B. kann ich (abgesehen von den Super-Möglichkeiten in FHEM über BDKM) über die BUDERUS-APP die Anlage steuern, Zeitpläne für Heizen und Warmwasserbereitung hinterlegen, Energiedaten und Sensoren abfragen ...
Da müsste DAIKIN noch kräftig nachlegen...
Hallo Frank und an alle, die es interessiert:
Hier meine Einbindung des DAIKIN-Cloud-Moduls in FHEM
Screenshot:
Meine Einbindung in FHEM (https://ibb.co/hs4m9TN)
define Daikin_Master DaikinCloud
attr Daikin_Master autocreate 1
attr Daikin_Master consumptionData 0
attr Daikin_Master interval 60
attr Daikin_Master room Module
#
define WP DaikinCloud c7b2efe8-1664-43ea-8a4a-9dd5f4daf6a4
attr WP devStateIcon on:Ventilator_fett@green off:Ventilator_fett@black
attr WP event-on-change-reading .*
attr WP group Daikin
attr WP icon sani_heating_heatpump
attr WP room Heizung
attr WP webCmd onOffMode:offset
attr WP widgetOverride onOffMode:on,off offset:slider,-10,1,10,1
#attr Daikin_WP webCmdLabel Power<br>:Offset<br>
#
define WP_Daten readingsGroup WP:<%temp_outside>,<Aussentemp.>,outdoorTemperature,<°C> \
WP:<%sani_supply_temp>,<VL-Temp.>,leavingWaterTemperature,<°C> \
WP:<%time_graph>,<Stromverbrauch>,kWh_heating_year,<kWh>
attr WP_Daten group Daikin
attr WP_Daten room Heizung
attr WP_Daten valueFormat %0.0f
attr WP_Daten valueStyle style="text-align:right"
Wenn du das Reading "kWh_heating_year" anzeigen/auswerten lassen willst, muss im Master-Device attr Daikin_Master consumptionData 1
definiert werden. Ansonsten wird das Reading nicht erstellt und fehlt dann in deiner Readingsgroup.
MfG Frank
Ja, Stimmt !
Ich muss mich hier nochmal bei Frank für die Entwicklung des DAIKIN-Cloud-Moduls bedanken !!
Ich war schon drauf und dran mir eine externe Zeitschaltuhr installieren zu lassen, damit man die Wärmepumpe zeitgesteuert ein- und ausschalten kann.
Das geht natürlich mit der FHEM-Anbindung viel eleganter;
auch Heizprogramme lassen sich flexibel enpassen, ohne in den Keller rennen zu müssen.
Super !!
Hallo,
auch ich habe mit diesem Modul nun meine Daikin Klima-Anlage (Typ Perfera FTXM35R) in FHEM integriert.
Vielen Dank für dieses tolle Modul.
Allerdings ist mir nicht klar, wie ich den Sollwert verändern kann.
Es zeigt mir unter "setpoint" zwar den Sollwert an, aber hierzu gibt es ja keinen Set-Befehl.
Wie kann ich denn die Temperatur anpassen ?
(den schon beschriebenen Offset habe ich an meiner Einheit nicht)
Eigentlich mit dem Befehl setpoint ;-) Zumindest ist das bei meinen Perfera (FTXM20R und FTXM25R) so auch möglich. Sind überhaupt setlist-Einträge vorhanden get <name-indoor-device> setlist
?
Ansonsten kannst du mir mal deine RawData
get <name-master-device> rawData
senden und ich schau mal, wo der Fehler liegt.
MfG Frank
Hallo Frank,
hier ist meine setlist :
demandControl:off,auto,fixed
demandValue:slider,40,5,100,1
econoMode:on,off
horizontal:stop,swing
vertical:stop,swing
fanMode:auto,quiet,fixed
fanLevel:slider,1,1,5,1
onOffMode:on,off
operationMode:fanOnly,heating,cooling,auto,dry
powerfulMode:on,off
streamerMode:on,off
swing:stop,horizontal,vertical,3dswing
fanSpeed:auto,quiet,Level1,Level2,Level3,Level4,Level5
den einzigen "Wert" den ich habe, ist dieser "demandValue" - kenne mich jedoch nicht aus, was dieser bedeutet.
den setpoint selber könnte ich nicht "beschreiben" , der reagiert nicht.
Wobei ich anfangs einen slider hatte, weiß nicht genau was ich falsch gemacht hab und warum der nun fehlt.....
Welchen operationMode hattest du denn aktuell eingestellt? Bei fanOnly oder dry gibt es keine setpoint einstellung. Die zulässigen Befehle werden immer in Abhängigkeit der aktuellen operationMode dargestellt.
Falls das nicht das Problem sein sollte, kannst du sonst mal das Ergebnis von
list <name-indoor-device>
posten oder per PM schicken. Für eine weitergehende Analyse wäre sonst auch die rawData hilfreich.
Mit demandValue kannst du einstellen (wenn demandControl auf fixed gesetzt ist), auf wieviel Prozent der Leistung das Außengerät runtermodulieren soll. Das hilft ein Takten des Außengerätes zu verhindern und damit auch Energie zu sparen. In der jetzigen Übergangszeit läuft bei mir das Außengerät mit dem Minimalwert von 40 und erbringt bei wenig Stromaufnahme trotzdem optimale Leistung.
MfG Frank
Ich möchte mich auch für das Modul bedanken.
Ich habe eine nagelneue Daikin 3 H HT. Mit deinem Modul kommen schon mal Daten in FHEM an.
Da hier etwas Konfusion um den Offset herrschte.
Die Anlage berechnet mit Hilfe der Heizkurve aus der Außentemperatur einen Sollwert für die Heizkörper. Der Sollwert ist soweit ich verstanden habe der gewünschte Mittelwert zwischen Vor- und Rücklauf. Der Sollwert ändert sich also ständig.
Damit man nicht die Heizkurve neu einstellen muss, falls man mal mit der Temperatur unzufrieden ist, kann man leicht einen Offset zum berechneten Sollwert eingeben und so hoffentlich die gewünschte Temperatur treffen.
In der Onecta-App wird die Wärmepumpe als zwei Geräte dargestellt (Heizung und Warmwasserspeicher).
Ich war etwas überrascht, dass es hier nur ein Device ist. Vielleicht ist das eine Idee, den Code schlank zu halten.
Danke für die Erläuterungen. Ich kann hinsichtlich der verschiedenen Einstellmöglichkeiten immer nur bedingt weiterhelfen, da ich selbst nur eine Multi-Split-Klima von Daikin im Einsatz habe und keine Altherma. Insoweit kann ich die Eigenheiten der Altherma-Geräte bzw. die unterschiedlichen Modellvarianten/Besonderheiten nur anhand der Zuarbeit der jeweiligen Nutzer über die rawData erahnen ;-)
Vom Grundsatz her ist es so, dass Daikin für jedes Gerät, welches über die Onecta-App verbunden wird, eine eindeutige Device-ID ausweist. Diese Device-ID ist das eindeutige Zuordnungskriterium für die weitere Verarbeitung in FHEM. Hierfür wird jeweils ein Device in FHEM mit einem entsprechenden INTERNAL DEF angelegt.
Bei Split-Klimas bzw. Multi-Split-Klimas bekommt jedes Innengerät eine Device-ID, da diese jeweils über ein eigenes Gateway angebunden sind. Bei der Altherma ist es so, dass die Anbindung wohl nur über ein Gateway erfolgt und damit ebenfalls nur eine Device-ID ausgewiesen wird, obwohl sie ggf. mehrere Funktionen (Heizung, Warmwassertank) haben kann (aber nicht muss). In den Strukturen der rawData ist dann ersichtlich, dass neben den üblicherweise vorhandenen managementPoints (gateway, climateControl, indoorUnit, outdoorUnit) weitere managementPoints (z.B. domesticHotWaterTank, indoorUnitHydro, ...) hinzukommen. Wobei ich auch schon festgestellt habe, dass die Benennung der managementPoints nicht immmer identisch ist.
Da ich mich entschieden hatte, die FHEM-Devices nach der eindeutigen Device-ID zu definieren, landen sowohl die Informationen für die Heizung als auch die Warmwasserbereitung mit entsprechenden Readings in einem Device. Eine weitere Aufsplittung in mehrere FHEM-Device würde den Code in der Tat nicht nur aufblähen und komplizierter, sondern auch fehleranfälliger machen. Dafür sind die Kombinationen der mir bislang bekannten managementPoints einfach zu vielfältig. Mein Ziel war es, den Code allgemeingültig für jedwede Kombination einsetzbar zu halten. D.h. das Anlegen der FHEM-Devices erfolgt immer Gateway-bezogen und nicht funktionsbezogen. Insoweit sehe ich das Zusammenfallen der Readings von Heizung und Warmwasserspeicher in einem FHEM-Device nicht als Fehler, sondern eher als "optische Beeinträchtigung" an. Bei Bedarf können hierfür die Attribute "stateFormat", "webCmd", "webCmdLabel" individuell angepasst werden, damit die entscheidenden Informationen oder Befehle im FHEMWEB gut sichtbar bzw. schnell verfügbar sind. Alternativ könnte man auch eine readingsGroup für die wichtigsten Readings erstellen.
MfG Frank
Danke, dass du dich auch um Geräte kümmerst, die du gar nicht hast.
Ich kenne das von meinem Velux-KLF200 Modul. Damit wollte ich doch nur meine Rollladen steuern und inzwischen wird das Modul auch für eine Warmwasser-Wärmepumpe eingesetzt.
Schade, dass FHEM keine Hierarchien in den Readings abbilden kann, sonst könnte man die managementPoints übersichtlicher darstellen.
Bei der Anzahl der Readings wird es schnell unübersichtlich.
Könntest du noch den holidayMode unterstützen?
Wenn du interessiert bist, könnte ich dir auch noch rawData schicken, aber eher privat.
Zu den Readings:
Um die Readings "übersichtlich" zu halten, empfehle ich, das Attribut consumptionData nur im Master-Device auf 1 zu setzen. Dann werden im Indoor-Device bereits die kumulierten kWh-Werte für day, week und year angezeigt. Es reicht dann meines Erachtens sogar aus, den year-Wert für heating/cooling zu loggen.
Die weiteren Energy-Readings, die im Indoor-Device gelistet werden, wenn dort auch das Attribut consumptionData auf 1 gesetzt wird, halte ich eigentlich für nicht notwendig, habe es aber wunschgemäß als Option verfügbar gemacht. Wenn sämtliche Energy-Readings und dann noch von mehreren managementPoints angezeigt werden, wird es halt schnell unübersichtlich.
Die verbleibenden Readings finde ich aber ganz aussagekräftig und "übersichtlich". Im Endeffekt interessieren ja meistens immer ganz bestimmte Readings (onOffMode, operationMode, setpoint, roomTemperature, etc). Insoweit wäre es vielleicht auch eine Lösung bestimmte Readings zu einem userReadings zusammenzufassen:
attr <name-Indoor-Device> userReadings Info_Klima:.* {'P: '.sprintf("%3.3s",ReadingsVal($name,'onOffMode','0')).' M: '.sprintf("%4.4s",ReadingsVal($name,'operationMode','0')).' Z: '.sprintf("%4.1f",ReadingsVal($name,'setpoint','0')).' T: '.sprintf("%4.1f",ReadingsVal($name,'roomTemperature','0'))}
So könnte man auch die interessierenden Readings für verschiedene Funktionsgruppen (Heizung, Warmwasser) in verschiedenen userReadings übersichtlich zusammenfassen. Oder halt das Attribut stateFormat verwenden, um in der Raumübersicht von FHEMWEB einen Überblick über die wichtigsten Readings zu erhalten.
Zum holidayMode:
Ich hatte (eigentlich) nicht vor, die (Wochen-)Timer-Programme oder den Urlaubsmodus (holidayMode) mit einzubinden. Gerade die Integration der Geräte in FHEM lässt ja eine zeit- oder automationsgestützte Steuerung der Geräte zu. Ich fände es daher auch eher konktraproduktiv, wenn die Steuerung über Wochen-Timer-Programme und gleichzeitig zeit- oder automationsgesteuert über FHEM erfolgen würde.
Nach den Erklärungen in der Onecta-App bewirkt der holidayMode: "Im Urlaubsmodus ist das Gerät ausgeschaltet und Zeitpläne sind deaktiviert." Da ich die Wochen-Timer-Programme schon nicht im Modul integriert habe, sehe ich auch keinen Sinn den holidayMode zur Unterbindung der Wochen-Timer-Programme ins Modul zu integrieren. Die Integration wäre auch ziemlich komplex, da die zulässigen Einstellparameter - im Gegensatz zu den sonstigen in der setlist enthaltenen Befehlen - in den rawData nicht aufgeführt sind. Von daher wäre es auch schwieriger, gewisse Plausibilitätsprüfungen durchzuführen, damit auch sichergestellt ist, dass die gesendeten Befehle auch tatsächlich 1:1 umgesetzt werden.
Ich selber nutze weder die Timer-Programme über die IR-Fernbedienung, noch über die Onecta-App. Ich denke auch, dass sich über FHEM der "eigene individuelle Zeitplan und Urlaubsmodus" viel besser realisieren bzw. automatisieren lässt ;-) Ich lasse mich aber gerne eines besseren belehren.
MfG Frank
Hallo Frank,
Ich hatte die Steuerung ebenso über NodeRed und Mqtt umgesetzt, allerdings hängt es gerade an dem Tokenrefresh, der nicht mehr sauber funktioniert.
Da bin ich auf dein neues Projekt gestoßen und finde es ist Zeit dir für diese Leistung Danke zu sagen.
Einfach genial und vielen Dank
Gruß Rene
Danke für das positive Feedback.
Ich hab noch ein paar Optimierungen beim Setzen bestimmter Befehle vorgenommen, die manchmal von der Cloud nicht ordnungsgemäß abgearbeitet worden sind. Ferner beginnt nun beim Absetzen eines Befehles das Polling-Interval von vorn, damit nicht direkt nach dem Absetzen des Befehles zufälligerweise der regelmäßige Polling-Abruf noch veraltete Daten bzw. noch nicht verarbeitete Daten aus der Cloud empfängt. Weiterhin habe ich die Logmeldungen vereinheitlicht und die Commandref aktualisiert.
Die aktuelle Version v1.3.5 ist im Anhang verfügbar. Die jeweils aktuelle Modul-Datei ist ersten Post hier (https://forum.fhem.de/index.php?msg=1271178) zu finden. Ich würde damit die Beta-Phase für beendet erklären und sehe die Version aktuell als final an.
Für eine Aktualisierung die 58_DaikinCloud.pm herunterladen und in den Ordner fhem/FHEM kopieren. Danach das
reload 58_DaikinCloud.pm
nicht vergessen.
MfG Frank
Hi,
herzlichen Dank für das Modul und den Support.
Funktioniert auf Anhieb bei meinen beiden Perferas Single-Splits!
Grüße
Mathias
Guten Morgen,
gestern hat das FHEM-Device für meine Wärmepumpe seine Arbeit eingestellt.
Der Daikin_Master scheint weiterhin zu laufen.
Im Log sehe ich jetzt regelmäßig:
2023.06.20 06:54:59 1: DaikinCloud (BlockUpdateDone) autocreate: An error occurred while creating device for 7d28fd64-8f1e-469f-b803-cb50ce6fad64 (name: DaikinCloud_6529ec6b_7404_4f93_b806_a4ef9106aca2): DaikinCloud_6529ec6b_7404_4f93_b806_a4ef9106aca2 already defined, delete it first
Raw Data:
[
{
"_id": "6529ec6b-7404-4f93-b806-a4ef9106aca2",
"deviceModel": "Altherma",
"type": "heating-wlan",
"isCloudConnectionUp": {
"settable": false,
"value": true
},
"managementPoints": [
{
"embeddedId": "gateway",
"managementPointType": "gateway",
"managementPointCategory": "secondary",
"firmwareUpdate": {
"settable": true,
"ref": "#firmwareUpdate",
"value": {
"id": "7d28fd64-8f1e-469f-b803-cb50ce6fad64",
"description": "WLAN update 3.2.5",
"version": "3.2.5",
"type": "optional"
}
},
"firmwareVersion": {
"settable": false,
"value": "3.2.4",
"maxLength": 8
},
"ipAddress": {
"settable": false,
"value": "192.168.101.86",
"maxLength": 15
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 3
},
"isFirmwareUpdateSupported": {
"settable": false,
"requiresReboot": false,
"value": true
},
"macAddress": {
"settable": false,
"value": "14:13:33:dc:a5:42",
"maxLength": 17
},
"modelInfo": {
"settable": false,
"value": "BRP069A78",
"maxLength": 9
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Gateway",
"maxLength": 63
},
"ssid": {
"settable": false,
"requiresReboot": false,
"value": "daikin-ap",
"maxLength": 9
},
"serialNumber": {
"settable": false,
"value": "0138010",
"maxLength": 16
},
"wifiConnectionSSID": {
"settable": false,
"requiresReboot": false,
"value": "Herzlich Willkommen",
"maxLength": 32
},
"wifiConnectionStrength": {
"settable": false,
"requiresReboot": false,
"value": -70,
"maxValue": 0,
"minValue": -90,
"stepValue": 1
}
},
{
"embeddedId": "climateControlMainZone",
"managementPointType": "climateControl",
"managementPointCategory": "primary",
"managementPointSubType": "mainZone",
"consumptionData": {
"settable": false,
"requiresReboot": false,
"ref": "#consumptionData",
"value": {
"electrical": {
"heating": {
"d": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
null
],
"w": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null,
null
],
"m": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
3,
null,
null,
null,
null,
null,
null
]
}
}
}
},
"controlMode": {
"settable": false,
"requiresReboot": false,
"value": "leavingWaterTemperature",
"values": [
"leavingWaterTemperature",
"externalRoomTemperature",
"roomTemperature"
]
},
"errorCode": {
"settable": false,
"requiresReboot": false,
"value": "",
"maxLength": 16
},
"holidayMode": {
"settable": true,
"requiresReboot": false,
"ref": "#holidayMode",
"value": {
"enabled": false,
"startDate": "2023-06-09",
"endDate": "2023-06-11"
}
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 10
},
"isHolidayModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInEmergencyState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInErrorState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInInstallerState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInWarningState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "",
"maxLength": 63
},
"onOffMode": {
"settable": true,
"requiresReboot": false,
"value": "off",
"values": [
"off",
"on"
]
},
"operationMode": {
"settable": false,
"requiresReboot": false,
"value": "heating",
"values": [
"heating"
]
},
"sensoryData": {
"settable": false,
"ref": "#sensoryData",
"value": {
"outdoorTemperature": {
"settable": false,
"requiresReboot": false,
"value": 22,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
},
"leavingWaterTemperature": {
"settable": false,
"requiresReboot": false,
"value": 24,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
}
}
},
"setpointMode": {
"settable": false,
"requiresReboot": true,
"value": "weatherDependent",
"values": [
"fixed",
"weatherDependent"
]
},
"temperatureControl": {
"settable": true,
"ref": "#temperatureControl",
"value": {
"operationModes": {
"auto": {
"setpoints": {
"leavingWaterOffset": {
"settable": true,
"requiresReboot": false,
"value": -10,
"maxValue": 10,
"minValue": -10,
"stepValue": 1
}
}
},
"heating": {
"setpoints": {
"leavingWaterOffset": {
"settable": true,
"requiresReboot": false,
"value": -10,
"maxValue": 10,
"minValue": -10,
"stepValue": 1
}
}
},
"cooling": {
"setpoints": {}
}
}
}
}
},
{
"embeddedId": "domesticHotWaterTank",
"managementPointType": "domesticHotWaterTank",
"managementPointCategory": "primary",
"consumptionData": {
"settable": false,
"requiresReboot": false,
"ref": "#consumptionData",
"value": {
"electrical": {
"heating": {
"d": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
null
],
"w": [
2,
2,
1,
2,
2,
2,
3,
1,
0,
null,
null,
null,
null,
null
],
"m": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
39,
33,
null,
null,
null,
null,
null,
null
]
}
}
}
},
"errorCode": {
"settable": false,
"requiresReboot": false,
"value": "",
"maxLength": 16
},
"heatupMode": {
"settable": false,
"requiresReboot": true,
"value": "reheatSchedule",
"values": [
"reheatOnly",
"reheatSchedule",
"scheduleOnly"
]
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 29
},
"isHolidayModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInEmergencyState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInErrorState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInInstallerState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInWarningState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isPowerfulModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "",
"maxLength": 63
},
"onOffMode": {
"settable": true,
"requiresReboot": false,
"value": "on",
"values": [
"off",
"on"
]
},
"operationMode": {
"settable": false,
"value": "heating",
"values": [
"heating"
]
},
"powerfulMode": {
"settable": true,
"requiresReboot": false,
"value": "off",
"values": [
"off",
"on"
]
},
"schedule": {
"settable": true,
"ref": "#schedule",
"value": {
"currentMode": {
"settable": false,
"value": "heating",
"values": [
"heating"
]
},
"modes": {
"heating": {
"enabled": {
"settable": false,
"requiresReboot": false,
"value": true
},
"currentSchedule": {
"settable": true,
"requiresReboot": false,
"value": "scheduleHeatingMode1",
"values": [
"scheduleHeatingMode1"
]
},
"meta": {
"minIntervalBetweenActions": "00:10:00",
"maxSchedules": 1,
"maxActionsPerActionPeriod": 4,
"consecutiveActionsAllowed": true,
"actionTypes": {
"domesticHotWaterTemperature": {
"settable": false,
"values": [
"eco",
"comfort",
"turn_off"
]
}
}
},
"schedules": {
"scheduleHeatingMode1": {
"settable": true,
"name": {
"settable": true,
"requiresReboot": false,
"value": "User defined"
},
"meta": {
"isReadOnly": false,
"actionPeriods": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
},
"actions": {
"monday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"tuesday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"wednesday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"thursday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"friday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"saturday": {
"07:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"sunday": {
"07:20:00": {
"domesticHotWaterTemperature": "eco"
}
}
}
}
}
}
}
}
},
"sensoryData": {
"settable": false,
"ref": "#sensoryData",
"value": {
"tankTemperature": {
"settable": false,
"requiresReboot": false,
"value": 43,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
}
}
},
"setpointMode": {
"settable": false,
"requiresReboot": false,
"value": "fixed",
"values": [
"fixed",
"weatherDependent"
]
},
"temperatureControl": {
"settable": true,
"ref": "#temperatureControl",
"value": {
"operationModes": {
"heating": {
"setpoints": {
"domesticHotWaterTemperature": {
"settable": false,
"requiresReboot": false,
"value": 45,
"maxValue": 60,
"minValue": 30,
"stepValue": 1
}
}
}
}
}
}
},
{
"embeddedId": "indoorUnitHydro",
"managementPointType": "indoorUnitHydro",
"managementPointCategory": "secondary",
"eepromVersion": {
"settable": false,
"requiresReboot": false,
"value": "3608934-32A",
"maxLength": 16
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 4
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "ETVH16S18EA9W",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Indoor Hydro Unit",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "0F41",
"maxLength": 16
}
},
{
"embeddedId": "outdoorUnit",
"managementPointType": "outdoorUnit",
"managementPointCategory": "secondary",
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 5
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "EPRA18DAW17",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Outdoor Unit",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "8020",
"maxLength": 16
}
},
{
"embeddedId": "userInterface",
"managementPointType": "userInterface",
"managementPointCategory": "secondary",
"dateTime": {
"settable": false,
"requiresReboot": false,
"value": "2023-06-20T01:13:58"
},
"firmwareVersion": {
"settable": false,
"requiresReboot": false,
"deprecated": "DEPRECATED",
"value": "7.1.0",
"maxLength": 16
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 6
},
"miconId": {
"settable": false,
"requiresReboot": false,
"value": "20010E07",
"maxLength": 16
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "ETVH16S18EA9W",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "User Interface",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "7.1.0",
"maxLength": 16
}
}
],
"embeddedId": "5868ee1d-803d-4f4f-80b5-1707699c9cce",
"timestamp": "2023-06-20T06:51:52.426Z",
"id": "6529ec6b-7404-4f93-b806-a4ef9106aca2"
}
]
In der Onecta-App wird mir heute ein Firmware-Update für den WLAN-Stick angeboten. Das taucht auch in den Raw-Data auf. Könnte das die Ursache sein?
Hallo,
ich hab mir das gerade mal angeschaut und festgestellt, dass Daikin mit der Info über das anstehende Firmware-Update eine neue/unbekannte "ID" in die Daten einmischt. Keine Ahnung für was auch immer diese ID stehen soll. Auf jeden Fall ist das die Ursache für den Fehler. Da ich nicht weiß, ob dieser Dateneintrag auch nach Durchführung des Firmware-Update enthalten bleibt, hab ich im Modul mal einen allgemeinen Fix vorgenommen, so dass ausschließlich die IDs mit vorangestellten Unterstrich ("_id") für die interne Weiterverarbeitung als Device-ID rausgefiltert werden.
Ich hab die aktuelle Version mit dem Fix (v1.3.6) mal angehangen. Vielleicht kannst du es mal testen und Bescheid geben, ob damit der Fehler behoben ist. Für eine Aktualisierung die 58_DaikinCloud.pm herunterladen und in den Ordner fhem/FHEM kopieren. Danach das
reload 58_DaikinCloud.pm
nicht vergessen.
MfG Frank
Danke, dass du dich so schnell gekümmert hast.
Ich muss gestehen, ich habe das Firmware-Update schon vor deinem Update eingespielt und alles hat sofort wieder funktioniert.
Hier sind die Raw Date nach dem WLAN-Firmware update:
[
{
"_id": "6529ec6b-7404-4f93-b806-a4ef9106aca2",
"deviceModel": "Altherma",
"type": "heating-wlan",
"isCloudConnectionUp": {
"settable": false,
"value": true
},
"managementPoints": [
{
"embeddedId": "gateway",
"managementPointType": "gateway",
"managementPointCategory": "secondary",
"firmwareVersion": {
"settable": false,
"value": "3.2.5",
"maxLength": 8
},
"ipAddress": {
"settable": false,
"value": "192.168.101.86",
"maxLength": 15
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 3
},
"isFirmwareUpdateSupported": {
"settable": false,
"requiresReboot": false,
"value": true
},
"macAddress": {
"settable": false,
"value": "14:13:33:dc:a5:42",
"maxLength": 17
},
"modelInfo": {
"settable": false,
"value": "BRP069A78",
"maxLength": 9
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Gateway",
"maxLength": 63
},
"ssid": {
"settable": false,
"requiresReboot": false,
"value": "daikin-ap",
"maxLength": 9
},
"serialNumber": {
"settable": false,
"value": "0138010",
"maxLength": 16
},
"wifiConnectionSSID": {
"settable": false,
"requiresReboot": false,
"value": "Herzlich Willkommen",
"maxLength": 32
},
"wifiConnectionStrength": {
"settable": false,
"requiresReboot": false,
"value": -47,
"maxValue": 0,
"minValue": -90,
"stepValue": 1
}
},
{
"embeddedId": "climateControlMainZone",
"managementPointType": "climateControl",
"managementPointCategory": "primary",
"managementPointSubType": "mainZone",
"consumptionData": {
"settable": false,
"requiresReboot": false,
"ref": "#consumptionData",
"value": {
"electrical": {
"heating": {
"d": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
null
],
"w": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null
],
"m": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
3,
null,
null,
null,
null,
null,
null
]
}
}
}
},
"controlMode": {
"settable": false,
"requiresReboot": false,
"value": "leavingWaterTemperature",
"values": [
"leavingWaterTemperature",
"externalRoomTemperature",
"roomTemperature"
]
},
"errorCode": {
"settable": false,
"requiresReboot": false,
"value": "",
"maxLength": 16
},
"holidayMode": {
"settable": true,
"requiresReboot": false,
"ref": "#holidayMode",
"value": {
"enabled": false,
"startDate": "2023-06-09",
"endDate": "2023-06-11"
}
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 10
},
"isHolidayModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInEmergencyState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInErrorState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInInstallerState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInWarningState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "",
"maxLength": 63
},
"onOffMode": {
"settable": true,
"requiresReboot": false,
"value": "off",
"values": [
"off",
"on"
]
},
"operationMode": {
"settable": false,
"requiresReboot": false,
"value": "heating",
"values": [
"heating"
]
},
"sensoryData": {
"settable": false,
"ref": "#sensoryData",
"value": {
"outdoorTemperature": {
"settable": false,
"requiresReboot": false,
"value": 21,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
},
"leavingWaterTemperature": {
"settable": false,
"requiresReboot": false,
"value": 24,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
}
}
},
"setpointMode": {
"settable": false,
"requiresReboot": true,
"value": "weatherDependent",
"values": [
"fixed",
"weatherDependent"
]
},
"temperatureControl": {
"settable": true,
"ref": "#temperatureControl",
"value": {
"operationModes": {
"auto": {
"setpoints": {
"leavingWaterOffset": {
"settable": true,
"requiresReboot": false,
"value": -10,
"maxValue": 10,
"minValue": -10,
"stepValue": 1
}
}
},
"heating": {
"setpoints": {
"leavingWaterOffset": {
"settable": true,
"requiresReboot": false,
"value": -10,
"maxValue": 10,
"minValue": -10,
"stepValue": 1
}
}
},
"cooling": {
"setpoints": {}
}
}
}
}
},
{
"embeddedId": "domesticHotWaterTank",
"managementPointType": "domesticHotWaterTank",
"managementPointCategory": "primary",
"consumptionData": {
"settable": false,
"requiresReboot": false,
"ref": "#consumptionData",
"value": {
"electrical": {
"heating": {
"d": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
null
],
"w": [
2,
2,
1,
2,
2,
2,
3,
1,
2,
0,
null,
null,
null,
null
],
"m": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
39,
35,
null,
null,
null,
null,
null,
null
]
}
}
}
},
"errorCode": {
"settable": false,
"requiresReboot": false,
"value": "",
"maxLength": 16
},
"heatupMode": {
"settable": false,
"requiresReboot": true,
"value": "reheatSchedule",
"values": [
"reheatOnly",
"reheatSchedule",
"scheduleOnly"
]
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 29
},
"isHolidayModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInEmergencyState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInErrorState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInInstallerState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isInWarningState": {
"settable": false,
"requiresReboot": false,
"value": false
},
"isPowerfulModeActive": {
"settable": false,
"requiresReboot": false,
"value": false
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "",
"maxLength": 63
},
"onOffMode": {
"settable": true,
"requiresReboot": false,
"value": "on",
"values": [
"off",
"on"
]
},
"operationMode": {
"settable": false,
"value": "heating",
"values": [
"heating"
]
},
"powerfulMode": {
"settable": true,
"requiresReboot": false,
"value": "off",
"values": [
"off",
"on"
]
},
"schedule": {
"settable": true,
"ref": "#schedule",
"value": {
"currentMode": {
"settable": false,
"value": "heating",
"values": [
"heating"
]
},
"modes": {
"heating": {
"enabled": {
"settable": false,
"requiresReboot": false,
"value": true
},
"currentSchedule": {
"settable": true,
"requiresReboot": false,
"value": "scheduleHeatingMode1",
"values": [
"scheduleHeatingMode1"
]
},
"meta": {
"minIntervalBetweenActions": "00:10:00",
"maxSchedules": 1,
"maxActionsPerActionPeriod": 4,
"consecutiveActionsAllowed": true,
"actionTypes": {
"domesticHotWaterTemperature": {
"settable": false,
"values": [
"eco",
"comfort",
"turn_off"
]
}
}
},
"schedules": {
"scheduleHeatingMode1": {
"settable": true,
"name": {
"settable": true,
"requiresReboot": false,
"value": "User defined"
},
"meta": {
"isReadOnly": false,
"actionPeriods": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
},
"actions": {
"monday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"tuesday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"wednesday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"thursday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"friday": {
"05:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"saturday": {
"07:00:00": {
"domesticHotWaterTemperature": "eco"
},
"18:00:00": {
"domesticHotWaterTemperature": "comfort"
}
},
"sunday": {
"07:20:00": {
"domesticHotWaterTemperature": "eco"
}
}
}
}
}
}
}
}
},
"sensoryData": {
"settable": false,
"ref": "#sensoryData",
"value": {
"tankTemperature": {
"settable": false,
"requiresReboot": false,
"value": 44,
"maxValue": 127,
"minValue": -127,
"stepValue": 1
}
}
},
"setpointMode": {
"settable": false,
"requiresReboot": false,
"value": "fixed",
"values": [
"fixed",
"weatherDependent"
]
},
"temperatureControl": {
"settable": true,
"ref": "#temperatureControl",
"value": {
"operationModes": {
"heating": {
"setpoints": {
"domesticHotWaterTemperature": {
"settable": false,
"requiresReboot": false,
"value": 45,
"maxValue": 60,
"minValue": 30,
"stepValue": 1
}
}
}
}
}
}
},
{
"embeddedId": "indoorUnitHydro",
"managementPointType": "indoorUnitHydro",
"managementPointCategory": "secondary",
"eepromVersion": {
"settable": false,
"requiresReboot": false,
"value": "3608934-32A",
"maxLength": 16
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 4
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "ETVH16S18EA9W",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Indoor Hydro Unit",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "0F41",
"maxLength": 16
}
},
{
"embeddedId": "outdoorUnit",
"managementPointType": "outdoorUnit",
"managementPointCategory": "secondary",
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 5
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "EPRA18DAW17",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "Outdoor Unit",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "8020",
"maxLength": 16
}
},
{
"embeddedId": "userInterface",
"managementPointType": "userInterface",
"managementPointCategory": "secondary",
"dateTime": {
"settable": false,
"requiresReboot": false,
"value": "2023-06-21T01:15:58"
},
"firmwareVersion": {
"settable": false,
"requiresReboot": false,
"deprecated": "DEPRECATED",
"value": "7.1.0",
"maxLength": 16
},
"iconId": {
"settable": true,
"requiresReboot": false,
"value": 6
},
"miconId": {
"settable": false,
"requiresReboot": false,
"value": "20010E07",
"maxLength": 16
},
"modelInfo": {
"settable": false,
"requiresReboot": false,
"value": "ETVH16S18EA9W",
"maxLength": 16
},
"name": {
"settable": true,
"requiresReboot": false,
"value": "User Interface",
"maxLength": 63
},
"softwareVersion": {
"settable": false,
"requiresReboot": false,
"value": "7.1.0",
"maxLength": 16
}
}
],
"embeddedId": "5868ee1d-803d-4f4f-80b5-1707699c9cce",
"timestamp": "2023-06-21T06:59:16.779Z",
"id": "6529ec6b-7404-4f93-b806-a4ef9106aca2"
}
]
Ich habe jetzt dein Update noch nicht eingespielt, weil ich noch nicht genügend Zeit hatte.
Der Vergleich mit den Raw Data gestern zeigt, dass diese Sektion den Fehler ausgelöst haben muss:
"firmwareUpdate": {
"settable": true,
"ref": "#firmwareUpdate",
"value": {
"id": "7d28fd64-8f1e-469f-b803-cb50ce6fad64",
"description": "WLAN update 3.2.5",
"version": "3.2.5",
"type": "optional"
}
},
Ich konnte den Fehler anhand deiner Fehlermeldung im Log und den geposteten Raw-Daten bereits gut nachvollziehen. Es lag tatsächlich an der geposteten Sektion, dort speziell an der "temporär" übertragenen zusätzlichen "id" für das anstehende Firmware-Update. Diese hatte mein Modul als neue Device-ID interpretiert und damit den Fehler bei der Weiterverarbeitung der Daten erzeugt.
Ich empfehle daher, die gefixte Version (v1.3.6) zu verwenden, damit bei der nächsten Firmware-Ankündigung nicht wieder der gleiche Fehler auftritt. Erfahrungsgemäß gab es bei Daikin aller paar Monate ja mal ein Update ...
MfG Frank
Hallo Frank,
großartige Arbeit, ich möchte Dir (und Allen, die schon vorab Zeit und Mühe in die Entwicklung für die Daikin-Anbindung gesteckt haben) herzlich danken!
Die Integration des Moduls 58_DaikinCloud.pm ging reibungslos, Master angelegt, User+Pass+Token, keine Fehler, meine Anlage + Parameter/Readings wurde in FHEM angelegt. Das Polling läuft sauber.
modelInfo_gateway: BRP069C4x
modelInfo_indoorUnit: FTXJ35A2V1BW
outdoorUnit: RXJ35A5V1B
Wenn ich mit meiner Konfiguration für zukünftige Optimierungen etwas testen und damit etwas zurückgeben kann, gib gerne Bescheid.
Danke!
Andreas
Hallo Frank,
auch hier nach dem Update funktioniert es mit der 1_25_0 Firmware.
Allerdings habe ich im "Daikin_Master" einige "überzählige" Reading für die Klima Geräte, die Offensichtlich unbenutzt (alt Zeit Stempel 13.7.23) waren, diese habe ich mit "deletereading Daikin_Master " gelöscht.
Ich kann nicht sagen ob die "vorher" schon da waren oder wie die entstanden sind.
Auch von meiern Seite Danke.
Vg Toron
Hallo Toron,
ich will mal noch ein paar kurze Erläuterungen zu den Readings geben:
Master-DeviceIm "Daikin_Master"-Device werden die Readings hauptsächlich zur schnellen Fehlersuche/Debbuging abgelegt. Neben den Status-Readings für den Zugriff bzw. die Kommunikation:
- expires_in: sagt aus wie lange der Access-Token gültig ist in Sekunden
- login_status: ob der Zugriff mit username/password erfolgreich war
- status_setcmd: ob ein Set-Befehl erfolgreich übermittelt werden konnte
- token_status: Status des Access-Tokens
- token_type: Token-Type (muss immer Bearer sein)
- update_response: Ergebnis des letzten Pollings
gibt es für jedes erkannte Device ein Reading. Der Readingsname ist der Name des Devices (wie in der Onecta-App) und der Wert die Device-ID. Sollte kein Name vergeben worden sein, wird ebenfalls die Device-ID als Readingsname verwendet. Auch diese Angaben dienen vornehmlich der Information, wann die letzten Informationen zu einem Gerät übertragen worden sind.
Immer wenn in der Onecta-App der Name für ein Device geändert wird (oder erstmalig vergeben wird), führt dies dazu, dass ein neues Reading=>Wert mit Name=>Device-ID angelegt wird. Das alte Reading (mit dem alten Namen oder Device-ID) wird dann logischerweise nicht mehr aktualisiert, ein löschen des alten Readings erfolgt nicht automatisch, um die Möglichkeiten für eine Fehlersuche/Debbuging zu erhalten.
Mit einem deletereading könnte man natürlich alte readings entfernen, falls die optisch stören sollten. Ansonsten hat das ganze aber keine Auswirkung auf die weitere Bedienung/Verarbeitung im Modul, da für die Verarbeitung der Daten immer die eindeutige Device-ID der Indoor-Geräte verwendet wird.
Indoor-DevicesDie Readings der Indoor-Devices werden aus den Rohdaten der Cloud extrahiert. Je nach Gerät und Funktionsumfang fallen die Bezeichnungen der Readings bzw. der Umfang der Readings sehr unterschiedlich aus. Im Laufe der Entwicklung des Moduls hat es an ein paar wenigen Readingsnamen Änderungen gegeben, um auch die Informationen von den Altherma-Geräten ordnungsgemäß abzurufen bzw. diese ordnungsgemäß steuern zu können. Hierzu wurde bei den betroffenen Readingsnamen noch der sogenannte "_managementPoint" angehangen (betraf das Update auf Modul-Version 1.3.0). Dies hatte zur Folge, dass in den Indoor-Devices eventuell ein paar Readings vorhanden sind, die so nicht mehr aktuell sind bzw. aktualisiert werden. Mit einem
deletereading <name-indoor-device> .*
könnten hier erstmal alle readings des betreffendes Indoor-Devices gelöscht werden. Beim nächsten Polling-Intervall werden dann nur alle
aktuellen Readings wieder angelegt. Nur so als Hinweis, falls jemand solche veralteten Readings im Device hat bzw. sich daran stört.
Firmware-Update von DaikinIch habe die Gateways meiner Geräte ebenfalls soeben auf Firmware 1_25_0 geupdatet und kann mitteilen, dass alles weiterhin fehlerfrei funktioniert.
MfG Frank
Moin, danke für deine tolle Arbeit. Ich wollte das Modul nutzen, wenn ich mir das tokenset holen will und zuvor user und pw eingegeben habe, kommt folgende Fehlermeldung zurück
login_status
Error (16) no login-token found (wrong username or password).
User und pw habe ich mehrfach geprüft. Funktionieren Gmail Adressen als Zugang ( so wie ich ihn such in onecta nutze)
Vielen Dank schonmal im vorraus für Antworten.
Michael
Hallo Maik bzw. Michael,
in der Commandref ist so ein kleiner Hinweis mit eingebunden, dass Social-Media-Logins (also Facebook-, Google- und Apple-Logins) voraussichtlich nicht unterstützt werden. Der Hinweis müsste auch unterhalb des Eingabefeldes erscheinen, wenn du den Username abspeichern willst. Offenbar läuft bei dieser Art des Logins der Prozess anders ab. Näheres kann ich dazu nicht sagen, da ich das Login nicht selbst reverse-engineered habe. Aber das Problem bzw. die Einschränkung ist bekannt. Ich gehe auch nicht davon aus, dass es dafür zeitnah eine unmittelbare Lösung geben wird.
Im Endeffekt gibt es nur zwei Behelfslösungen:
1. Bei Daikin mit einer "normalen" email-Adresse (also z.B. gmx, web oder irgendeine andere domain) registrieren und die Geräte mit diesem Account neu verknüpfen.
oder
2. Den Social-Media-Login weiterhin nutzen, aber einen weiteren Benutzer mit einer "normalen" email-Adresse registrieren und in der Onecta-App den weiteren Benutzer einladen/hinzufügen. Dann müssten zwar nicht nochmals alle Innengeräte neu registriert werden, allerdings kann es sein, dass der "Mitbenutzer" nur eingeschränkte Rechte/Einstellmöglichkeiten hat. Bei mir kann z.B. nur der Eigentümer (also ich) die individuelle Bedarfsteuerung des Multi-Split-Gerätes (demandvalue) verändern, meine Frau als Mitbenutzer hat dieses Recht nicht (sie hat nur lesenden Zugriff auf diesen Wert).
MfG Frank
Zitat von: FrankL am 26 August 2023, 19:36:39Hallo Maik bzw. Michael,
in der Commandref ist so ein kleiner Hinweis mit eingebunden, dass Social-Media-Logins (also Facebook-, Google- und Apple-Logins) voraussichtlich nicht unterstützt werden.
Ja den Eintrag habe ich auch gelesen, ich hatte auch schon die Vermutung, dass es daran liegen könnte. War mir aber nicht sicher bei dem Wortlaut der Fehlermeldung. Ich werde mir mal einen neuen Zugang bei Daikin besorgen, das scheint das einfachste zu sein.
Gruß
Michael
Kurze Rückmeldung, ohne Gmail login klappt jetzt.
Zitat von: Maik am 26 August 2023, 21:58:25Zitat von: FrankL am 26 August 2023, 19:36:39Hallo Maik bzw. Michael,
in der Commandref ist so ein kleiner Hinweis mit eingebunden, dass Social-Media-Logins (also Facebook-, Google- und Apple-Logins) voraussichtlich nicht unterstützt werden.
Ja den Eintrag habe ich auch gelesen, ich hatte auch schon die Vermutung, dass es daran liegen könnte. War mir aber nicht sicher bei dem Wortlaut der Fehlermeldung. Ich werde mir mal einen neuen Zugang bei Daikin besorgen, das scheint das einfachste zu sein.
Gruß
Michael
Hallo Frank
Leider scheitere ich schon bei Schritt 1
1. Die Datei "58_DaikinCloud.pm" muss zu den anderen Modulen in den Ordner fhem/FHEM kopiert und wie folgt in FHEM geladen werden
Erledigt
Aber auf
reload 58_DaikinCloud.pm
erhalte ich
Too many arguments for main::json2nameValue at ./FHEM/58_DaikinCloud.pm line 779, near "$neg_filter)"
Auch ein Fhem Neustart ändert nichts.
Kannst du bitte in FHEM in die Eingabezeile mal den Befehl "version" eingeben und sagen was dort bei der "fhem.pl" für eine "Rev / Last Change" angegeben ist.
Ich vermute du hast seit November 2021 kein update von FHEM mehr gemacht, oder? Der vollständige Befehl von "json2nameValue" ist seit FHEM 6.1 implementiert und wird von meinem Modul verwendet/benötigt.
Also einfach in die Eingabezeile von FHEM mal "update" eingeben und warten. Das Update läuft dann im Hintergrund ab. Sollte man immer mal machen ;-)
Nachdem der Update-Prozess abgeschlossen ist, sollte das "reload 58_DaikinCloud.pm" im Anschluss auch fehlerfrei durchlaufen.
MfG Frank
Korrekt. Das letzte Update war Anfang 2021.
Aber ich scheitere momentan an der Serververbindung.
update check ergibt
Downloading https://fhem.de/fhemupdate/controls_fhem.txt
https://fhem.de/fhemupdate/controls_fhem.txt: Can't connect(2) to https://fhem.de:443: SSL connect attempt failed error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
update ergibt
2023.09.20 20:13:56 1 : Downloading https://fhem.de/fhemupdate/controls_fhem.txt
2023.09.20 20:13:56 1 : https://fhem.de/fhemupdate/controls_fhem.txt: Can't connect(2) to https://fhem.de:443: SSL connect attempt failed error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Ist das nur bei mir so oder ein allgemeiner Serverfehler?
Update von FHEM funktioniert bei mir.
Ich würde mal raten, dass dein Betriebssystem nicht up to date ist. Wahrscheinlich läuft da noch Debian/Raspian "Jessie" oder älter?!? Der FHEM-Server setzt eine halbwegs aktuelle SSL-lib voraus, die du unter Jessie (wegen Support-Ende) nicht mehr bekommst. Wenn du nach der Fehlermeldung hier im Forum suchst, findest du einige Einträge zu dem Thema. Da hilft wohl nur ein Upgrade auf eine aktuelle Debian-Version.
MfG Frank
Als Notvariante steht für alte Distributionen auch folgende Option zur Eingabe in FHEM zur Verfügung:
update -noSSL
MfG Frank
Das wird es wohl sein. Ich hatte 2016 mit Raspian gestartet.
update -noSSL check
bringt mich auch nicht weiter
Downloading http://fhem.de/fhemupdate/controls_fhem.txt
https://fhem.de/fhemupdate/controls_fhem.txt: Can't connect(2) to https://fhem.de:443: SSL connect attempt failed error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Aber das diskutiere besser in einem anderen Bereich weiter.
Hallo FrankL. Die Konfiguration mit deinem Modul hat problemlos funktioniert. Danke für dein Modul.
list Daikin_WP
Internals:
DEF 0c62e0bd-722f-4e03-84ac-6c02b2d2e18c
FUUID 65253580-f33f-f4d2-985d-3a8c2e7637478a2f
NAME Daikin_WP
NR 4903
NTFY_ORDER 50-DaikinCloud_0c62e0bd_722f_4e03_84ac_6c02b2d2e18c
STATE on
TYPE DaikinCloud
VERSION v1.3.6 - 20.06.2023
eventCount 102
READINGS:
2023-10-11 07:41:11 controlMode leavingWaterTemperature
2023-10-11 07:41:11 dateTime 2023-10-10T23:46:01
2023-10-11 07:41:11 deviceModel Altherma
2023-10-11 07:41:11 eepromVersion 1708873-13A
2023-10-11 07:41:11 embeddedId da9f9c35-da8d-4fd1-a1be-a7f900725a41
2023-10-11 07:41:11 energy_heating_d_10_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_10_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_11_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_11_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_12_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_12_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_13_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_13_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_14_climateControlMainZone 2
2023-10-11 07:41:11 energy_heating_d_14_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_15_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_15_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_16_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_16_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_17_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_17_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_18_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_18_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_19_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_19_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_1_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_1_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_20_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_20_domesticHotWaterTank 1
2023-10-11 01:08:27 energy_heating_d_21_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_21_domesticHotWaterTank 2
2023-10-11 01:08:27 energy_heating_d_22_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_22_domesticHotWaterTank 0
2023-10-11 01:08:27 energy_heating_d_23_climateControlMainZone 0
2023-10-11 01:08:27 energy_heating_d_23_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_2_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_2_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_3_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_3_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_4_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_4_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_5_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_5_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_6_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_6_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_7_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_7_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_d_8_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_8_domesticHotWaterTank 1
2023-10-11 07:41:11 energy_heating_d_9_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_d_9_domesticHotWaterTank 2
2023-10-11 07:41:11 energy_heating_m_22_climateControlMainZone 10
2023-10-11 07:41:11 energy_heating_m_22_domesticHotWaterTank 35
2023-10-11 07:41:11 energy_heating_w_10_climateControlMainZone 2
2023-10-11 07:41:11 energy_heating_w_10_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_2_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_2_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_3_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_3_domesticHotWaterTank 9
2023-10-11 07:41:11 energy_heating_w_4_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_4_domesticHotWaterTank 23
2023-10-11 07:41:11 energy_heating_w_5_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_5_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_6_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_6_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_7_climateControlMainZone 3
2023-10-11 07:41:11 energy_heating_w_7_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_8_climateControlMainZone 5
2023-10-11 07:41:11 energy_heating_w_8_domesticHotWaterTank 0
2023-10-11 07:41:11 energy_heating_w_9_climateControlMainZone 0
2023-10-11 07:41:11 energy_heating_w_9_domesticHotWaterTank 3
2023-10-11 07:41:11 errorCode_climateControlMainZone HC-01
2023-10-11 07:41:11 errorCode_domesticHotWaterTank HC-01
2023-10-11 07:41:11 firmwareVersion_gateway 3.2.5
2023-10-11 07:41:11 firmwareVersion_userInterface 7.1.0
2023-10-11 07:41:11 heatupMode reheatOnly
2023-10-11 07:41:11 iconId_climateControlMainZone 8
2023-10-11 07:41:11 iconId_domesticHotWaterTank 9
2023-10-11 07:41:11 iconId_gateway 3
2023-10-11 07:41:11 iconId_indoorUnitHydro 4
2023-10-11 07:41:11 iconId_outdoorUnit 5
2023-10-11 07:41:11 iconId_userInterface 6
2023-10-11 07:41:11 id 0c62e0bd-722f-4e03-84ac-6c02b2d2e18c
2023-10-11 07:41:11 ipAddress 192.168.17.169
2023-10-11 07:41:11 isCloudConnectionUp true
2023-10-11 07:41:11 isFirmwareUpdateSupported_gateway true
2023-10-11 07:41:11 isHolidayModeActive_climateControlMainZone false
2023-10-11 07:41:11 isHolidayModeActive_domesticHotWaterTank false
2023-10-11 07:41:11 isInEmergencyState_climateControlMainZone false
2023-10-11 07:41:11 isInEmergencyState_domesticHotWaterTank false
2023-10-11 07:41:11 isInErrorState_climateControlMainZone false
2023-10-11 07:41:11 isInErrorState_domesticHotWaterTank false
2023-10-11 07:41:11 isInInstallerState_climateControlMainZone false
2023-10-11 07:41:11 isInInstallerState_domesticHotWaterTank false
2023-10-11 07:41:11 isInWarningState_climateControlMainZone true
2023-10-11 07:41:11 isInWarningState_domesticHotWaterTank true
2023-10-11 07:41:11 isPowerfulModeActive false
2023-10-11 07:41:11 kWh_heating_day 2
2023-10-11 07:41:11 kWh_heating_day_domesticHotWaterTank 0
2023-10-11 07:41:11 kWh_heating_week 7
2023-10-11 07:41:11 kWh_heating_week_domesticHotWaterTank 3
2023-10-11 07:41:11 kWh_heating_year 10
2023-10-11 07:41:11 kWh_heating_year_domesticHotWaterTank 35
2023-10-11 07:41:11 leavingWaterTemperature 41
2023-10-11 07:41:11 macAddress b4:8c:9d:0c:46:82
2023-10-11 07:41:11 managementPoint_Nr_1 gateway
2023-10-11 07:41:11 managementPoint_Nr_2 climateControlMainZone
2023-10-11 07:41:11 managementPoint_Nr_3 domesticHotWaterTank
2023-10-11 07:41:11 managementPoint_Nr_4 indoorUnitHydro
2023-10-11 07:41:11 managementPoint_Nr_5 outdoorUnit
2023-10-11 07:41:11 managementPoint_Nr_6 userInterface
2023-10-11 07:41:11 miconId_userInterface 20010E07
2023-10-11 07:41:11 modelInfo_gateway BRP069A78
2023-10-11 07:41:11 modelInfo_indoorUnitHydro ETBH12EF9W
2023-10-11 07:41:11 modelInfo_userInterface ETBH12EF9W
2023-10-11 07:41:11 name 0c62e0bd-722f-4e03-84ac-6c02b2d2e18c
2023-10-11 07:41:11 name_domesticHotWaterTank
2023-10-11 07:41:11 name_gateway Gateway
2023-10-11 07:41:11 name_indoorUnitHydro Indoor Hydro Unit
2023-10-11 07:41:11 name_outdoorUnit Outdoor Unit
2023-10-11 07:41:11 name_userInterface User Interface
2023-10-11 07:41:11 offset 0
2023-10-11 07:41:11 onOffMode on
2023-10-11 07:41:11 onOffMode_domesticHotWaterTank on
2023-10-11 07:41:11 operationMode heating
2023-10-11 07:41:11 operationMode_domesticHotWaterTank heating
2023-10-11 07:41:11 outdoorTemperature 9
2023-10-11 07:41:11 powerfulMode off
2023-10-11 07:41:11 serialNumber 0170667
2023-10-11 07:41:11 setpoint 45
2023-10-11 07:41:11 setpointMode weatherDependent
2023-10-11 07:41:11 setpointMode_domesticHotWaterTank fixed
2023-10-11 07:41:11 softwareVersion_indoorUnitHydro 0792
2023-10-11 07:41:11 softwareVersion_outdoorUnit 8028
2023-10-11 07:41:11 softwareVersion_userInterface 7.1.0
2023-10-11 07:41:11 ssid daikin-ap
2023-10-11 07:41:11 state on
2023-10-11 07:41:11 tankTemperature 43
2023-10-11 07:41:11 timestamp 2023-10-11T05:02:24.535Z
2023-10-11 07:41:11 type heating-wlan
2023-10-11 07:41:11 wifiConnectionSSID CCS
2023-10-11 07:41:11 wifiConnectionStrength -43
helper:
table:
climateControlMainZone:onOffMode onOffMode:off,on
climateControlMainZone:temperatureControl_value_operationModes_auto_setpoints_leavingWaterOffset offset:slider,-10,1,10,1
climateControlMainZone:temperatureControl_value_operationModes_heating_setpoints_leavingWaterOffset offset:slider,-10,1,10,1
domesticHotWaterTank:onOffMode onOffMode_domesticHotWaterTank:off,on
domesticHotWaterTank:powerfulMode powerfulMode_domesticHotWaterTank:off,on
domesticHotWaterTank:temperatureControl_value_operationModes_heating_setpoints_domesticHotWaterTemperature setpoint_domesticHotWaterTank:slider,30,1,60,1
Attributes:
alias Daikin Altherma 3H MT W - Wärmepumpe
consumptionData 1
devStateIcon on:Ventilator_wind@0CFB0C off:Ventilator_fett@gray
devStateStyle style="text-align:left;;font-weight:bold;;"
event-on-change-reading .*
group Daikin Wärmepumpe
icon sani_heating_heatpump
room Heizung,SolarThermie,Warmwasser
webCmd onOffMode:setpoint:operationMode
webCmdLabel Power<br>:Temperatur<br>:Modus<br>
Hallo,
hab gerade gesehen es gibt eine Update auf die Version 1.28.0 ;-) hat jemand das schon eingespielt ? Geht das Modul dann noch ????
VG Toron
Hallo,
ich habe meine Perfera-Innengeräte soeben alle auf 1_28_0 aktualisiert. Funktioniert alles weiterhin. Das Log ist unauffällig (also keine Fehlermeldungen etc).
MfG Frank
Hallo,
hat das hier möglicherweise eine Auswirkung auf das Modul hier?
https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-1933967548
VG
Olli
Danke für die Info. Das sind allerdings keine guten Nachrichten. Wenn ich alles richtig übersetzt/verstanden habe und Daikin das so durchzieht, wäre ab 11.03.2024 der Zugang zur Cloud auf diese Weise nicht mehr möglich. Das betrifft aktuell alle bestehenden Integrationen (egal ob FHEM, HA, Node-Red, etc), da sie alle mit demselben API-Key arbeiten (und dieser dann generell nicht mehr akzeptiert wird). Ich werde voraussichtlich so kurzfristig auch keine Lösung anbieten können. Ich bin mir auch nicht sicher, ob eine Umstellung auf die neue API überhaupt lohnt, da die Beschränkung auf 150 Requests pro Tag eine verlässliche Steuerung eigentlich überhaupt nicht mehr zulässt. Ich hoffe, dass Daikin die vielen Feedbacks zum Anlass nimmt, anders zu entscheiden oder wieder die lokale API ermöglicht.
Ich werde mich in den nächsten Tagen mal näher damit beschäftigen.
Hallo Frank,
Danke für die Rückmeldung.
Mit Schrecken habe ich über den GitHub-Link gelesen, daß Daikin die API abschalten will.
Ich nutze Deine FHEM-Integration mit einer Altherma 3RW, die bivalent alternativ zu einem Ölbrenner arbeitet.
Diese FHEM-Integration bietet die Möglichkeit die Wärmepumpe zeitgesteuert Ein/Aus zu schalten, was sonst weder über die Onecta-App geht, noch am Innengerät parametrierbar ist.
Es wäre schade, wenn diese 58_DaikinCloud.pm ersatzlos wegfallen würde.
Gruß
Michael
Moin Frank,
das wäre echt sch... wenns nicht mehr laufen sollte, da kann man wirklich nur hoffen das Daikin da keinen Mist verzapft.
Hallo zusammen,
ich hab auf der Github-Seite https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-1933967548 (https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-1933967548) einen Kommentar hinterlassen, in der Hoffnung, dass das jemand von Daikin liest und sich hoffentlich noch eines anderen besinnt - und wenn auch nur mehr Vorlaufzeit als nur drei Monate (ab November) dabei herauskommt.
Viele Grüße Gisbert
Ich habe parallel zu DaikinCloud diese Integration für unsere Wärmepumpe am Laufen:
https://github.com/Arnold-n/P1P2Serial
Das war relativ einfach zu installieren und ist für das Monitoring wesentlich genauer als die Cloud.
Man kann damit auch steuern, aber dafür hatte ich noch nicht den Bedarf.
Hi buennerbernd,
den Arnold-Link habe ich mir angeschaut und gleich wieder zu gemacht.
Ich komme zwar ursprünglich aus dem Bereich "Automation", bin jetzt aber 68 Jahre alt, Rentner und befürchte, daß ich
da nicht mehr so einfach durchsteige. -- ich wüsste gar nicht , wo ich da anfangen soll .. --
Die Cloud-Anbindung mit der Lösung von Frank war da vergleichweise einfacher.
Ehrlich gesagt: da komme ich an meine Grenzen !
gibt es eine einfachere, verständliche Beschreibung, wie die WP auf diese Art in FHEM eingebunden werden kann ?
Gruß Michael
Hi Michael,
ich habe beim Entwickler dieses Projektes die Hardware für ca. 80€ gekauft.
Da habe ich eine ausführliche Anleitung erhalten, wie MQTT eingerichtet wird.
Der Anschluss an die Wärmepumpe geschieht über 2 Drähte, fertig.
Bei mir (frühere Firmware) musste man zur Konfiguration auch mal Telnet benutzen, aber das meiste geht auch über ein Web-Interface.
In FHEM hatte ich schon für andere Geräte MQTT konfiguriert. Da war das einfach nur ein weiteres Gerät.
Hallo Bernd,
Danke für die Info.
- das hört sich ja einfacher an, als ich gedacht hatte.
MQTT habe ich auch bereits am Laufen (Sonoff-Schalter 2-Kanal).
.. da bleib ich dran..
Gruß
Michael
Hallo Bernd,
Ich habe mich mal bei GitHub angemeldet, finde aber irgendwie keinen Weg um mit dem Entwickler zu kommunizieren.
Wo muss ich da hin ?
Zitat von: Mnl am 20 Februar 2024, 14:03:11Hallo Bernd,
Ich habe mich mal bei GitHub angemeldet, finde aber irgendwie keinen Weg um mit dem Entwickler zu kommunizieren.
Wo muss ich da hin ?
Ich habe dir eine private Mitteilung mit seiner E-Mail Adresse geschickt.
Ich wollte mal einen Zwischenstand geben: Ich bin dabei, den Authorisierungsprozess auf die neue API umzustellen. Die Integration bei Home Assistant ist bereits erfolgreich umgesetzt worden. Im Unterschied zu Home Assistant wird für FHEM jedoch jeweils eine individuelle redirect_url benötigt. Diese Funktion ist zwar im Development-Portal von Daikin vorhanden, kann aber noch nicht benutzt werden, weil noch nicht freigeschaltet ... :o Insoweit finde ich den Zeitplan von Daikin schon ganz schön sportlich.
Ich bin aber ganz zuversichtlich, dass ich eine Lösung anbieten kann. Allerdings und dass ist schon mal die Vorwarnung, wird es gewissene Einschränkungen geben. Aufgrund der geplanten Zugriffsbeschänkung von max. 20 Requests pro Minute und insgesamt max. 200 Requests pro Tag plane ich das Aktualisierungsintervall auf ein Minimum von 15 Minuten (= 96 Requests pro Tag) festzulegen, damit genug Requests für eine verlässliche Steuerung verbleiben. Ebenso sind bislang nicht alle Datenpunkte über die neue API abrufbar.
Wer bislang mit einer minütlichen Anpassung der setpoint-Temperaturen gearbeitet hat oder jede Minute die aktuellen Daten der Cloud benötigt hat, sollte sich für sein System bereits jetzt Gedanken machen, wie er das anderweitig lösen kann. Ebenfalls könnte es ggf. auch zu Problemen kommen, wenn jemand sehr viele Innengeräte zu steuern hat und dem entsprechend viele Requests für das Steuern benötigt.
Ferner wurde im Github-Issue (https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-1957111287) mitgeteilt, dass es für Altherma-Geräte demnächst ein lokales Modbus-Modul (Daikin HomeHub) geben soll. Daher sollte dieses Gerät für Dateninteraktionen in ,,Echtzeit" bevorzugt werden. Da ich selbst aber kein Altherma-Gerät habe, kann ich dazu nicht wirklich was sagen.
Wie gesagt ich bin dran und halte euch auf dem laufenden.
MfG Frank
Hallo Daikin-User,
mit Modbus scheint es so zu funktionieren, dass die Geräte per ModbusRTU vernetzt werden und der HomeHub das über ModbusIP zur Verfügung stellt. Das lässt annehmen, dass man auch ohne HomeHub mithilfe eines RS485-Interfaces auf die Geräte zugreifen können müsste. Hier die Dokumentation (https://www.daikin.de/content/dam/document-library/Installer-reference-guide/ac/vrv/EKMBDXB7V1/EKMBDXB7V1_Design%20guide_4PEN642495-1_English.pdf).
Gruß
Frank
Hallo Frank (@F_Klee),
alleine vom Drüberschauen über die Datei wird mir schwindelig. Ich glaube, dass das für die allermeisten User (wie mich) außerhalb ihres Kompetenzlevels ist.
Dennoch halte ich es für sehr wichtig, dass alle relevanten Informationen gesammelt und geteilt werden. Deshalb vielen Dank für deinen Beitrag.
Viele Grüße Gisbert
Generell ist es bereits möglich, die Signale von Altherma-Geräten hardwaremäßig abzufassen und auszuwerten. Ob das nun mit einem Modbus-Modul von Daikin oder z.B. einem ESP32-Projekt (https://raomin.github.io/ESPAltherma/) erfolgt, ist wahrscheinlich eher eine Kostenfrage. Beides erfordert den entsprechenden "hardwaremäßigen Eingriff/Anschluss".
Hätte ich eine Altherma, würde ich wahrscheinlich auf diesem Weg diese ganze Cloud-Geschichte umgehen.
Bei einer Multi-Split-Anlage mit mehreren Innengeräten müssen halt alle Innengeräte angeschlossen werden. Insoweit ist Verkabelung mit einem Modbus-Gerät für mich keine Option. Daher werde ich weiter auf die Steuerung über Cloud setzen, es sei denn die lokale API wird von Daikin über Firmware-Update freigeschaltet (die Hoffnung stirbt zuletzt ;) ).
@Gisbert Das sieht nur schlimm aus. In FHEM gibt es das Modbus-Modul und ein paar Grundkenntnisse in Modbus sind sicher nicht verkehrt. Ich mache es momentan aber auch eher theoretisch. Meine Stiebel Eltron soll in sechs Wochen installiert werden. Dann zeigt sich der Unterschied zwischen Theorie und Praxis ;D
Daikin interessierte mich nur am Rande, da Bekannte eine Daikin haben und in ihrer Visu ein paar Stelloptionen vermissen. Daher käme die ESP-Lösung nicht in Frage, da hier nur Lesend auf die Anlage zugegriffen wird. Per Modbus kann man nicht nur die Input-Register auslesen, sondern auch die Holding-Register schreiben. Für jeden, der nur die Daten in seiner Visu präsentieren möchte, ist das ESP-Projekt eine super Sache.
Wenn ich das, was ich gelesen habe, richtig interpretiert habe, wird der Modbus auch zur Verbindung der einzelnen Geräte untereinander verwendet. Wer das nutzt, könnte sich hier einfach anklemmen. In Tasmota ist ebenfalls eine Modbus-Bridge (https://tasmota.github.io/docs/Modbus-Bridge/) integriert. Man benötigt nur noch ein RS485-Interface. Wenn der FHEM-Server zu weit entfernt ist, spart man sich hierüber auch die Verkabelung.
Jeder hat andere Anforderungen. Daher ist es super, wenn es Entwickler für die unterschiedlichsten Lösungen gibt. Und Daikin ist ja noch lange nicht Daikin ;)
Kann es sein, daß DAIKIN jetzt die Androhung wahrgemacht hat und die API abgeschaltet hat ?
bei mir ist die Verbindung zur DAIKIN-Cloud seit ca. 19:00 Uhr tot.
define Daikin_Master DaikinCloud
attr Daikin_Master autocreate 1
attr Daikin_Master consumptionData 1
attr Daikin_Master interval 60
attr Daikin_Master room Module
# FUUID 65f61512-f33f-93ac-3b6f-6fdd22c4d3b1aa7b
# INTERVAL 60
# NAME Daikin_Master
# NR 569
# NTFY_ORDER 50-Daikin_Master
# STATE password saved
# TYPE DaikinCloud
# VERSION v1.3.6 - 20.06.2023
# eventCount 5
# READINGS:
# 2024-03-16 23:31:54 login_status Error (16) no login-token found (wrong username or password).
# 2024-03-16 23:31:43 state password saved
# helper:
#
setstate Daikin_Master password saved
setstate Daikin_Master 2024-03-16 23:31:54 login_status Error (16) no login-token found (wrong username or password).
setstate Daikin_Master 2024-03-16 23:31:43 state password saved
... ist für mich aber nicht so schlimm, da ich die von buennerbernd in die Diskussion gebrachte MQTT-Lösung inzwischen am Laufen habe.
siehe #86
https://github.com/Arnold-n/P1P2Serial
.. funktioniert prima und zeitnah.
Die alte API sollte eigentlich noch funktionieren. Zumindest läuft es bei mir aktuell noch.
Ich habe zwischenzeitlich das Modul auf die neue API angepasst und bei mir seit knapp 2 Wochen parallel im Testbetrieb. Soweit funktioniert das auch, abgesehen von dem Umstand, dass nicht alle Funktionalitäten auf der neuen API verfügbar sind (es fehlen bspw. noch: streamerMode, econoMode, demandControl, demandValue). Eine Zusammenfassung der fehlenden Funktionalitäten gibt es auch hier im Github-Issue (https://github.com/jwillemsen/daikin_onecta/issues/46).
Allerdings läuft die einmalig erforderliche OAuth2-Anmeldung noch nicht vollautomatisiert durch, sondern ist mit ein bißchen Handarbeit (Copy+Paste) verbunden, weil im Developer-Portal von Daikin die entsprechende Konfiguration immer noch nicht möglich ist. Ich denke, dass ist auch der Grund, warum die alte API noch läuft.
Aufgrund dieser Umstände habe ich das geänderte Modul hier auch noch nicht eingestellt. Falls aber andere ebenfalls keinen Zugang mehr zur alten API haben, würde ich das geänderte Modul vorab hier einstellen und noch ein paar Anmerkungen zur Erst-Anmeldung geben. Anderenfalls würde ich noch abwarten, bis die vollständige Konfiguartion im Developer-Portal von Daikin möglich ist.
MfG Frank
Danke Frank für die Info.
Ich hatte seit gestern bis jetzt immer wieder username und pwd neu eingegeben und versucht ein tokenset zu bekommen -- immer ohne Erfolg.
Jetzt habe ich mich mal über die Onecta-App abgemeldet und neu angemeldet.
Danach hat hat die Neuanmeldung auch unter FHEM wieder geklappt.
Gruß
Michael
Danke für den Hinweis mit der Ab- und Anmeldung in der Onecta-App, jetzt klappt es bei mir auch wieder.
Hallo zusammen,
wir haben seit heute eine Daikin Emura 3 installiert.
Die Geräte sind in der Cloud registriert und bedienbar.
Bei get <device> tokenSet erhalte ich ebenfalls folgende Fehlermeldung:
login_status Error (23) no authorization code found.
state no access-token
Der Tipp mit neuem Login in der Onecta App hilft hier leider nicht.
Beste Grüße
Ich hab auf Github (https://github.com/frank-lie/DaikinCloud) schon mal die geänderte Modulversion, die mit der neuen API arbeitet, eingecheckt. Da sind auch ein paar Erklärungen zum Update und zum Authorisierungsprozess mit da.
Da das Developer-Portal von Daikin aber immer noch nicht fertig ist bzw. vollständig zur Verfügung steht, geht die OAuth2-Authorisierung aktuell nur über einen Behelfsweg. Da die neue API weniger Daten zur Verfügung stellt und mit dem Request-Limit weitere Einschränkungen bestehen, empfehle ich derzeit noch keinen Umstieg auf die neue Version, soweit die alte API noch funktioniert.
MfG Frank
Besten Dank für die schnelle Antwort.
Mit dieser Version hat das Einrichten funktioniert. Die Emura 3 Geräte wurden automatisch angelegt und ich sehe den Status.
Funktion teste ich morgen. :)
Wollen wir hoffen dass Daikin einsichtig ist, das 200 Request/day Limit ist ja wohl ein schlechter Scherz. >:(
Funktioniert bei mir leider nicht:
Can't locate object method "boolean_values" via package "JSON::XS" at ./FHEM/58_DaikinCloud.pm line 1094.
Fhem restartet nach dieser Meldung.
Das klingt danach, als ob deine JSON::XS nicht aktuell ist, weil sie die Methode/Funktion noch nicht kennt. Um das schnell zu fixen, könntest du die aktuelle Version in der Linux-Shell wie folgt installieren:
sudo apt-get install -y libjson-xs-perl
Danach müsste es eigentlich fehlerfrei gehen. Ich werde aber diesbezüglich noch eine Prüfung im Modul einbauen, um den Fehler abzufangen. Danke für den Hinweis.
Ich habs zusätzlich mit einer aktuellen Modulversion auf Github (https://github.com/frank-lie/DaikinCloud) gefixt/geändert. Nach einem
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
und
shutdown restart
dürfte der Fehler dann definitiv auch nicht mehr auftreten.
Aber wie gesagt: Bei all denen, bei denen die alte API noch läuft, empfehle ich die Umstellung auf die neue API noch zurückzustellen. Auf meinem Produktivsystem ist ebenfalls noch die alte API im Einsatz. Das neue Modul läuft bei mir dazu parallel im Testsystem. Deshalb kann ich aktuell noch nicht alle "Kinderkrankheiten" ausschließen.
MfG Frank
Hallo,
Daikin biete mir heute für meine Geräte ein Update von (1_28_0)auf die Version 1_30_0 an. ;-) Hat schon jemand den Mut gehabt das zu installieren und kann Rückmeldung geben ob es dann noch mit FHEM spricht ....?
Vg Toron
P.S: Zu meiner Schande muss ich gestehen ich benutze auch immer noch die Version v1.3.3 8-/ Da ich nun auch schon wieder weiter gelesen habe und gesehen habe das der API geändert wird, aber selbst Frank zum warten rät werde ich mich wohl noch mal in Geduld üben auch wenn mich die App und der Update Knopf nun nervt. Der Umstellungsprozess scheint ja auch nicht ganz fluffig ....,aber eigentlich könnend die die alte API ja nicht abschalten solange noch x % das Update nicht gemacht haben ... ;-) Hoffnung stirbt zuletzt ....
Bei mir wird über die Onecta-App (Android) noch kein Update angeboten. Über Apple wird es scheinbar schon bereit gestellt (schon seit dem 25.03.2024), kann ich aber leider nicht testen.
Falls es mit dem alten Modul nach dem Update nicht mehr gehen sollte, steht auf jeden Fall die neue Version (https://github.com/frank-lie/DaikinCloud) zur Verfügung. In diesem Sinne: Nur Mut! ;-)
Werde ich das Update auf die Version 1_30_0 als auch FHEM machen.
Denn wie ich im laufe des gestiegen Tages festgestellt durfte bekomme ich in FHEM seit dem 23.3. keine Daten mehr. :-/ Ich nutze Fhem im Winter eigentlich nur um den Verbrauch der Klima täglich zu Logen, das war dann die letzten 10 Tage für den ..... :-/
Vg Toron
Vielleicht hilft es auch, einmal in der Onecta-App abmelden und wieder anmelden, und danach das tokenSet mit FHEM neu abholen. Zumindest hatten damit einige hier Erfolg.
Mit Firmware Version 1_30_0 & App ab & wieder Anmeldung & "get Daikin_Master tokenSet" läuft es wieder ;D
Guten Morgen,
update durchgeführt, den AUTHORIZATION_LINK geklickt, weiter weiter fertigstellen. Läuft.
Herzlichen Dank für dein Update!
Daikin bietet aktuell ein Firmware-Update auf 1_31_0 an (Fix: "Firmware version 1.31.0 for BRP069C4x/BRP069C5x/BRP069C8x adapters which fixes powerfull mode functionality not working via Onecta application"). Weitere Infos unter der Daikin Cloud Status Page (https://daikincloudsolutions.statuspage.io/).
Ich habe das Update auf meinen Perfera-Geräten installiert. Alles läuft weiterhin, sowohl über die alte als auch über die neue API.
MfG Frank
Ich hätte heute eine Änderung der Cloud durchgeführt, weil der herkömmliche Zugriff nicht mehr funktioniert. Funktioniert das nur mit https://my.home-assistant.io/redirect/oauth?
Ich habe testweise versucht nach der https://github.com/frank-lie/DaikinCloud Anleitung vorzugehen. Leider ohne Erfolg. Was wird benötigt und woher kommen die CLIENT_ID, CLIENT_SECRET und REDIRECT_URI Internals?
Aktuell gibt es im Daikin Developer Portal (https://developer.cloud.daikineurope.com/login) noch keine Möglichkeit, die REDIRECT_URI individuell zu konfigurieren. Daher ist momentan bei der einmaligen Authenfizierung nur der Umweg über https://my.home-assistant.io/redirect/oauth möglich. Wenn du das neue Modul mit
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
runtergeladen und mit
reload 58_DaikinCloud.pm
geladen hast, ist bei einem bereits bestehenden Master-Device noch ein
defmod <Daikin_Master_Name> DaikinCloud
erforderlich, damit das bestehende Device für das neue Modul zutreffend initialisiert wird. Alternativ kannst du statt dem "reload" und "defmod" auch einfach ein
shutdown restart
machen. Dabei wird das bestehende Device für das neue Modul automatisch zutreffend initialisiert.
CLIENT_ID, CLIENT_SECRET und REDIRECT_URI werden dann mit den Standard-Werten vorbelegt. CLIENT_ID und CLIENT_SECRET stammen aus dem Daikin Developer Portal (unter ONECTA Cloud API / Getting started) (https://developer.cloud.daikineurope.com/docs/b0dffcaa-7b51-428a-bdff-a7c8a64195c0/getting_started). Es handelt sich hierbei um temporäre Credentials, die dann (irgendwann mal, wenn das Portal von Daikin "fertig" ist) noch auf individuelle Credentials umgestellt werden müssen. Einen genauen Zeitplan von Daikin dazu gibt es aber noch nicht.
Wenn das Master-Device initialisiert/aktualisert worden ist, steht neben dem INTERNAL AUTHORIZATION_LINK ein klickbarer Link zum "Daikin Cloud Login (OAuth2)". Du wirst auf die Seite von Daikin geleitet, müsstest dich dort einloggen, den Nutzungsbedingungen zustimmen und die Freigabe der Daten erlauben. Anschließend wirst du auf die Redirect-Url (von home-assistant) weitergeleitet. Bevor du eine Fehlermeldung wie "Invalid paramaters given" wegklickst, musst du den kompletten Link der Internetseite aus dem Browser (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) in die Zwischenablage kopieren und in FHEM als set-command eingegeben werden:
set <Daikin_Master_Name> AuthCode <kompletter Link der Rückgabe-URL>
Mir ist bewusst, dass das alles ein bißchen umständlich ist. Ich hätte auch gedacht, dass Daikin ein bißchen mehr Initiative/Tempo bei der Umsetzung zeigt. Aber ich bin froh, auf diese Weise überhaupt erstmal eine Alternativlösung gefunden zu haben. Sag Bescheid, wenn was nicht geht - am besten mit genauen Infos, was nicht funktioniert und ggf. den entsprechenden Log-Einträgen.
PS: Nur zur Info: Bei mir funktioniert der alte Zugang bislang noch fehlerfrei ...
MfG Frank
Ich habe wieder auf die alte Lösung zurückgestellt und warte erstmal ab. Irgend etwas hat heute nicht funktioniert. Jetzt funktioniert die Anmeldung mit der alten Version noch.
Die neue API funktioniert generell, ist halt für die Ersteinrichtung nur etwas "umständlich". Der Authentifizierungsprozess muss ja nur einmal durchlaufen werden, danach sollte alles automatisiert ablaufen. Wie gesagt, wenn was nicht funktionieren sollte, bräuchte ich nähere Infos, an welchem Punkt es Probleme gab.
MfG Frank
Vielen Dank, Frank,
Dein Modul wurde gestern unmittelbar nach der Inbetriebnahme einer Daikin Altherma 3 Geo in FHEM installiert und läuft auf Anhieb erfolgreich!
Viele Grüße aus Leipzig!
Peter
Hallo Frank,
ich hab die Anmeldeprozedur durchlaufen, die du am 5. Mai 2024 (https://forum.fhem.de/index.php?topic=133044.msg1312586#msg1312586) 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
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
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
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
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
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
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
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
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
... danke für die schnelle Antwort. Zur WAF-Erhöhung werde ich mir dann etwas einfallen lassen.
Grüße
Joachim
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
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
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
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
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
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
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
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.
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
@artjom83
Für alle, die aktuell noch die CLIENT_ID = eMe1bH5NZ970D-wfj_SkaUlE (vgl. INTERNAL Master-Device) nutzen besteht Handlungsbedarf! Wie bereits unter #134 (https://forum.fhem.de/index.php?msg=1315471) 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 (https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-2096297956).
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 (https://forum.fhem.de/index.php?msg=1271178) 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
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
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
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
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
@Gisbert
Das Update auf 1_31_0 hatte ich damals schon durchgeführt siehe Post #114 (https://forum.fhem.de/index.php?msg=1311921). 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
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
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-After
Danach ein
get <NAME MASTER-DEVICE> forceUpdate
und 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
Welchen Wert hast du eigentlich beim Attribut "interval" eingestellt? Den Standardwert von 900?
MfG Frank
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
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.txt
reload 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
Nach dem "reload 58_DaikinCloud.pm" wäre noch ein
get <Device-Name> forceUpdate
erforderlich, damit die möglichen Set-Befehle für das Innendevice neu ausgewertet/zusammengestellt werden können.
MfG Frank
Zitat von: FrankL am 26 Juni 2024, 21:38:43Ich 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.
Hallo Frank, bei Punkt 2 ist es mir dann klar geworden... ich setze zum steuern beider Innengeräte jeweils ein DOIF ein, welches je nach Status meiner PV-Anlage die Geräte einschaltet bzw. ausschaltet. Dazu frage ich im DOIF auch ständig den State der Geräte (on/off) ab.
Habe beide DOIF's deaktiviert und nun scheint es stabil zu laufen für den Moment.
Danke für deine Hilfe und Arbeit!
Grüße
Artjom
Es ist natürlich eine Möglichkeit, die Klima gerade dann anzuschalten, wenn PV-Erträge im Überschuss vorhanden sind. Wenn du aber auf die aktuelle Leistung der PV-Anlage oder eines Balkonkraftwerkes (BKW) triggerst, solltest du beachten, dass dieser Wert auch in kurzen Abständen stark schwanken kann (allein davon wenn gerade mal ne Wolke vorbeizieht). Wenn dann ein solcher Trigger bereits die Klima wieder ausschaltet, wäre das sehr ungünstig für das Request-Limit, für die Effizienz der Klima und auch für die Lebensdauer des Kompressors. Meine Überlegung für diese Situation wäre, das DOIF mit dem Attribut "wait" zu kombinieren. Als ganz einfache Form z.B. so:
define AutoKlima DOIF ([BKW:P_AC]>200) (set Daikin-Gerät onOffMode on) DOELSEIF ([BKW:P_AC]<100) (set Daikin-Gerät onOffMode off)
attr AutoKlima wait 1800:1800
Das Ergebnis (ungetestet) wäre: Wenn der PV-Ertrag über 200W liegt und auch 30 Minuten lang über 200W bleibt, wird nach diesen 30 Minuten die Klima eingeschaltet. Wenn der PV-Ertrag dann wieder unter 100W geht und auch 30 Minuten lang unter 100W bleibt, wird die Klima wieder ausgeschaltet. Die Hysterese und die zeitliche Verzögerung kann man natürlich individuell definieren. Mit dieser Definition wäre schon mal sichergestellt, dass höchstens aller 30 Minuten ein Schaltbefehl abgesetzt wird. Man kann das ganze noch optimieren, dass auch nur dann ein "set <Daikin-Device> on" abgesetzt wird, wenn die Anlage nicht ohnehin schon "on" ist, und umgekehrt natürlich auch für "off".
MfG Frank
Ja, auch eine Möglichkeit. Ich arbeite mit Durchschnittswerten die ich über eine Zeit X (ist mir gerade entfallen wie lange der Zeitraum ist) bilde. Hat seit über einem Jahr super funktioniert, ohne ständiges ein- und ausschalten.
Ich habe mit der Erläuterung des Punkt 5 auf Github Probleme.
Eingabe https://my.home-assistant.io/redirect/oauth => home-assistant.io "Invalid paramaters given".
Bei mir ist im Browser nur dieser Link ersichtlich => https://my.home-assistant.io/redirect/oauth/
Bestätige ich dieses mit OK komme ich auf diesen Link https://my.home-assistant.io/create-link/?redirect=oauth der Rest des links wird nicht angezeigt (/?code......)
Was muss ich ändern? Ist beim Home Assistant etwas noch vorzubereiten?
Nachdem du in FHEM im Master-DEvice auf den AUTHORIZATION_LINK geklickt hast, wirst du ja auf die Seite von Daikin geleitet und stimmst dort den Nutzungsbedingungen zu und erlaubst du Zugriff für deine App. Im Anschluss wirst du von Daikin auf die REDIRECT_URI weitergeleitet. D.h. du rufst nicht selbst die Internetseite "https://my.home-assistant.io/redirect/oauth" auf, sondern kopierst die komplette Adresse, auf die dich Daikin geleitet hat.
Sag Bescheid, wenn du weitere Hilfe brauchst.
MfG Frank
Die Erklärung in Github betreffend AUTHORIZATION_LINK hatte ich nicht verstanden. Wahrscheinlich liegt es an der Hitze.
Gut, nun bin ich einen Schritt weiter, siehe Anhang, aber komme trotzdem nicht weiter.
Bei mir scheint der Login auf Daikin nicht auf!
Wenn ich den aufscheinenden Link (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) verwende, bekomme ich den
token_status
DaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=403 Response: {"error":"invalid_client","error_description":"Client authentication failed."}
Lies dir mal bitte die Schritt-für-Schritt-Anleitung im Post #146 (https://forum.fhem.de/index.php?msg=1315865) durch und achte darauf, ob wirklich alle Schritte richtig und vollständig durchgeführt worden sind. Insbesondere, ob bei Schritt 5 (also auf der Zustimmungsseite von Daikin) der von dir vergebenene Name für deine App erscheint.
MfG Frank
Da ist schon ein Fehler auf der My Apps auf der Daikin Seite vorhanden.
Wenn ich dort unter Authentication ein Refresch Token ausführe bekomme ich schon eine Fehlermeldung.
Ich denke das das mit der Errichtung schon zusammenhängt wo ich keine Loginaufforderung bekommen habe.
Ich werde wieder alles löschen. Hoffentlich bleiben da keine Fragmente übrig die eine Neuerrichtung stören.
Was ich noch festgestellt habe, ist das auf der Daikin-Login-Webseite schon ein Fehler auftritt bevor ich zum Login komme.
Das muss ich erst mit Daikin klären. Ich denke das alles zusammenhängt.
Bei der ersten Anmeldung zum Daikin-Developer-Portal speichert dein Browser ein Cookie ab, so dass du dich beim nächsten Mal nicht nochmals anmelden musst, sondern dich anhand des Cookies identifiziert. Von daher ist es normal, dass du nicht nochmal die Login-Aufforderung bekommst.
Unter der Daikin-Seite bei MyApps/deine konkrete App/Authentication gibt es zwar den Button "Refresh-Token". Der bringt bei mir aber genau die selbe Fehlermeldung. Für was der Button an dieser Stelle genau gut sein soll, kann dir nicht sagen. Auf jeden Fall brauchst du den auch nicht. Im Endeffekt musst du im Daikin-Developer-Portal nur die App anlegen und dir deine individuelle Client-Id und Client-Secret speichern sowie die Redirect-Url hinterlegen. Günstig ist, wenn du für die App auch einen indvidivuellen Name vergibst, den du bei der späteren Freigabe auch eindeutig identifizieren kannst bzw. wiedererkennst (siehe Schritt der 5 der Anleitung aus Post #146 (https://forum.fhem.de/index.php?msg=1315865)). Mehr musst du dort an dieser Stelle nicht machen.
Bei dem dritten Anhang "LoginFehler.png" kann ich dir nicht wirklich weiter helfen. In welchem Zusammenhang wurde der genau angezeigt? Du hattest dich ja schon erfolgreich angemeldet und auf der Daikin-Seite unter MyApps deine App angelegt. Hast du mehrere Onecta-Zugänge, also mit mehreren Email-Adressen bei Daikin angemeldet? Ggf. lag auf der Daikin-Seite auch "nur" ein temporäres Problem vor.
Spontan würden mir folgende Lösungsmöglichkeiten einfallen:
- Cookies im Browser löschen, so dass du dich nochmal auf der Daikin-Seite mit Email+Passwort anmelden musst.
- Alternativ anderen Browser verwenden oder privaten Tab (Inkognito-Modus) verwenden.
- Die im Daikin-Developer-Portal angelegte App nochmals löschen und eine neue anlegen (und neue Client-Id und Client-Secret merken/speichern).
- Danach die im Post #146 (https://forum.fhem.de/index.php?msg=1315865) genannte Schritt-für-Schritt-Anleitung durchführen und mitteilen, bei welcher Nummer in der Anleitung es zu Abweichungen kam bzw. an welcher Stelle welcher Fehler auftrat.
MfG Frank
Hallo Frank,
das Problem mit der Altherma ist behoben.
Danke
MfG
Wolfgang
Hallo Wolfgang,
schön zu hören, dass es funktioniert. Danke für das Feedback.
Daikin hat Wort gehalten und am 03.07.2024 um 10:11 Uhr den alten Api-Key deaktiviert. :( In der Folge dürfte bei allen, die noch die Modulversion v1.x.x im Einsatz haben, entsprechende Fehlermeldungen (HTTP-Status-Code 401 oder 403) im Logfile auflaufen. Damit besteht nun zwingend die Notwendigkeit, auf die Modulversion v2.x.x umzustellen und die erforderlichen Schritte (siehe Anleitung im Post #1 (https://forum.fhem.de/index.php?msg=1271178)) durchzuführen, um das Modul weiterhin nutzen zu können.
MfG Frank
Hallo Frank,
Ich habe zwei Daikin Emura3 Geräte im Einsatz (2x Innengerät, 1 Außengerät)
Die Emura hat eine Streamer Funktion die dein Modul laut Anleitung auch unterstützt. Leider ist sie bei mir in FHEM nicht verfügbar.
Hast du da einen Hinweis ob ich evtl. etwas falsch konfiguriert habe?
Desweiteren hat die Emura3 noch folgende Einstellmöglichkeiten:
- Außeneinheit Geräuscharm (Ein/Aus)
- Intelligentes Sensorauge (Ein/Aus)
- Bedarfssteuerung (Leistung des Außengeräts: 40% - 100%/Auto/Zeitplan) EDIT: Habe gerade gesehen dass du das auch schon integriert hast. Wird bei mir aber leider nicht angezeigt.
Ist sowas für dich einfach integrierbar? Dann könnte man fast komplett auf die App verzichten.
An dieser Stelle nochmal vielen Dank für deine Bemühungen dieses Modul zu entwickeln. :)
Mfg
In der alten Api (also mit Modulversion v1.x.x) war die Bedarfssteuerung, Streamermode, etc auch alles verfügbar und steuerbar. Diese Sachen hat Daikin jedoch mit der neuen Open-Api (also Modulversion v2.x.x) beschränkt, d.h. diese Datenpunkte sind in den gelieferten Clouddaten nicht mehr vorhanden. Damit sind die Befehle demandControl, demandValue, econoMode, streamerMode, etc aktuell nicht mehr verfügbar.
Sobald sich Daikin entscheiden sollte, diese Datenpunkte auch über die Open-Api (wieder) zur Verfügung zu stellen und (wieder) steuerbar zu machen, würden sie automatisch in der setlist zur Verfügung stellen. Ich kann da aktuell nichts machen, im Modul ist schon alles vorhanden, was erforderlich wäre.
Das einzige was jeder einzelne machen kann, ist entsprechendes Feedback/Issues an Daikin zu senden (Email: residential.cloud.developer@daikineurope.com (mailto:residential.cloud.developer@daikineurope.com)) und darum bitten, die weiteren Datenpunkte wie Bedarfssteuerung zur Verfügung zu stellen (siehe auch Issue zur Home Assistant Integration für Daikin (https://github.com/jwillemsen/daikin_onecta/issues/46)).
MfG Frank
Ich habe vor 2 Wochen an diese Adresse geschrieben, bisher aber keine Antwort erhalten.
Hatte jemand diesbezüglich schon Kontakt mit Daikin und kann Hinweise geben?
Gibt es offizielle Foren wo sowas diskutiert wird?
Diese Einschränkung beschäftigt doch sicher viele Leute. Ich finde es unmöglich wie Daikin sich hier quer stellt.
Hallo,
also ich hatte auch schon div unschöne Erfahrungen mit der neuen API.
- Innengerät plötzlich "offline" und das auch in der Offiziellen App, Fritz Box steht 5 Meter entfernt. (Ist nicht nur ein mal passiert, kommt dann nach 10 min wieder.)
- Abfragelimit erreicht. (gefühlt an dem tag 3 Geräte 3-4 mal an und aus .... :-/
- Verzögerung in der Onecta App, Klima läuft seit min. und wird immer noch als "aus" angezeigt ..., es geht auch manchmal schnell ca 20-30 sec. Was ich auch schon lange finde
Kann das jemand bestätigen ?
VG
Hallo toron_go,
ich kann das von meiner Seite nicht bestätigen. Meine Single-Split-Anlage läuft reibungslos mit der Steuerung in Fhem.
Viele Grüße Gisbert
Hier mal meine bisherigen Erfahrungen:
Ich habe bei mir eine Multisplit mit 3 Innengeräten (Perfera) im Betrieb. Die Steuerung läuft bei mir zuverlässig, d.h. die abgesetzten Befehle kommen innerhalb von ca. 1 Sekunde tatsächlich beim Innengerät an.
Offline
Probleme, dass die Innengeräte offline angezeigt werden, hatte ich bei mir nicht. Wenn die Innengeräte aber offline angezeigt werden (und damit auch in der Onecta-App offline sind), scheint die Verbindung zwischen Innengerät und Cloud gestört zu sein. Das hat dann nicht wirklich was mit der neuen API zu tun. Im Zusammenhang mit einer Fritzbox und einem Mesh hatte ich bei mir zeitweise mal Probleme, dass sich z.B. Tasmota-Geräte mit einem schwächeren Mesh-Access-Point verbunden hatten und nicht von selbst wieder auf den stärksten Mesh-Access-Point zurückgewechselt sind. Das hatte dann auch gewisse Verbindungsprobleme produziert. Das konnte ich aber bei den Daikin-Geräten bislang so nicht feststellen. Wenn die Geräte also offline angezeigt werden, würde ich zuerst im Router/Fritzbox mal schauen, ob die Verbindung der Innengeräte bis dorthin ok ist.
Abfragelimit
Das Thema Abfragelimit ist in der Tat sehr abhängig davon, wieviel Innengeräte damit gesteuert werden sollen. Mit 5 und mehr Innengeräten kommt man da sicherlich schneller an die Grenzen, als wenn nur ein Gerät gesteuert werden muss. Im Zweifel hilft hier nur ein entsprechendes Feedback/Issue an Daikin zu senden (Email: residential.cloud.developer@daikineurope.com (mailto:residential.cloud.developer@daikineurope.com)) und darum bitten, das Tageslimit zu erhöhen mit der Begründung, dass sonst die zuverlässige Steuerung mehrerer Innengeräte nicht möglich ist.
Vielleicht hilft es aber auch weiter das Reading "RateLimit-Remaining-day" im Master-Device zu loggen, um ein Gefühl zu bekommen, wann Abfragen in der eigenen Automatisierung gehäuft auftreten und ggf. eingespart werden könnten:
define LogLimitDay FileLog ./log/LogLimitDay-%Y.log <NAME MASTER-DEVICE>.*:RateLimit-Remaining-day.*
Verzögerte Anzeige in der Onecta-App
Die Anzeige bzw. die Daten in der Onecta-App lassen sich durch wischen von oben nach unten jeweils aktualsieren. Dann sind auch in der Onecta-App die Daten zu sehen, die der aktuelle Stand in der Cloud sind.
Hallo,
ok.
Zitat von: FrankL am 22 Juli 2024, 21:48:47Ich habe bei mir eine Multisplit mit 3 Innengeräten (Perfera) im Betrieb. Die Steuerung läuft bei mir zuverlässig, d.h. die abgesetzten Befehle kommen innerhalb von ca. 1 Sekunde tatsächlich beim Innengerät an.
Ok dann haben wir die gleiche Konfoiguration. 8-)
Zitat von: FrankL am 22 Juli 2024, 21:48:47Verzögerte Anzeige in der Onecta-App
Die Anzeige bzw. die Daten in der Onecta-App lassen sich durch wischen von oben nach unten jeweils aktualsieren. Dann sind auch in der Onecta-App die Daten zu sehen, die der aktuelle Stand in der Cloud sind.
Das war mit bewust, aber es dauert halt manchmal noch gefühlt sehr lange. Werde das noch mal genauer betrachten.
Zitat von: FrankL am 22 Juli 2024, 21:48:47Abfragelimit
Das Thema Abfragelimit ist in der Tat sehr abhängig davon, wieviel Innengeräte damit gesteuert werden sollen.
Ich fahre nach dem Kühlen immer ein "Lüften/Ventilator Programm", damit sich keine Feuchtigkeit bilden kann .... Das sind dann halt immer ein paar befahlen mehr nicht nur einfach AUS.
Zitat von: FrankL am 22 Juli 2024, 21:48:47Offline
Wenn die Geräte also offline angezeigt werden, würde ich zuerst im Router/Fritzbox mal schauen, ob die Verbindung der Innengeräte bis dorthin ok ist.
Ok, war auch meine erster verdacht. Aber hatte das auch mit dem Innengerät wo die Fritzbox im gleichen Raum steht mit einer Entfernung ca 3-5 Meter. :-/
VG
Hallo Frank,
ich hab ein schwerwiegendes Problem. Ich schalte die Klimaanlage immer stromlos, wenn ich sie nicht benötige. Das war bisher kein größeres Problem. Gelegentlich musste die Authentifizierung erneut durchgeführt werden, was aber kein großes Ding war.
Am Wochenende hatte ich Home Assistant installiert, zumindest hab ich damit begonnen. Und jetzt funktioniert der Authentifizierungsprozess überhaupt nicht mehr, siehe angehängte Screenshots.
Hast du eine Idee, wie ich das wieder zum Laufen bringen, notfalls in Home Assistant?
Viele Grüße Gisbert
Hallo Gisbert,
ich selbst habe bei mir kein Home Assistant installiert, sondern hatte lediglich deren allgemeine Redirect-Url mitbenutzt. Beim Start des Authentifizerungsprozesses wird in FHEM aus Sicherheitsgründen ein Secret-State erzeugt. In dem Moment, wo du Home Assistant installierst und nutzt, versucht die Redirect-Url, die entsprechenden Parameter an Home Assistant zu übergeben. Da Home Assistant das Secret-State nicht kennt, scheitert der weitere Prozess (Fehlermeldung: Invalid State). Als Lösung bleibt da nur, eine andere Redirect-Url im Daikin-Developer-Portal zu definieren und in FHEM zu verwenden:
Variante A:
Da als Redirect-Url nur eine sichere Verbindung akzeptiert wird (https), kannst du, wenn dein FHEMWEB mit SSL abgesichert ist und mit https aufgerufen wird, den AuthCode direkt an FHEM übergeben, indem du eine individuelle Redirect-Url verwendest:
https://<IP-FHEM-Server>:8083/fhem?cmd=set%20<Master-Device-Name>%20AuthCode%20
IP-FHEM-Server und Master-Device-Name sind durch die entsprechende IP deines FHEM-Servers und den Device-Namen des DaikinCloud-Master-Devices zu ersetzen. Ggf. ist die Port-Nummer (8083) anzupassen, falls du nicht den Standard-Port verwendest.
Ferner ist zu beachten, dass bei Nutzung des csrfToken in FHEM (Standard ab FHEM-Version 5.8 ) noch ein &fwcsrf=<dein CSRF-Token> angehangen wird (vgl. INTERNAL CSRFTOKEN im Device FHEMWEB). In diesem Fall empfiehlt sich, ein statisches CSRFTOKEN zu definieren, damit die Redirect-Url auch nach einem Neustart weiterhin verwendbar ist (ATTR <dein-FHEMWEB-Device-Name> csrfToken csrf_123456789 ). In diesem Fall lautet die Redirect-Url dann:
https://<IP-FHEM-Server>:8083/fhem?cmd=set%20<Master-Device-Name>%20AuthCode%20&fwcsrf=csrf_123456789
Das ganze ist ab Modulversion 2.1.13 vollständig implementiert. Also bitte checken, ob die verwendete Modulversion aktuell ist.
Variante B:
Falls Variante A nicht in Betracht kommt (weil z.B. dein FHEMWEB nicht über SSL / https aufgerufen wird) oder aus irgendwelchen Gründen nicht funktioniert, könntest du als Redirect-Url z.B. auch folgende nutzen:
https://oskar.pw/
Es handelt sich hierbei um eine Seite, die vom Programmierer des Moduls 37_Spotify.pm betrieben bzw. zur Verfügung gestellt wird, und bei der Authentifizerung beim Spotify-Modul verwendet werden kann. In diesem Fall wird der AuthCode -- wie bei Verwendung der Redirect-Url von Home Assistant -- im Link vom Browser angezeigt und muss in die Zwischenablage kopiert werden und im Anschluss manuell per "set Daikin_Master AuthCode <kompletter Link der Rückgabe-URL>" an FHEM übergeben werden.
Eleganter und komfortabler ist natürlich Variante A ;-) So habe ich es zumindest bei mir eingerichtet.
Egal für welche Variante du dich entscheidest: Wichtig ist, dass die Redirect-Url sowohl im Daikin-Developer-Portal als auch im DaikinCloud-Master-Device geändert werden muss und zu 100% exakt überein stimmen müssen.
Gibt Bescheid, ob es funktioniert hat.
PS: Home Assistant und FHEM mit derselben App aus dem Daikin-Developer-Portal zu benutzen wird nicht funktionieren. Du müsstest für Home Assistant eine weitere App im Daikin-Developer-Portal anlegen, wenn du auch mit Home Assistant die Daten von Daikin empfangen möchtest.
MfG Frank
Hallo Frank,
vielen Dank für deine Erklärung.
Ich hab versucht die obige Methode A) umzusetzen. Dazu wollte ich im Daikin Developer Portal eine neue Applikation (zusätzlich zur vorhandenen mit Home Assistent Redirect) mit der Redirect-URL für Fhem anlegen, bekomme aber folgende Fehlermeldung (in rot hinterlegt):
unable to create DCR from HTTP. HTTP ERROR. error:Application Limit Exceeded. error_description:You have reached the maximum limit of one application per developer.
Googlen ergibt als wahrscheinlichen Grund, dass man insgesamt nur 1 Applikation haben darf.
Ich hab also die vorherige Applikation gelöscht und eine neue entsprechend Methode A) angelegt und die Definitionen im DaikinCloud-Master-Device entsprechend geändert. Es läuft jetzt wieder. Vielen lieben Dank.
Viele Grüße Gisbert
Hallo Gisbert,
im Daikin-Developer-Portal kann pro Account aktuell nur eine App angelegt werden. Es besteht aber die Möglichkeit, mit einer anderen Email-Adresse einen weiteren Account im Daikin-Developer-Portal zu registrieren und damit eine weitere App anzulegen.
Das Registrieren / Login mit einer anderen Email-Adresse im Daikin-Developer-Portal funktioniert ggf. nur, wenn du die bisher von Daikin gespeicherten Cookies in deinem Browser löschst, da das Login im Daikin-Developer-Portal mit SSO (Single Sign-on) funktioniert. Alternativ kannst du für das Registrieren / Login mit einer anderen Email-Adresse den Inkognito-Modus deines Browers oder einen anderen Browser verwenden. Dann stellt sich die Problematik mit den Cookies für das SSO nicht.
Auf diese Weise könntest du sowohl für FHEM als auch für Home Assistant eine App anlegen und bei beiden eine entsprechende Verbindung zur Daikin-Cloud herstellen.
MfG Frank
Hallo Frank,
wie bekomme ich meine Geräte mit dem 2ten Dev Account verknüpft? Da stehe ich gerade auf dem Schlauch.
Eine Verknüpfung mit deinen Geräten erfolgt im Daikin-Developer-Portal nicht bzw. ist nicht erforderlich. In dem zweiten 2ten Dev Account legst du einfach "nur" die 2te App an (nicht vergessen die Credentials [Client-ID & Client-Secret] abzuspeichern). Wenn du dann die Credentials der 2ten App im Master-Device verwendest und im Anschluss den AUTHORIZATION_LINK klickst, meldest du dich mit deiner regulären Email-Adresse an, die du in der Onecta-App verwendet hast.
PS: Das Anlegen einer 2ten App macht eigentlich nur Sinn, wenn du die Cloud-Anbindung in zwei verschiedenen Smart-Home-Systemen benutzen oder testen möchtest. Zwei mal in FHEM benutzen (d.h. zwei Master-Device in FHEM definieren) funktioniert nicht bzw. ist ausgeschlossen.
MfG Frank
Alles klar danke für die Aufklärung. Dann schau ich mal...
Mir geht es, neben FHEM, um die Anbindung in Homebridge.
Zitat von: FrankL am 06 Juli 2024, 14:11:00Das einzige was jeder einzelne machen kann, ist entsprechendes Feedback/Issues an Daikin zu senden (Email: residential.cloud.developer@daikineurope.com (mailto:residential.cloud.developer@daikineurope.com)) und darum bitten, die weiteren Datenpunkte wie Bedarfssteuerung zur Verfügung zu stellen (siehe auch Issue zur Home Assistant Integration für Daikin (https://github.com/jwillemsen/daikin_onecta/issues/46)).
Ich habe nun nach zwei Wochen Antwort von Daikin erhalten. Viel Hoffnung habe ich nicht, aber je mehr Leute schreiben umso eher wird sich da etwas tun.
Für meinen Teil werde ich jetzt mit Faikin experimentieren.
Zitatvielen Dank für Ihre Anfrage und entschuldigen Sie die späte Rückmeldung. Ich stimme Ihnen zwar zu, dass die Aktivierung der lokalen API eine enorme Erleichterung mit sich bringen würde, leider haben wir in Deutschland keine Berechtigung dieses zu tun. Unser Mutterkonzern Daikin Europe übernimmt vollumfänglich die Entwicklung und Administration der Onecta App und ist auch für die Schließung der lokalen API verantwortlich. Auch ich habe schon erfolglos diverse Anfragen/Aufforderungen diesbezüglich gestellt.
Die Cloud API befindet sich jedoch noch in der Entwicklungsphase. Ich kann es Ihnen zwar nicht zusichern ob und wann die Zusatzfunktionen wie Bedarfsteuerung etc. implementiert werden, jedoch bin ich zuversichtlich, dass dies kommen wird. Zum jetzigen Zeitpunkt habe ich aber keine Möglichkeiten am aktuellen Zustand etwas zu ändern. Ich bitte um Ihr Verständnis.
Hallo Frank,
mein folgendes Anliegen hat nicht direkt etwas mit deinem Modul zu tun, aber ich frage mal hier, da ich für mein Device gerne diese Funktion hätte, und vielleicht hast du schon anderweitig eine Lösung gefunden.
Ich hab folgende eventmaps, die auch als anklickbare Icon (Attribut cmdIcon) vorhanden sind. Ich finde das praktisch, dass ich ohne ins Device gehen zu müssen, das Daikin-Gerät aus- und anzuschalten, sowie im Winter für mein Truhen-Innengerät die warme Luft von unten ausströmen zu lassen:
attr DaikinCloud_DaikinAPxxx cmdIcon _on:sani_heating_heatpump@darkred _off:sani_heating_heatpump@grey _vertical:vent_ventilation_level_manual_m@grey Leer2:rc_BLANK
attr DaikinCloud_DaikinAPxxx eventMap /onOffMode on:_on/onOffMode off:_off/vertical floorHeatingAirflow:_vertical
attr DaikinCloud_DaikinAPxxx webCmd _on:_off:_vertical:Leer2
Was ich gerne ergänzen möchte, sind 2 Icons, die die Soll/setpoint um 0,5°C höher oder runterstellen sollen.
Das Attribut cmdIcon und webCmd sind wohl keine Schwierigkeiten für mich, aber wie müsste das Attribut eventMap dafür aussehen? Ich hab zu wenig Erfahrung mit eventMap. Ich bin auf diesen Thread gestoßen, komme aber mit den Informationen nicht zurecht: https://forum.fhem.de/index.php?topic=43023.0 (https://forum.fhem.de/index.php?topic=43023.0)
Mir ist noch aufgefallen, dass vertical nicht mehr die Option [floorHeatingAirflow] hat sondern nur vertical [ stop | swing | windNice ]. Ist diese Option mit der ganzen Umstellung bei Daikin verloren gegangen oder ist sie nur verfügbar, wenn operationMode heating ist?
Viele Grüße Gisbert
Hallo Gisbert,
um den setpoint in FHEMWEB um 0,5 Grad zu erhöhen oder zu senken, könntest du folgende zusätzliche webCmds mit den eventMap verwenden:
attr DaikinCloud_DaikinAPxxx eventMap {usr=>{ '^plus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)+0.5)."', '^minus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)-0.5)."' }}
attr DaikinCloud_DaikinAPxxx webCmd plus:minus
"floorHeatingAirflow" dürfte nach meinem Verständnis nur im Modus Heating zur Verfügung stehen. Sagt ja eigentlich der Name schon. Ich kann das bei mir aber nicht testen, weil meine Geräte die Funktion nicht haben. Das dürfte nur bei Truhengeräten als Funktion vorhanden sein. Wenn du auf Heating stellst und die Option nicht mehr zur Verfügung steht, kannst du mal im Master-Device das Attribut saveRawData setzen:
attr DaikinMaster saveRawData 1
und dann
get DaikinMaster forceUpdate
Im Reading jsonRawData stehen jetzt die kompletten Daten bzw. kann man die möglichen Einstellungen herauslesen. Wenn du mit STRG+F nach "floorHeatingAirflow" suchst und findest, kannst du mir das komplette Reading jsonRawData mal als Nachricht schicken. Dann müsste ich mal schauen, wo der Fehler liegt.
MfG Frank
Hallo Frank,
ich hab das eventMap wie oben umgesetzt und es läuft!
Ich hab wieder etwas dazugelernt und ich denke, dass andere diese Definition auch gut gebrauchen können.
Ich war auf dem richtigen Weg mit der Definition, nur an "^plus" und "$def" bin ich gescheitert (nur "plus" oder "minus" reicht nicht).
Viele Grüße Gisbert
Hallo Gisbert,
schön, wenn es funktioniert. Ein paar Erklärungen bzw. Beispiele waren in diesem Forenbeitrag (http://forum.fhem.de/index.php/topic,43023.msg350289.html#msg350289) zu finden. Wichtig ist das "Dach" am Anfang, damit der nachfolgende Teil als Funktion ausgeführt wird. Der Kreativität sind in FHEM keine Grenzen gesetzt ;-)
Die Befehle "^plus" und "^minus" tauchen damit in den Device-Details unter Set ebenfalls mit dem "Dach" auf. Falls das stören sollte, kannst du sie mit fw= ... folgendermaßen noch schön benennen:
attr DaikinCloud_DaikinAPxxx eventMap {usr=>{ '^plus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)+0.5)."', '^minus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)-0.5)."' }, fw=>{'^plus'=>'plus','^minus'=>'minus' }}
oder ganz "wegzaubern":
attr DaikinCloud_DaikinAPxxx eventMap {usr=>{ '^plus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)+0.5)."', '^minus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)-0.5)."' }, fw=>{'^plus'=>'setpoint','^minus'=>'setpoint' }}
Wenn du die Methode jeweils benutzt, um mehrere Grad nach oben oder unten zu regulieren, solltest du das "RateLimit-Remaining-day" im Master-Device im Auge behalten, da jeder Klick auf plus oder minus jeweils einen neuen Request erzeugt und damit zu Lasten des Tages-Limits geht. Wenn es aber jeweils nur um "Feinregulierungen" geht, finde ich die Idee super. Habe es bei mir auch gleich mit angepasst/eingebaut.
Hast du mal geschaut, ob "floorHeatingAirflow" im Modus Heating noch vorhanden ist?
MfG Frank
Hallo Frank,
danke für die Erklärung mit dem Dach vor dem plus/minus.
Ich hab auch eventMap(s) mit Ein- und Ausschalten, die ich _on und _off genannt habe. Damit funktioniert das eventMap ohne Probleme, aber da hab ich nur Device-eigenen set-Befehle "umgebogen".
Das Dach stört mich nicht, denn ich habe noch das Attribut cmdIcon bemüht. Damit bekommt man anklickbare Icons statt anklickbarer Wörter.
Meine Definitionen:
attr DaikinCloud_DaikinAPxxx cmdIcon _on:sani_heating_heatpump@darkred _off:sani_heating_heatpump@grey _vertical:vent_ventilation_level_manual_m@grey plus:fa_sort_up minus:fa_sort_down
attr DaikinCloud_DaikinAPxxx eventMap {usr => { '_on' => 'onOffMode on', '_off' => 'onOffMode off', '_vertical' => 'vertical floorHeatingAirflow', '^plus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)+0.5)."', '^minus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)-0.5)."' }}
attr DaikinCloud_DaikinAPxxx webCmd _on:_off:_vertical:plus:minus
Angehängt ist ein Bildausschnitt, wie es bei mir auf dem Handy aussieht. Ich hab vor dem Daikin-Gerät einen ESP8266 mit großem Relais und Strom/Spannungsmessung, deshalb ein weiteres Device. Zusätzlich werte ich noch die Leistungsdaten vom ESP mit dem Modul ElectricityMeter aus.
Viele Grüße Gisbert
Ergänzung: "floorHeatingAirflow" hab ich mir noch nicht angeschaut, da Heizen im Moment keine Option ist ;D.
Noch eine Ergänzung: unter set taucht das plus/minus mit "Dach" auf - das hatte ich anfänglich nicht verstanden. Dann werde ich deine Lösung aus #180 auch umsetzen, um das "Dach" wegzubekommen.
Hallo Frank,
noch eine kurze Rückmeldung zum Thema "floorHeatingAirflow". Bei "heating" wird bei "vertical" die Option "floorHeatingAirflow" angeboten, die auch vom Innengerät dann umgesetzt wird. Zum Heizen hab ich die Anlage nicht gebracht. Ich nehme an, dass die Rahmenbedingungen dazu zu ungünstig waren. Die Leistungsaufnahme lag bei ~30W, und nur Luft wurde unten ohne Erwärmung ausgeblasen.
Bei der Beschreibung zu "vertical" wird geschrieben:
vertical [ stop | swing | windNice ]
Only available if the device supports vertical swing.
Die Beschreibung trifft ja nur manchmal und dann auch nur teilweise zu. Ich nehme an, dass es bei den diversen Innengeräten über etliche Innovationszyklen zuviele Optionen gibt, um die alle zu erfassen. Letztlich ist es auch egal, da jeder Anwender in diesem Forum seine eigene Anlage ja kennt.
Wieder zurück zum "cooling" mode läuft die Anlage wieder auf Kühlung. Ich hoffe, dass ich die Anlage durch die obige Umschaltung nicht aus dem Takt gebracht habe, ich denke mal nicht.
Viele Grüße Gisbert
Hallo Gisbert,
wenn die Option im Heating-Modus verfügbar ist, dann ist alles in Ordnung. Wenn das Absetzen auch fehlerfrei funktioniert hatte (und in der Folge das Ergebnis in der ONECTA-APP auch als Statusänderung zu sehen seien müsste), ist die Welt in Ordnung.
Wie gesagt die möglichen Befehle/Einstellungen sind immer vom operationMode abhängig. So werden bspw. im Modus "fanOnly" oder "dry" keine setpoint-Einstellungen/Befehle akzeptiert. Wenn du ein
list DaikinCloud_DaikinAPxxx
machst, kannst du unter helper:table:climateControl: die zulässigen Optionen für dein individuelles Innengerät bezogen auf den jeweiligen operationMode erkennen.
Die Commandref/Beschreibung gibt nur allgemeine Angaben bzw. die Optionen nur beispielhaft wieder, die ich damals basierend auf den Funktionalitäten meiner Innengeräte erstellt hatte.
MfG Frank
Aktuell gibt es wohl Probleme beim Anlegen von Apps im Developer center.
unable to create DCR from HTTP Invalid response:Error: invalid dcr http response
Auf github habe ich einen Link gefunden, wo wohl der Status seitens Daikin aktualisiert wird:
https://daikincloudsolutions.statuspage.io/ (https://daikincloudsolutions.statuspage.io/)
Ich habe es soeben mal getestet. Das Problem beim Erstellen einer neuen App im Daikin Developer Portal besteht weiterhin. Die Funktionalität bereits erstellter Apps ist hiervon nicht betroffen, d.h. die Kommunikation mit der Cloud funktioniert ansonsten fehlerfrei.
Für alle, die bislang noch keine App im Daikin Developer Portal erstellt hatten, gibt es daher nur zwei Möglichkeiten:
- Geduld haben und abwarten bis der Fehler beseitigt ist ;-)
- Die temporären Credentials zu benutzen, die noch bis Ende August 2024 gültig sein sollten. Vergleiche Info im Github Issue hier (https://github.com/rospogrigio/daikin_residential/issues/182#issuecomment-2096297956). Die temporären Credentials sind:
- CLIENT_ID = emU20GdJDiiUxI_HnFGz69dD
- CLIENT_SECRET = TNL1ePwnOkf6o2gKiI8InS8nVwTz2G__VYkv6WznzJGUnwLHLTmKYp-7RZc6FA3yS6D0Wgj_snvqsU5H_LPHQA
- REDIRECT_URI = https://my.home-assistant.io/redirect/oauth
Aktuell funktionieren die temporären Credentials noch, aber wie angekündigt sollen sie Ende August 2024 nicht mehr gültig sein. Daher wäre dies wirklich nur eine kurze Übergangslösung.
MfG Frank
Update:
Das Anlegen einer App im Daikin Developer Portal (https://developer.cloud.daikineurope.com/login) funktioniert wieder. Damit ist es möglich, wieder eigene CLIENT_ID und CLIENT_SECRET zu erzeugen.
Darüber hinaus funktionieren zwar auch noch die allgemeinen temporären Credentials, allerdings wird das aller Voraussicht nach nicht auf Dauer so sein.
MfG Frank
Hallo Frank,
ich poste hier ein list meines Gerätes. Das Gerät wurde ausgeschaltet und ist aus und zudem noch stromlos.
define DaikinCloud_DaikinAP09627 DaikinCloud 2411b963-53e7-4c29-be10-54b34c938ba2
attr DaikinCloud_DaikinAP09627 alias Daikin Cloud
attr DaikinCloud_DaikinAP09627 cmdIcon _on:sani_heating_heatpump@darkred _off:sani_heating_heatpump@grey _vertical:vent_ventilation_level_manual_m@grey plus:fa_sort_up minus:fa_sort_down
attr DaikinCloud_DaikinAP09627 consumptionData 1
attr DaikinCloud_DaikinAP09627 event-on-change-reading isCloudConnectionUp,onOffMode,operationMode,outdoorTemperature,roomTemperature,setpoint,vertical
attr DaikinCloud_DaikinAP09627 eventMap {usr => { '_on' => 'onOffMode on', '_off' => 'onOffMode off', '_vertical' => 'vertical floorHeatingAirflow', '^plus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)+0.5)."', '^minus' => 'setpoint ".(ReadingsNum($dev,"setpoint",20)-0.5)."' }, fw => {'^plus' => 'plus','^minus' => 'minus' }}
attr DaikinCloud_DaikinAP09627 group Daikin Perfera
attr DaikinCloud_DaikinAP09627 icon it_internet
attr DaikinCloud_DaikinAP09627 room Heizung
attr DaikinCloud_DaikinAP09627 stateFormat Mode: [$name:operationMode] [$name:_an_aus]<br/>Airflow: [$name:vertical]<br/>Setpoint: [$name:setpoint:r1]°C
attr DaikinCloud_DaikinAP09627 userReadings _an_aus {if (ReadingsVal($name,'onOffMode','') eq "off") {"<span style='color:#000000'>on hold</span>"} \
elsif (ReadingsVal($name,'operationMode','') eq "cooling") {"<span style='color:blue'><b>läuft</b></span>"} \
elsif (ReadingsVal($name,'operationMode','') eq "heating") {"<span style='color:red'><b>läuft</b></span>"}}
attr DaikinCloud_DaikinAP09627 webCmd _on:_off:_vertical:plus:minus
attr DaikinCloud_DaikinAP09627 widgetOverride setpoint:18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0
# CFGFN ./FHEM/myDaikinCloud.cfg
# DEF 2411b963-53e7-4c29-be10-54b34c938ba2
# FUUID 64246329-f33f-e986-753f-6f0648cec24396c7
# NAME DaikinCloud_DaikinAP09627
# NR 1331
# STATE Mode: cooling <span style='color:blue'><b>läuft</b></span><br/>Airflow: stop<br/>Setpoint: 27.0°C
# TYPE DaikinCloud
# VERSION v2.1.14 - 09.07.2024
# READINGS:
# 2024-09-07 12:02:51 _an_aus <span style='color:blue'><b>läuft</b></span>
# 2024-09-07 12:02:51 _id 2411b963-53e7-4c29-be10-54b34c938ba2
# 2024-05-17 17:32:19 daylightSavingTimeEnabled true
# 2024-05-17 17:32:19 deltaD 3
# 2024-05-17 17:32:19 demandControl fixed
# 2024-05-17 17:32:19 demandValue 60
# 2024-09-07 12:02:51 deviceModel dx4
# 2024-05-17 17:32:19 dryKeepSetting on
# 2024-05-17 17:32:19 econoMode off
# 2024-05-17 17:32:19 eepromVersion 1575
# 2024-09-07 12:02:51 embeddedId 929048
# 2024-09-07 12:02:51 energy_cooling_d_1 0
# 2024-09-07 12:02:51 energy_cooling_d_10 0.4
# 2024-09-07 12:02:51 energy_cooling_d_11 0.4
# 2024-09-07 12:02:51 energy_cooling_d_12 0
# 2024-09-07 12:02:51 energy_cooling_d_13 0
# 2024-09-07 12:02:51 energy_cooling_d_14 0
# 2024-09-07 12:02:51 energy_cooling_d_15 0
# 2024-09-07 12:02:51 energy_cooling_d_16 0
# 2024-09-07 12:02:51 energy_cooling_d_17 0
# 2024-09-07 12:02:51 energy_cooling_d_18 0
# 2024-09-07 12:02:51 energy_cooling_d_19 0
# 2024-09-07 12:02:51 energy_cooling_d_2 0
# 2024-09-07 12:02:51 energy_cooling_d_20 0
# 2024-09-07 12:02:51 energy_cooling_d_21 0.1
# 2024-09-07 12:02:51 energy_cooling_d_22 0.3
# 2024-09-07 12:02:51 energy_cooling_d_23 0
# 2024-09-07 12:02:51 energy_cooling_d_24 0
# 2024-09-07 12:02:51 energy_cooling_d_3 0
# 2024-09-07 12:02:51 energy_cooling_d_4 0
# 2024-09-07 12:02:51 energy_cooling_d_5 0
# 2024-09-07 12:02:51 energy_cooling_d_6 0
# 2024-09-07 12:02:51 energy_cooling_d_7 0
# 2024-09-07 12:02:51 energy_cooling_d_8 0
# 2024-09-07 12:02:51 energy_cooling_d_9 0
# 2024-09-07 12:02:51 energy_cooling_m_1 0
# 2024-09-07 12:02:51 energy_cooling_m_10 0
# 2024-09-07 12:02:51 energy_cooling_m_11 0
# 2024-09-07 12:02:51 energy_cooling_m_12 0
# 2024-09-07 12:02:51 energy_cooling_m_13 0
# 2024-09-07 12:02:51 energy_cooling_m_14 0
# 2024-09-07 12:02:51 energy_cooling_m_15 0
# 2024-09-07 12:02:51 energy_cooling_m_16 0
# 2024-09-07 12:02:51 energy_cooling_m_17 0
# 2024-09-07 12:02:51 energy_cooling_m_18 5.9
# 2024-09-07 12:02:51 energy_cooling_m_19 5.4
# 2024-09-07 12:02:51 energy_cooling_m_2 0
# 2024-09-07 12:02:51 energy_cooling_m_20 20.2
# 2024-09-07 12:02:51 energy_cooling_m_21 1.7
# 2024-09-07 12:02:51 energy_cooling_m_22 0
# 2024-09-07 12:02:51 energy_cooling_m_23 0
# 2024-09-07 12:02:51 energy_cooling_m_24 0
# 2024-09-07 12:02:51 energy_cooling_m_3 0
# 2024-09-07 12:02:51 energy_cooling_m_4 0
# 2024-09-07 12:02:51 energy_cooling_m_5 0
# 2024-09-07 12:02:51 energy_cooling_m_6 0
# 2024-09-07 12:02:51 energy_cooling_m_7 0
# 2024-09-07 12:02:51 energy_cooling_m_8 0
# 2024-09-07 12:02:51 energy_cooling_m_9 0
# 2024-09-07 12:02:51 energy_cooling_w_1 0
# 2024-09-07 12:02:51 energy_cooling_w_10 0
# 2024-09-07 12:02:51 energy_cooling_w_11 0.8
# 2024-09-07 12:02:51 energy_cooling_w_12 0.4
# 2024-09-02 17:09:24 energy_cooling_w_13 1.1
# 2024-09-02 17:09:24 energy_cooling_w_14 0.1
# 2024-09-07 12:02:51 energy_cooling_w_2 1
# 2024-09-07 12:02:51 energy_cooling_w_3 0
# 2024-09-07 12:02:51 energy_cooling_w_4 1.2
# 2024-09-07 12:02:51 energy_cooling_w_5 0.6
# 2024-09-07 12:02:51 energy_cooling_w_6 1.1
# 2024-09-07 12:02:51 energy_cooling_w_7 0.1
# 2024-09-07 12:02:51 energy_cooling_w_8 0.4
# 2024-09-07 12:02:51 energy_cooling_w_9 0
# 2024-09-07 12:02:51 energy_heating_d_1 0
# 2024-09-07 12:02:51 energy_heating_d_10 0
# 2024-09-07 12:02:51 energy_heating_d_11 0
# 2024-09-07 12:02:51 energy_heating_d_12 0
# 2024-09-07 12:02:51 energy_heating_d_13 0
# 2024-09-07 12:02:51 energy_heating_d_14 0
# 2024-09-07 12:02:51 energy_heating_d_15 0
# 2024-09-07 12:02:51 energy_heating_d_16 0
# 2024-09-07 12:02:51 energy_heating_d_17 0
# 2024-09-07 12:02:51 energy_heating_d_18 0
# 2024-09-07 12:02:51 energy_heating_d_19 0
# 2024-09-07 12:02:51 energy_heating_d_2 0
# 2024-09-07 12:02:51 energy_heating_d_20 0
# 2024-09-07 12:02:51 energy_heating_d_21 0
# 2024-09-07 12:02:51 energy_heating_d_22 0
# 2024-09-07 12:02:51 energy_heating_d_23 0
# 2024-09-07 12:02:51 energy_heating_d_24 0
# 2024-09-07 12:02:51 energy_heating_d_3 0
# 2024-09-07 12:02:51 energy_heating_d_4 0
# 2024-09-07 12:02:51 energy_heating_d_5 0
# 2024-09-07 12:02:51 energy_heating_d_6 0
# 2024-09-07 12:02:51 energy_heating_d_7 0
# 2024-09-07 12:02:51 energy_heating_d_8 0
# 2024-09-07 12:02:51 energy_heating_d_9 0
# 2024-09-07 12:02:51 energy_heating_m_1 87.1
# 2024-09-07 12:02:51 energy_heating_m_10 2.2
# 2024-09-07 12:02:51 energy_heating_m_11 9.7
# 2024-09-07 12:02:51 energy_heating_m_12 29.7
# 2024-09-07 12:02:51 energy_heating_m_13 61.1
# 2024-09-07 12:02:51 energy_heating_m_14 0
# 2024-09-07 12:02:51 energy_heating_m_15 0
# 2024-09-07 12:02:51 energy_heating_m_16 3.2
# 2024-09-07 12:02:51 energy_heating_m_17 0
# 2024-09-07 12:02:51 energy_heating_m_18 0
# 2024-09-07 12:02:51 energy_heating_m_19 0
# 2024-09-07 12:02:51 energy_heating_m_2 62.1
# 2024-09-07 12:02:51 energy_heating_m_20 0.2
# 2024-09-07 12:02:51 energy_heating_m_21 0
# 2024-09-07 12:02:51 energy_heating_m_22 0
# 2024-09-07 12:02:51 energy_heating_m_23 0
# 2024-09-07 12:02:51 energy_heating_m_24 0
# 2024-09-07 12:02:51 energy_heating_m_3 57.3
# 2024-09-07 12:02:51 energy_heating_m_4 20.3
# 2024-09-07 12:02:51 energy_heating_m_5 0.7
# 2024-09-07 12:02:51 energy_heating_m_6 0
# 2024-09-07 12:02:51 energy_heating_m_7 0
# 2024-09-07 12:02:51 energy_heating_m_8 0
# 2024-09-07 12:02:51 energy_heating_m_9 0
# 2024-09-07 12:02:51 energy_heating_w_1 0
# 2024-09-07 12:02:51 energy_heating_w_10 0
# 2024-09-07 12:02:51 energy_heating_w_11 0
# 2024-09-07 12:02:51 energy_heating_w_12 0
# 2024-09-02 17:09:24 energy_heating_w_13 0
# 2024-09-02 17:09:24 energy_heating_w_14 0
# 2024-09-07 12:02:51 energy_heating_w_2 0.2
# 2024-09-07 12:02:51 energy_heating_w_3 0
# 2024-09-07 12:02:51 energy_heating_w_4 0
# 2024-09-07 12:02:51 energy_heating_w_5 0
# 2024-09-07 12:02:51 energy_heating_w_6 0
# 2024-09-07 12:02:51 energy_heating_w_7 0
# 2024-09-07 12:02:51 energy_heating_w_8 0
# 2024-09-07 12:02:51 energy_heating_w_9 0
# 2024-09-07 12:02:51 errorCode_climateControl 00-
# 2024-09-07 12:02:51 errorCode_gateway
# 2024-09-07 12:02:51 errorCode_outdoorUnit 00-
# 2024-09-07 12:02:51 fanLevel 1
# 2024-09-07 12:02:51 fanMode auto
# 2024-05-17 17:32:19 fanMotorRotationSpeed 440
# 2024-09-07 12:02:51 fanSpeed auto
# 2023-04-22 23:56:53 firmwareVersion 1_23_0
# 2024-09-07 12:02:51 firmwareVersion_gateway 1_31_0
# 2024-05-17 17:32:19 heatExchangerTemperature 32.5
# 2023-04-22 23:56:53 iconId 15
# 2024-05-17 17:32:19 iconId_climateControl 15
# 2024-09-07 12:02:51 id 2411b963-53e7-4c29-be10-54b34c938ba2
# 2024-06-27 21:05:30 ipAddress 192.168.1.49
# 2024-09-07 12:02:51 ipAddress_gateway 192.168.1.49
# 2024-09-07 12:02:51 isCloudConnectionUp false
# 2024-05-17 17:32:19 isCoolHeatMaster true
# 2023-04-22 23:56:53 isFirmwareUpdateSupported false
# 2024-09-07 12:02:51 isFirmwareUpdateSupported_gateway true
# 2023-04-22 23:56:53 isHolidayModeActive false
# 2024-09-07 12:02:51 isHolidayModeActive_climateControl false
# 2024-09-07 12:02:51 isInCautionState_climateControl false
# 2024-09-07 12:02:51 isInCautionState_outdoorUnit false
# 2024-09-07 12:02:51 isInErrorState_climateControl false
# 2024-09-07 12:02:51 isInErrorState_gateway false
# 2024-09-07 12:02:51 isInErrorState_outdoorUnit false
# 2023-04-22 23:56:53 isInWarningState false
# 2024-09-07 12:02:51 isInWarningState_climateControl false
# 2024-09-07 12:02:51 isInWarningState_outdoorUnit false
# 2024-05-17 17:32:19 isLockFunctionEnabled false
# 2024-09-07 12:02:51 isPowerfulModeActive false
# 2024-09-07 12:02:51 kWh_cooling_day 0.4
# 2024-09-07 12:02:51 kWh_cooling_week 1.6
# 2024-09-07 12:02:51 kWh_cooling_year 33.2
# 2024-09-07 12:02:51 kWh_heating_day 0
# 2024-09-07 12:02:51 kWh_heating_week 0
# 2024-09-07 12:02:51 kWh_heating_year 64.5
# 2023-05-22 10:51:02 lastUpdateReceived 2023-05-22T08:51:01.670Z
# 2024-05-17 17:32:19 ledEnabled true
# 2024-06-27 21:05:30 macAddress dc:fe:23:32:b9:68
# 2024-09-07 12:02:51 macAddress_gateway dc:fe:23:32:b9:68
# 2024-09-07 12:02:51 managementPoint_Nr_1 gateway
# 2024-09-07 12:02:51 managementPoint_Nr_2 climateControl
# 2024-09-07 12:02:51 managementPoint_Nr_3 indoorUnit
# 2024-09-07 12:02:51 managementPoint_Nr_4 outdoorUnit
# 2023-04-22 23:56:53 modelInfo BRP069C4x
# 2024-09-07 12:02:51 modelInfo_gateway BRP069C4x
# 2024-09-07 12:02:51 name DaikinAP09627
# 2024-09-07 12:02:51 onOffMode on
# 2024-09-07 12:02:51 operationMode cooling
# 2024-05-17 17:32:19 outdoorSilentMode off
# 2024-09-07 12:02:51 outdoorTemperature 21.5
# 2024-09-07 12:02:51 powerfulMode off
# 2024-05-17 17:32:19 regionCode eu
# 2024-09-07 12:02:51 roomHumidity 65
# 2024-09-07 12:02:51 roomTemperature 24
# 2024-05-17 17:32:19 serialNumber 0000000004926207
# 2024-09-07 12:02:51 setpoint 27
# 2023-04-22 23:56:53 softwareVersion 19015C02
# 2024-09-07 12:02:51 softwareVersion_indoorUnit 19015C02
# 2024-05-17 17:32:19 ssid DaikinAP09627
# 2024-09-07 12:02:51 state on
# 2024-05-17 17:32:19 streamerMode off
# 2024-05-17 17:32:19 suctionTemperature 22
# 2023-03-29 18:45:48 swing
# 2024-05-17 17:32:19 timeZone Europe/Berlin
# 2024-09-07 12:02:51 timestamp 2024-09-07T10:02:51.628Z
# 2024-09-07 12:02:51 type dx4
# 2024-09-07 12:02:51 vertical stop
# 2024-05-17 17:32:19 wifiConnectionSSID UnifiSenham
# 2024-05-17 17:32:19 wifiConnectionStrength -56
# helper:
# bm:
# DaikinCloud_Get:
# cnt 3
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 07.09. 12:05:56
# max 6.00814819335938e-05
# tot 0.000154018402099609
# mAr:
# HASH(0x55ae2fda6d00)
# DaikinCloud_DaikinAP09627
# ?
# DaikinCloud_Set:
# cnt 10
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 07.09. 12:06:00
# max 0.000185012817382812
# tot 0.000701904296875
# mAr:
# HASH(0x55ae2fda6d00)
# DaikinCloud_DaikinAP09627
# ?
#
setstate DaikinCloud_DaikinAP09627 Mode: cooling <span style='color:blue'><b>läuft</b></span><br/>Airflow: stop<br/>Setpoint: 27.0°C
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 _an_aus <span style='color:blue'><b>läuft</b></span>
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 _id 2411b963-53e7-4c29-be10-54b34c938ba2
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 daylightSavingTimeEnabled true
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 deltaD 3
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 demandControl fixed
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 demandValue 60
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 deviceModel dx4
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 dryKeepSetting on
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 econoMode off
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 eepromVersion 1575
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 embeddedId 929048
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_1 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_10 0.4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_11 0.4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_12 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_13 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_14 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_15 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_16 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_17 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_18 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_19 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_2 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_20 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_21 0.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_22 0.3
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_23 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_24 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_3 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_4 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_5 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_6 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_7 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_8 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_d_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_1 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_10 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_11 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_12 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_13 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_14 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_15 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_16 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_17 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_18 5.9
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_19 5.4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_2 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_20 20.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_21 1.7
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_22 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_23 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_24 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_3 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_4 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_5 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_6 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_7 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_8 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_m_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_1 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_10 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_11 0.8
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_12 0.4
setstate DaikinCloud_DaikinAP09627 2024-09-02 17:09:24 energy_cooling_w_13 1.1
setstate DaikinCloud_DaikinAP09627 2024-09-02 17:09:24 energy_cooling_w_14 0.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_2 1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_3 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_4 1.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_5 0.6
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_6 1.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_7 0.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_8 0.4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_cooling_w_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_1 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_10 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_11 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_12 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_13 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_14 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_15 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_16 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_17 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_18 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_19 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_2 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_20 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_21 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_22 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_23 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_24 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_3 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_4 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_5 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_6 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_7 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_8 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_d_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_1 87.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_10 2.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_11 9.7
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_12 29.7
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_13 61.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_14 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_15 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_16 3.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_17 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_18 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_19 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_2 62.1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_20 0.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_21 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_22 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_23 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_24 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_3 57.3
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_4 20.3
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_5 0.7
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_6 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_7 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_8 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_m_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_1 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_10 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_11 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_12 0
setstate DaikinCloud_DaikinAP09627 2024-09-02 17:09:24 energy_heating_w_13 0
setstate DaikinCloud_DaikinAP09627 2024-09-02 17:09:24 energy_heating_w_14 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_2 0.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_3 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_4 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_5 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_6 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_7 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_8 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 energy_heating_w_9 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 errorCode_climateControl 00-
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 errorCode_gateway
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 errorCode_outdoorUnit 00-
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 fanLevel 1
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 fanMode auto
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 fanMotorRotationSpeed 440
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 fanSpeed auto
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 firmwareVersion 1_23_0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 firmwareVersion_gateway 1_31_0
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 heatExchangerTemperature 32.5
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 iconId 15
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 iconId_climateControl 15
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 id 2411b963-53e7-4c29-be10-54b34c938ba2
setstate DaikinCloud_DaikinAP09627 2024-06-27 21:05:30 ipAddress 192.168.1.49
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 ipAddress_gateway 192.168.1.49
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isCloudConnectionUp false
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 isCoolHeatMaster true
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 isFirmwareUpdateSupported false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isFirmwareUpdateSupported_gateway true
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 isHolidayModeActive false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isHolidayModeActive_climateControl false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInCautionState_climateControl false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInCautionState_outdoorUnit false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInErrorState_climateControl false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInErrorState_gateway false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInErrorState_outdoorUnit false
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 isInWarningState false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInWarningState_climateControl false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isInWarningState_outdoorUnit false
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 isLockFunctionEnabled false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 isPowerfulModeActive false
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_cooling_day 0.4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_cooling_week 1.6
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_cooling_year 33.2
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_heating_day 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_heating_week 0
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 kWh_heating_year 64.5
setstate DaikinCloud_DaikinAP09627 2023-05-22 10:51:02 lastUpdateReceived 2023-05-22T08:51:01.670Z
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 ledEnabled true
setstate DaikinCloud_DaikinAP09627 2024-06-27 21:05:30 macAddress dc:fe:23:32:b9:68
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 macAddress_gateway dc:fe:23:32:b9:68
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 managementPoint_Nr_1 gateway
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 managementPoint_Nr_2 climateControl
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 managementPoint_Nr_3 indoorUnit
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 managementPoint_Nr_4 outdoorUnit
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 modelInfo BRP069C4x
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 modelInfo_gateway BRP069C4x
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 name DaikinAP09627
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 onOffMode on
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 operationMode cooling
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 outdoorSilentMode off
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 outdoorTemperature 21.5
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 powerfulMode off
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 regionCode eu
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 roomHumidity 65
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 roomTemperature 24
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 serialNumber 0000000004926207
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 setpoint 27
setstate DaikinCloud_DaikinAP09627 2023-04-22 23:56:53 softwareVersion 19015C02
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 softwareVersion_indoorUnit 19015C02
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 ssid DaikinAP09627
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 state on
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 streamerMode off
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 suctionTemperature 22
setstate DaikinCloud_DaikinAP09627 2023-03-29 18:45:48 swing
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 timeZone Europe/Berlin
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 timestamp 2024-09-07T10:02:51.628Z
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 type dx4
setstate DaikinCloud_DaikinAP09627 2024-09-07 12:02:51 vertical stop
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 wifiConnectionSSID UnifiSenham
setstate DaikinCloud_DaikinAP09627 2024-05-17 17:32:19 wifiConnectionStrength -56
Demzufolge müsste das Reading onOffMode auf off stehen, tut es aber nicht. Mit aktuellem Zeitstempel steht es jedoch auf on.
In der Onecta App ist das Gerät offline, da es ja stromlos ist, demnach also richtig.
Hast du eine Erklärung dafür? Ausschließen will ich nicht, wenn auch sehr unwahrscheinlich, dass eine Automatisierung (DOIF) daran schuld ist, aber ich finde nichts dergleichen.
Viele Grüße Gisbert
Hallo Gisbert,
die readings werden im Wesentlichen aus den Daten der Cloud generiert. Wenn du dein Gerät komplett stromlos machst, hat es natürlich keine Möglichkeit, seinen aktuellen Status (also onOffMode = off) an die Cloud zu funken. Von daher bleiben in der Cloud höchstwahrscheinlich die jeweils letzten empfangenen Werte bestehen.
Siehe auch deine readings:
2024-09-07 12:02:51 isCloudConnectionUp false
2024-09-07 12:02:51 onOffMode on
2024-09-07 12:02:51 timestamp 2024-09-07T10:02:51.628Z
Beim Timestamp sind üblicherweise noch 2 Stunden Zeitzone draufzurechnen, d.h. sie sind im vorliegenden Fall "aktuell".
In der Onecta-App ist das Gerät dann zwar offline und nicht steuerbar, allerdings sagt das nichts darüber aus, ob das Gerät tatsächlich an oder aus ist. Ein typischer Fall wäre z.B. auch, wenn keine Internetverbindung steht bzw. keine Verbindung zur Cloud zustande kommt. Dann wird das Gerät in der Cloud zwar offline angezeigt und ist über die Onecta-App nicht steuerbar, werkelt aber trotzdem fleißig zu Hause vor sich hin. Die Daten aus der Cloud sind dann einfach nicht konsistent. Du kannst das wie folgt überprüfen:
Wenn du im Master-Device das Attribut saveRawData setzt, danach ein forceUpdate machst, die Seite vom Browser aktualisierst (F5), kannst du danach das reading "jsonRawData" mal nach "onOffMode" durchsuchen (STRG+F). Dort dürfte ein Eintrag zu finden sein wie:
"onOffMode":{"settable":true,"values":["on","off"],"value":"on"}
Wenn dort "value":"on" steht, ist dein Gerät laut dem letzten Datenempfang von der Cloud noch onOffMode = on.
Um das Problem zu umgehen, sehe ich nur zwei Möglichkeiten:
- Gerät nicht stromlos machen ;-) (PS: Ich bin kein Freund von stromlos schalten, weil die Einsparung von Strom an dieser Stelle mit einem gewissen Risiko behaftet ist. Anderenfalls müsstest du ja nach Einschalten des Stromes laut Bedienungsanleitung 6 Stunden warten, bevor du das Gerät wieder betreibst. Stichwort Ölsumpfheizung (https://www.kreativekiste.de/oelsumpfheizung-und-kurbelgehaeuseheizungen-in-kaelteanlagen-klimaanlagen-und-waermepumpen).
- Wenn du die Geräte weiterhin stromlos machen möchtest und dass ggf. sogar automatisierst, wäre es sinnvoll, das Gerät auszuschalten und danach ein paar Minuten zu warten, ein forceUpdate anzustoßen und danach erst den Strom auszuschalten.
MfG Frank
Hallo Frank,
vielen Dank für deine Erklärung, insbesondere auch die Auswirkungen zum stromlos machen. Ohne die Bedienungsanleitung dazu zu kennen, hab ich mich daran gehalten. Die Anlage wird eigentlich nicht häufig eingeschaltet und dient hauptsächlich in der Übergangszeit als Heizung und im Sommer gelegentlich als Klimaanlage. Stromlos wird sie nur nachts gemacht und dann ist sie für deutlich länger als 6 Stunden stromlos.
Ich werde den Punkt 2. umsetzen.
Viele Grüße Gisbert
Hallo Gisbert,
den Zeitraum von 6 Stunden beim stromlos machen hast du falsch verstanden: Es geht nicht darum, wie lange deine Anlage insgesamt stromlos bleibt, sondern darum, dass wenn du den Hauptstrom wieder eingeschaltest hast, du 6 Stunden warten sollst, bevor du das Innengerät einschaltest. Diese Vorlaufzeit gibt der Ölsumpfheizung die Möglichkeit, das Öl zu erwärmen und damit das im Öl gebundene Kältemittel zu lösen. Ist also vornehmlich eine Problematik für die Heizperiode.
MfG Frank
Hallo Frank,
ich hab's jetzt in meine Automatisierung aufgenommen, dass die Anlage erst 6 Stunden nach Einschalten des Stroms in Betrieb geht. Ansonsten schalte ich den Strom nicht mehr weg, höchstens manuell, falls für Wochen/Monate kein Betrieb zu erwarten ist. Sollte es dann doch mal nötig sein, ist die Wartezeit von 6 Stunden eingebaut, bis das Gerät Leistung zieht.
Nochmals danke für deine unermüdliche Hilfe :).
Viele Grüße
Gisbert
Hat sich seit 18.09. bei Daikin wieder etwas geändert?
Seit diesem Datum bekomme ich beim token_type invalid und keine Daten.
list Daikin_Master
Internals:
AUTHORIZATION_LINK <html><b><a href="https://idp.onecta.daikineurope.com/v1/oidc/authorize?response_type=code&client_id=uHp5szHncxOsjuVVqIB9T1nD&redirect_uri=https%3A%2F%2Fmy%2Ehome%2Dassistant%2Eio%2Fredirect%2Foauth&scope=openid%20onecta%3Abasic.integration&state=OxjIqX518S4OmOcPLs1OjU92QmwW35Aw" target="_blank">Daikin Cloud Login (OAuth2)</a></b> </html>
CLIENT_ID uH..............................................
CLIENT_SECRET O28.....................................................
DEF uH.............................................. O28..................................................... https://my.home-assistant.io/redirect/oauth
FUUID 669................................
INTERVAL 900
NAME Daikin_Master
NR 4949
REDIRECT_URI https://my.home-assistant.io/redirect/oauth
STATE polling activ
TYPE DaikinCloud
VERSION v2.1.14 - 09.07.2024
eventCount 968
READINGS:
2024-09-18 04:14:30 0c................................. 0c.................................
2024-09-18 04:14:30 RateLimit-Limit-day 200
2024-09-18 04:14:30 RateLimit-Limit-minute 20
2024-09-18 04:14:30 RateLimit-Remaining-day 102
2024-09-18 04:14:30 RateLimit-Remaining-minute 19
2024-09-18 04:14:30 RateLimit-Reset 31
2024-09-18 03:29:28 expires_in 3600
2024-09-24 09:18:58 state polling activ
2024-09-24 09:18:59 token_status DaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."}
2024-09-24 09:18:59 token_type invalid
2024-09-18 04:43:29 update_response DaikinCloud (CallbackUpdateRequest) failed: HTTP-Status-Code=401 Response: {"message":"Unauthorized"}
helper:
REFRESH_TOKEN st2.s.AtLtv8aZ_Q.iNfyLRWUz6JOF_H5VDJ1DPHuKqiuT4NsSH6pNmZjQnkfKNInv5Bw9LTZZpS3tALitG_15mbjtWFkOUn5sSRUKl2mn152xoyCQCe5R4UDh-xYpu_z5jdLhJNhLlD1nGiA.u_wF7zwIA-UveD_8X2ATszcrrtA-UWoApkBFndZdZIqifx03HpeJgkZ24q6GKBFhwP51ZZ9PfOvZAszZwigGfw.sc3
secret_state OxjIqX518S4OmOcPLs1OjU92QmwW35Aw
Attributes:
alias Daikin Master Cloud Verbindung
autocreate 1
consumptionData 1
devStateStyle style="text-align:left;;font-weight:bold;;"
group Daikin Cloud
icon sani_heating_heatpump
interval 900
room _Daikin,_RxTx
Laut der Daikin-Status-Seite (https://daikincloudsolutions.statuspage.io/) sind keine allgemeinen Probleme bekannt. Bei mir sind auch keine Probleme im Log aufgetaucht bzw. die Daten kommen bei mir fehlerfrei rein.
Hattest du zufälligerweise bis 18.09.2024 noch mit den temporären Credentials (CLIENT_ID emU20GdJDiiUxI_HnFGz69dD) gearbeitet? Daikin hatte ja bereits angekündigt, die temporären Credentials ungültig zu setzen. Nach dem Umstellen auf individuelle Credentials muss auf jeden Fall noch mal der Authorisierungsprozess neu durchlaufen werden (also AUTHORIZATION_LINK anklicken -> Authorization-Code über Redirekt-Uri erhalten -> in Zwischenablage kopieren -> set <DaikinMaster> AuthCode <Authorization-Code> -> neues Token-Set erhalten)
In dem Reading "token_status" ist vermerkt:
ZitatDaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."}
Anscheinend ist dein Refresh-Token nicht mehr gültig. Entweder, weil es noch der von den temporären Credentials ist, oder weil er aus anderen Gründen ungültig geworden ist. Hast du schon versucht, den Authorisierungsprozess über den AUTHORIZATION_LINK nochmal zu durchlaufen?
MfG Frank
Hi, Seit Juni 24 läuft die Daikin Cloud Anbindung hier ohne Stress. Gestern (29.09.24 13:48h) ist ohne Anlass das gleiche wie bei Burny4600 passiert. Seit Juni 24 lief der Poll problemlos mit eigener Client Id und zugehörigen Credentials. Seit gestern Mittag bekomme ich diese Antwort vom Daikin Server:
2024-09-30 15:08:04 token_status DaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."}
2024-09-30 15:08:04 token_type invalid
Da ich "nichts gemacht" :-) habe, wird das wohl auf Daikin Seite ausgelöst worden sein.
Hier die Internals:
Internals:
AUTHORIZATION_LINK <html><b><a href="https://idp.onecta.daikineurope.com/v1/oidc/authorize?response_type=code&client_id=T-dnxArY3Ho2FKSHgUZXCDid&redirect_uri=https%3A%2F%2Fmy%2Ehome%2Dassistant%2Eio%2Fredirect%2Foauth&scope=openid%20onecta%3Abasic.integration&state=h7avCsmhedPK6kMtMmKWkIZ5rY8nJRF6" target="_blank">Daikin Cloud Login (OAuth2)</a></b> </html>
CLIENT_ID T-geheimo2FKSHgUZXCDid
CLIENT_SECRET V_noch_geheimer3QE5SrRX8RMEkOAdchEpxpn5D_9VYkIkn9msFTvfe-8F3rHZaEEYA5Wwt11c1iaJAPA-Vg
DEF T-geheimo2FKSHgUZXCDid V_noch_geheimer3QE5SrRX8RMEkOAdchEpxpn5D_9VYkIkn9msFTvfe-8F3rHZaEEYA5Wwt11c1iaJAPA-Vg https://my.home-assistant.io/redirect/oauth
FUUID 642e7541-f33f-e986-0ce5-33053541398fa912
INTERVAL 900
NAME Daikin_Master
NR 458
REDIRECT_URI https://my.home-assistant.io/redirect/oauth
STATE polling activ
TYPE DaikinCloud
VERSION v2.1.14 - 09.07.2024
eventCount 88
READINGS:
2024-09-29 13:48:04 Bad 1dc976c5-a58e-4843-9383-6880a3bb4711
2024-09-29 13:48:04 Küche 54b739b7-f9f6-4069-9397-fcf01e854712
2024-09-29 13:48:04 RateLimit-Limit-day 200
2024-09-29 13:48:04 RateLimit-Limit-minute 20
2024-09-29 13:48:04 RateLimit-Remaining-day 152
2024-09-29 13:48:04 RateLimit-Remaining-minute 19
2024-09-29 13:48:04 RateLimit-Reset 56
2024-09-29 13:48:04 Wintergarten 41b6788e-7de8-4de8-8876-047abf584713
2024-09-29 13:48:04 Wohnzimmer 4fa5ca12-af06-4c01-961d-a7ab67414714
2024-09-29 13:08:02 expires_in 3600
2024-09-30 15:08:04 state polling activ
2024-09-29 09:34:08 status_setcmd command successfully submitted
2024-09-30 15:08:04 token_status DaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."}
2024-09-30 15:08:04 token_type invalid
2024-09-29 14:27:03 update_response DaikinCloud (CallbackUpdateRequest) failed: HTTP-Status-Code=401 Response: {"message":"Unauthorized"}
helper:
REFRESH_TOKEN st2.s.AtLtZdjsrQ.UjPvmbpYP4uUotBBknHVx4X_O0ELzTKZCSSVzaAPRDeZqpW-N0Df-DpFBSMB69mTbncLTXCAD_NT-ERQJ43YQDpufVh3S-GKzooEFLEguf65vjDomERIxrzRvseO8PPl.COWC98uIfxoFOBnR0uN3xu6znoXr7-szVanibJoDpk5p4wLzYy4x-4I01ThbqbFssdXf1pLXAb_af9pnTk7ZYw.sc3
secret_state h7avCsmhedPK6kMtMmKWkIZ5rY8nJRF6
Attributes:
autocreate 1
consumptionData 1
interval 1200
room 2.Connections,DaikinCloud_Devices
Was ich bisher ohne Erfolg probiert habe:
- Autorisation-Link neu gestartet. Antwort von Daikin: "FHEM" benötigt die Erlaubnis: u.s.w. "Ich bin einverstanden"
Danach Erscheint von Daikin kurz eine Meldung "Proxy" und dann meldet sich Home Assistant mit der Frage "Link account to Home Assistant?" Muss dort eine URL eingetragen werden, oder ist die Daikin Autorisierung damit zu Ende?
- Nächster Versuch: Application gelöscht und neu angelegt. Neue ID und Credentials mit defmod in FHEM hinterlegt und Autorisation-Link erneut gestartet.
defmod Daikin_Master DaikinCloud xxxxxxxxx_nHqSjz yyyyyyyyyyPhSJ7bY0jZQy6TGSXDNrZt2RMWJ_QmI-9P0xKP_oV0i-yVo8YXJ3fUbyiR4xqD4yoz-qoFV7g https://my.home-assistant.io/redirect/oauth
Gleicher Fehler...
Ich bitte um Hilfe. Mache ich was falsch, oder ist dort was von Daikin Seite kaputt?
Lg, Jörg
Hallo Jörg,
wenn du die Redirect-Url von Home Assistant mitbenutzt, wirst du auf die von dir beschriebene Seite geleitet:
Zitat von: JoergBo am 30 September 2024, 15:52:48Was ich bisher ohne Erfolg probiert habe:
- Autorisation-Link neu gestartet. Antwort von Daikin: "FHEM" benötigt die Erlaubnis: u.s.w. "Ich bin einverstanden"
Danach Erscheint von Daikin kurz eine Meldung "Proxy" und dann meldet sich Home Assistant mit der Frage "Link account to Home Assistant?" Muss dort eine URL eingetragen werden, oder ist die Daikin Autorisierung damit zu Ende?
Dort muss keine Url eingetragen werden, aber die Authorisierung ist auch noch nicht zu Ende ;-) Du musst den kompletten Link der Internetseite aus dem Browser (https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx) in die Zwischenablage kopieren und in FHEM als set-command eingegeben:
set <NAME Master-Device> AuthCode <kompletter Link der Rückgabe-URL>
Erst dann wird dir der neue Access-Token und neue Refresh-Token übermittelt.
Wenn das ganze mit der Redirect-Url von Home Assistant nicht gut funktionieren sollte (war ja ursprünglich nur mal als Einstiegslösung vorgesehen), hatte ich im
Post #170 (https://forum.fhem.de/index.php?msg=1317498) zwei weitere Lösungen für die Verwendung einer inidividuellen Redirect-Url auf FHEM bzw. einer anderen Redirect-Url aufgezeigt.
Gib Bescheid, ob es geklappt hat oder du weitere Hilfe benötigst.
MfG Frank
Ich hab übrigens auch gerade bei mir festgestellt, dass mein Refresh-Token seit gestern (29.09.2024, 12:10 Uhr) nicht mehr akzeptiert wurde ... offensichtlich gab es da eventuell ein Problem bei Daikin. Nachdem ich den Authorisierungsprozeß nochmal angestoßen habe (Autorisation-Link klicken -> zustimmen -> Rückgabe-Link kopieren -> "set <Daikin> AuthCode <Rückgabe-Link>") lief jetzt aber alles wieder wie gewohnt.
MfG Frank
Hallo Frank,
danke für den Wink mit dem Zaunpfahl 8)
Das Übertragen des Links zu FHEM habe ich "vergessen".
set <NAME Master-Device> AuthCode <kompletter Link der Rückgabe-URL>
Danke.
Hallo,
ich habe mir auch mal das Modul: 58_DaikinCloud.pm in Fhem geholt, danke dafür.
Eine Frage, ich habe mir auch ein Anzeige für den Verbrauch aus den Readings gebastelt.
Tag, Woche und Jahr...
....was mir aber lieber wäre ist Monat kann man das irgendwie errechnen ???
define Daikin_Verbrauch_Tag readingsGroup Daikin_WP:,<Heizung>,kWh_heating_day,< ; ;Warmwasser>,kWh_heating_day_domesticHotWaterTank
setuuid Daikin_Verbrauch_Tag xxxxx-xxxxx-xxxxx
attr Daikin_Verbrauch_Tag group Verbrauch WP Daikin
attr Daikin_Verbrauch_Tag mapping { 'Daikin_WP' => 'Tag: ; ; ; '}
attr Daikin_Verbrauch_Tag noheading 1
attr Daikin_Verbrauch_Tag room DaikinCloud,Heizung-> Wärme Pumpe
attr Daikin_Verbrauch_Tag sortby 1
attr Daikin_Verbrauch_Tag style style="border:0px;;background:none;;box-shadow:none"
attr Daikin_Verbrauch_Tag valueFormat { kWh_heating_day => "%.1f°;kWh", kWh_heating_day_domesticHotWaterTank => "%.1f°;kWh",}
attr Daikin_Verbrauch_Tag valueStyle style="text-align:right"
#attr Daikin_Verbrauch_Tag noheading 1
define Daikin_Verbrauch_Woche readingsGroup Daikin_WP:,<Heizung>,kWh_heating_week,< ; ; ;Warmwasser>,kWh_heating_week_domesticHotWaterTank
setuuid Daikin_Verbrauch_Woche xxxxx-xxxxx-xxxxx
attr Daikin_Verbrauch_Woche group Verbrauch WP Daikin
attr Daikin_Verbrauch_Woche mapping { 'Daikin_WP' => 'Woche: ;'}
attr Daikin_Verbrauch_Woche noheading 1
attr Daikin_Verbrauch_Woche nostate 1
attr Daikin_Verbrauch_Woche room DaikinCloud,Heizung-> Wärme Pumpe
attr Daikin_Verbrauch_Woche sortby 2
attr Daikin_Verbrauch_Woche style style="border:0px;;background:none;;box-shadow:none"
attr Daikin_Verbrauch_Woche valueFormat {kWh_heating_week => "%.1f°;kWh", kWh_heating_week_domesticHotWaterTank => "%.1f°;kWh",}
attr Daikin_Verbrauch_Woche valueStyle style="text-align:right"
define Daikin_Verbrauch_Jahr readingsGroup Daikin_WP:,<Heizung>,kWh_heating_year,< ; ; ;Warmwasser>,kWh_heating_year_domesticHotWaterTank
setuuid Daikin_Verbrauch_Jahr xxxxx-xxxxx-xxxxx
attr Daikin_Verbrauch_Jahr group Verbrauch WP Daikin
attr Daikin_Verbrauch_Jahr mapping { 'Daikin_WP' => 'Jahr: ; ; '}
attr Daikin_Verbrauch_Jahr noheading 1
attr Daikin_Verbrauch_Jahr nostate 1
attr Daikin_Verbrauch_Jahr room DaikinCloud,Heizung-> Wärme Pumpe
attr Daikin_Verbrauch_Jahr sortby 3
attr Daikin_Verbrauch_Jahr style style="border:0px;;background:none;;box-shadow:none"
attr Daikin_Verbrauch_Jahr valueFormat {kWh_heating_year => "%.1f°;kWh", kWh_heating_year_domesticHotWaterTank => "%.1f°;kWh",}
attr Daikin_Verbrauch_Jahr valueStyle style="text-align:right"
Wenn du zusätzlich im jeweiligen Indoor-Device das Attribut consumptionData auf 1 setzt, werden die "kompletten" Energiewerte als Readings dargestellt (so wie sie auch in der Onecta-App zur Anzeige kommen würden). Siehe auch Erläuterung in der Commandref:
Zitat von: CommandrefconsumptionData [ 0 | 1 ]
Master-Device: Wenn auf 1 gesetzt, werden die in der Cloud gespeicherten Verbrauchsdaten ausgelesen und als Summenwerte in den Readings kWh_[heating|cooling]_[day|week|year] gespeichert.
Innengerät: Wenn auf 1 gesetzt, werden zusätzlich die Rohdaten der energy-readings aus der Cloud für dieses Device gespeichert. Dies setzt voraus, dass im Master-Device das Attribut consumptionData auf 1 gesetzt worden ist. Die Rohdaten werden in den Readings energy_[heating|cooling]_[d|w|m]_[1..24] gespeichert. Die d-Readings beziehen sich auf 2-Stunden-Zeitscheiben von gestern [d_1..d_12] und heute [d_13..d_24]. Die w-Readings beziehen sich auf ganze Tage [Mo..So] der letzten Woche [w_1..w_7] und aktuellen Woche [w_8..w_14]. Die m-Readings beziehen sich auf ganze Monate [Jan..Dez] im letzten Jahr [m_1..m_12] und aktuellen Jahr [m_13..m_24].
Schau mal, ob das dir bereits weiterhilft bzw. für deine Auswertungen reicht. Wenn du aber nur genau
ein Reading auswerten/anzeigen willst, wo der Wert des jeweils aktuellen Monats drin stehen soll, könntest du das ggf. über das Attribut userReadings realisieren. In etwa so vielleicht:
Attr <Daikin-Geräte-Name> userReadings kWh_heating_month:.* { ReadingsVal($name,'energy_heating_m_'.(substr(TimeNow(),5,2)+12),'0')}, kWh_cooling_month:.* { ReadingsVal($name,'energy_cooling_m_'.(substr(TimeNow(),5,2)+12),'0')}
Das setzt allerdings trotzdem voraus, dass im jeweiligen Indoor-Device das Attribut consumptionData auch auf 1 gesetzt worden ist !! Das wäre jetzt erstmal mein Lösungsansatz auf die schnelle. Ich persönlich logge nur den Jahresverbrauchswert aller Geräte und verwende ausschließlich den bzw. dessen delta (also Veränderung) für die graphische Auswertung/Anzeige bei den SVG-Devices.
MfG Frank
Hallo Frank,
ja danke sowas meinte ich, habe mir das auch gleich mal für Warmwasser nach gebaut....
....mal ob es was anzeigt ;)
kWh_heating_month_domesticHotWaterTank:.* { ReadingsVal($name,'energy_domesticHotWaterTank_m_'.(substr(TimeNow(),5,2)+12),'0')},
Hallo Frank,
ich hab gestern den folgenden Beitrag als E-Mail von GitHub bekommen: https://github.com/rospogrigio/daikin_residential/issues/182
Ich nehme an, dass du den Beitrag bereits kennst. Was bedeutet das für dein Modul und für die Fhem-User, die mehr als 200 Abfragen pro Tag benötigen?
Viele Grüße Gisbert
Hallo Gisbert,
ich habe mir gerade mal die Behelfslösung durchgelesen. Im Endeffekt liefe das darauf hinaus, dass die Befehle zum Steuern über Alexa (1. Cloud "ohne Limitbeschränkung") an die Daikin-Cloud (2. Cloud-Anbindung diesmal ebenfalls ohne Limitbeschränkung) übermittelt werden.
Ich könnte mir vorstellen, dass das grundsätzlich funktioniert. Wobei da auch nicht sichergestellt ist, dass Daikin irgendwann irgendwelche Beschränkungen einführt, wenn sie merken, dass dadurch zu viele Serveranfragen erzeugt werden. Da ich bei mir keine Alexa im Einsatz habe, kann ich die Lösung nicht wirklich testen.
Ich komme bei mir mit drei Innengeräten und dem Tageslimit von 200 Anfragen eigentlich gut aus. Abgesehen davon, dass mir natürlich eine lokale API lieber wäre, sehe ich die Anbindung einer zweiten Cloud bzw. den Umweg über eine zweite Cloud nicht als optimal an.
Wer Alexa im Einsatz hat, kann die Anbindung mit einem "Alexa-Device" ja mal testen. Es spricht auch nichts gegen einen parallelen Betrieb von Alexa-Device und DaikinCloud-Device.
MfG Frank
Hallo,
ich habe mir ein "Notify_WP_Frue_Pause" gebaut und wollte das mit "off-for-timer" schalten.
Das geht aber nicht mit: "set <MyDaikin>" off-for-timer 3600".
Habe zum Testen mir einen "dummy" gebaut da klappt das alle, hat eine eine Idee ::)
MfG ole
Hallo,
das Modul unterstützt derzeit nur die nativen Befehle, die von der Cloud je nach Innengerät als möglich zur Verfügung gestellt werden. "on" und "off" werden dabei als Kurzform für den eigentlichen Befehl "onOffMode" unterstützt. SetExtensions (wie on-for-timer, off-for-timer etc) werden aktuell (noch) nicht unterstützt bzw. sind (noch) nicht integriert. Ich werde aber mal schauen, ob ich das noch nachholen kann.
Als Behelfslösung könnte das ganze aber auch über das notify selbst angestoßen werden, z.B.
define <dein-notify-name> notify <deine-Bedingung> set <MyDaikin> off;;define MyDaikin_on_temp at +01:00:00 set <MyDaikin> on
Wenn dieses Notify getriggert wird, wird das Gerät <MyDaikin> ausgeschaltet und zugleich ein temporäres at erzeugt, welches nach 1 Stunde das Gerät <MyDaikin> wieder anschaltet.
Vielleicht hilft dir das erstmal weiter.
MfG Frank
Hallo FrankL,
danke, ich habe mir erstmal 2 "at" mir tägliche Aus-u.Einzeit (als Pause) gebaut.
Wenn das mit dem "on-for-timer, off-for-time" mal in`s Modul schafft würde ich mich freuen.... ;D
.....und solagenge kann ich auch warten.
MfG Ole
Ich hab die Unterstützung für die SetExtensions (on-for-timer, off-for-timer, on-till, off-till, ... ) mit ins Modul integriert und die aktuelle Version (v2.1.15) auf Github eingecheckt. Die aktuelle Version kann mit folgendem FHEM-Befehl geladen werden:
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
Danach ist wie immer in FHEM ein "reload 58_DaikinCloud.pm" (oder alternativ ein "shutdown restart") erforderlich, damit die Änderungen geladen werden.
MfG Frank
Hallo Frank,
habe "off-for-timer" getestet, es geht super. DANKE !!! ;D
Grüsse Ole
Hallo an alle,
heute am 20.11.2024 um 9:33 Uhr wurde bei mir im Logfile eine Fehlermeldung beim Abrufen der Daten von der Daikin-Cloud protokolliert ("General Server Error"). Die folgenden Abrufe schlugen danach ebenfalls fehl (Fehlermeldung: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."}).
Das Problem ist auf der https://daikincloudsolutions.statuspage.io/ (https://daikincloudsolutions.statuspage.io/) bekannt und zwischenzeitlich als gelöst markiert.
Allerdings war es bei mir erforderlich, den Authorisierungsprozess nochmal anzustoßen, um einen neuen gültigen Access- und Refresh-Token zu erhalten (also AUTHORIZATION_LINK anklicken -> Authorization-Code über Redirekt-Uri erhalten -> in Zwischenablage kopieren -> set <DaikinMaster> AuthCode <Authorization-Code> -> neues Token-Set erhalten). Danach lief wieder alles ohne Probleme. Schaut mal in euer Logfile, ob bei euch ebenfalls Fehlermeldungen aufgelaufen sind.
MfG Frank
Zitat von: FrankL am 20 November 2024, 17:31:19Allerdings war es bei mir erforderlich, den Authorisierungsprozess nochmal anzustoßen, um einen neuen gültigen Access- und Refresh-Token zu erhalten (also AUTHORIZATION_LINK anklicken -> Authorization-Code über Redirekt-Uri erhalten -> in Zwischenablage kopieren -> set <DaikinMaster> AuthCode <Authorization-Code> -> neues Token-Set erhalten). Danach lief wieder alles ohne Probleme. Schaut mal in euer Logfile, ob bei euch ebenfalls Fehlermeldungen aufgelaufen sind.
Hey Frank,
auch gerade erst gemerkt.
Danke dir. Bei mri war auch eine neue Authorisierung nötig, und ich habe mal wieder mehr als 30 min gewurschtelt bis es lief.
Ein weitere Beispiel von guter Beschreibung schlechte/ungenauer Ausführung. ;-)
VG Toron
Ich habe wieder versucht Daikin in FHEM nach langer Zeit wieder funktionsfähig einzubinden, nach der Beschreibung https://forum.fhem.de/index.php?.topic=133044.0
Nur ich scheitere an dem https://my.home-assistant.io/redirect/oauth/?code=xxxxxxxxxxxx Link. Wie bekomme ich diesen benötigten Code?
Kann es sein das https://my.home-assistant.io/redirect/oauth/?code gar nicht stimmt?
Hallo Bunny4600,
schau dir mal Post #170 an: https://forum.fhem.de/index.php?topic=133044.msg1317498#msg1317498
Ich hab's auf jeden Fall so gelöst und es funktioniert.
Gelegentlich kommt es vor, dass man die Autorisierung erneuern muss, dann sind es tatsächlich nur 2 Mausklicks.
Viele Grüße Gisbert
Ich gehe davon aus, dass du deine eigene App auf dem Daikin Developer Portal (https://developer.cloud.daikineurope.com/login) erstellt hast und dort als REDIRECT_URI die Adresse "https://my.home-assistant.io/redirect/oauth" angegeben hast?
Wichtig ist das du dieselbe REDIRECT_URI bei der Definition des FHEM-Devices verwendest also ..
defmod <NAME Master-Device> DaikinCloud <CLIENT_ID> <CLIENT_SECRET> https://my.home-assistant.io/redirect/oauth
.. wobei <NAME Master-Device>, <CLIENT_ID> und <CLIENT_SECRET> noch durch deine individuellen Definitionen bzw. die Angaben aus dem Daikin Developer Portal zu ersetzen sind.
Wenn du das gemacht hast, klickst du auf den AUTHORIZATION_LINK (unter Internals des Master-Devices), meldest dich bei Daikin an, erteilst die Zustimmung und wirst im Anschluss auf die REDIRECT_URI geleitet. In deiner Adressleiste im Browser steht dann sowas wie https://my.home-assistant.io/redirect/oauth/?code=xxxxxx...
Diesen kompletten Link aus der Adressleiste kopierst du in die Zwischenablage und führst
set <NAME Master-Device> AuthCode <kompletter Link der Rückgabe-URL>
aus, um Access- und Refresh-Token zu bekommen.
Falls du nicht weiterkommst, müsstest du mal nähere Informationen mitteilen (also was du konkret gemacht hast, wie deine DEFs aussehen, welche Fehlermeldungen kamen bzw. was im Log stand).
Falls du nicht die REDIRECT_URI von Home Assistant nutzen kannst, hatte ich hier im Post #170 (https://forum.fhem.de/index.php?msg=1317498) alternative Möglichkeiten dargestellt.
MfG Frank
Ich habe den Fehler gefunden.
Es lag am AUTHORIZATION_LINK den ich nicht richtig verwendet habe.
Nun hat die Anmeldung funktioniert.
Danke für den Tipp.
Hallo,
Ich arbeite seit dem Herbst letzten Jahres in meiner Multisplit über die APP mit dem Bedarfssteuerung, damit wenn die PV 1000 Watt liefert die Klima auch nur die ca. 1000 Watt verbraucht .....
(Ja ich weiß die Anlage läuft dann nicht so effektiv, aber bei PV Strom bin ich da nicht so ...)
Der FHEM Adapter gibt das aber nicht her ? Oder habe ich da was übersehen ?
Vorschlag/ Idee : Vielleicht könnte man das Polling Intervall auch verkürzen (ich weiß max 200) wenn man eine Art "Pollig Time Window" einführt, ich benutze meine Klima nur Tagsüber 9 bis 18 Uhr ...
Mir ist klar das ich das selbst mit AT machen könnte aber die Intervall ist halt min 900 ;-)
VG Toron
Bedarfsteuerung (demand control) ist über die neue Open API von Daikin nicht verfügbar. Siehe auch die Issues bei Github zur Home-Assistant-Integration hier (https://github.com/jwillemsen/daikin_onecta/issues/391) und hier (https://github.com/jwillemsen/daikin_onecta/issues/46). Es gibt auch noch weitere Datenpunkte, die unter der alten API zur Verfügung standen und in der neuen Open API von Daikin nicht bereit gestellt werden. Ich gehe auch nicht davon aus, dass sich da kurzfristig was ändern wird.
Damit kann die Bedarfsteuerung aktuell ausschließlich über die Onecta-App eingestellt werden.
Man kann sich nur an den Daikin-Support vom Developer-Portal wenden mit der Bitte, die Bedarfsteuerung auch über die neue API zur Verfügung zustellen. Allerdings mache ich da wenig Hoffnung auf eine entsprechende Realisierung. So zumindest aus dem Feedback der oben genannten Issues zu entnehmen.
MfG Frank
Die "Beschränkung" des min. Pollinginterval kann ich auch herabsetzen. Ich hatte das im Endeffekt mehr zum "Selbstschutz" eingebaut, damit nicht gleich jeder die Folgen des Request-Limits zu spüren bekommt. Welcher Mindestwert wäre für dich denn brauchbar?
MfG Frank
Ich hab eine aktuelle Version (v2.1.16) auf Github bereitgestellt, die im Master-Device das neue Attribut "allow-short-intervals" zur Verfügung stellt. Die aktuelle Version kann mit folgendem FHEM-Befehl geladen werden:
update all https://raw.githubusercontent.com/frank-lie/DaikinCloud/main/controls_DaikinCloud.txt
Nach dem Update ist ein
shutdown restart
erforderlich, damit das neue Attribut zur Verfügung steht. Mit
attr <Name-Master-Device> allow-short-intervals 1
können dann auch kürzere Polling-Intervalle als 900 Sekunden definiert werden. Mithilfe von AT könnte damit das Abrufintervall in bestimmten Zeiträumen der Geräte individuell angepasst werden, damit in den Zeiten der eigentlichen Nutzung die Werte schneller/öfters aktualisert werden. Wenn z.B. die Geräte hauptsächlich zwischen 9 und 18 Uhr betrieben werden, könnte das interval wie folgt individualisiert werden:
define Daikin_Cloud_Interval_Tag AT *09:00:00 attr <Name-Master-Device> interval 300
define Daikin_Cloud_Interval_Nacht AT *18:00:00 attr <Name-Master-Device> interval 3600
Bedenkt aber immer, dass das Request-Limit pro Tag (inklusive sämtlicher Set-Befehle) bei 200 pro Tag liegt. In dem dargestellten Beispiel würden im Zeitraum von 9 bis 18 Uhr bereits 108 Requests und im Zeitraum 18 Uhr bis 9 Uhr weitere 15 Requests verbraucht, so dass dem entsprechend wendiger Requests für set-Befehle verbleiben.
MfG Frank
Zitat von: FrankL am 06 Januar 2025, 14:25:49Man kann sich nur an den Daikin-Support vom Developer-Portal wenden mit der Bitte, die Bedarfsteuerung auch über die neue API zur Verfügung zustellen. Allerdings mache ich da wenig Hoffnung auf eine entsprechende Realisierung. So zumindest aus dem Feedback der oben genannten Issues zu entnehmen.
OK Danke ich mache trotzdem ein Ticket auf, die sind einfach nur SOOOOOO langsam in der Entwicklung ....
Zitat von: FrankL am 06 Januar 2025, 20:08:23Bedenkt aber immer, dass das Request-Limit pro Tag (inklusive sämtlicher Set-Befehle) bei 200 pro Tag liegt. In dem dargestellten Beispiel würden im Zeitraum von 9 bis 18 Uhr bereits 108 Requests und im Zeitraum 18 Uhr bis 9 Uhr weitere 15 Requests verbraucht, so dass dem entsprechend wendiger Requests für set-Befehle verbleiben.
Hallo Frank,
andere Entwickler die es dann noch in der Freizeit machen sind einfach nur super und schnell.
Danke.
VG Toron
Es ist wirklich ärgerlich das bei mir die Daikin Verbindung immer wieder ausfällt.
Bei einer Kontrolle ist mir aufgefallen, dass die Verbindung seit 10.01. wieder ausgefallen, un dich weis nicht woran es immer wieder liegt.
list Daikin_Master
Internals:
AUTHORIZATION_LINK <html><b><a href="https://idp.onecta.daikineurope.com/v1/oidc/authorize?response_type=code&client_id=UeCyTBq96BuCjPrHP25DdMrZ&redirect_uri=https%3A%2F%2Fmy%2Ehome%2Dassistant%2Eio%2Fredirect%2Foauth&scope=openid%20onecta%3Abasic.integration&state=kWW.........................................." target="_blank">Daikin Cloud Login (OAuth2)</a></b> </html>
CLIENT_ID UeCy.....................
CLIENT_SECRET 58hZa.................................................................................
DEF UeCy..................... 58hZa................................................................................. https://my.home-assistant.io/redirect/oauth
FUUID 669e7f9c-f33f-f4d2-3314-ba...................
INTERVAL 900
NAME Daikin_Master
NR 4920
REDIRECT_URI https://my.home-assistant.io/redirect/oauth
STATE polling inactiv
TYPE DaikinCloud
VERSION v2.1.16 - 06.01.2025
eventCount 12
READINGS:
2025-01-10 16:54:00 0c62e0bd-722f-4e03-.................. 0c62e0bd-722f-4e03-..................
2025-01-10 16:54:00 RateLimit-Limit-day 200
2025-01-10 16:54:00 RateLimit-Limit-minute 20
2025-01-10 16:54:00 RateLimit-Remaining-day 136
2025-01-10 16:54:00 RateLimit-Remaining-minute 19
2025-01-10 16:54:00 RateLimit-Reset 60
2025-01-10 16:08:58 expires_in 3600
2025-01-19 12:11:02 state polling inactiv
2025-01-19 12:10:39 token_status DaikinCloud (CallbackGetToken) failed: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is invalid."}
2025-01-19 12:10:39 token_type invalid
2025-01-10 16:54:00 update_response successful
helper:
secret_state kWW..........................................
Attributes:
alias Daikin Master Cloud Verbindung
allow-short-intervals 1
autocreate 1
consumptionData 1
devStateIcon /polling activ:lan_rs485@0CFB0C/
devStateStyle style="text-align:left;;font-weight:bold;;"
group Daikin Cloud
icon sani_heating_heatpump
interval 900
room _Daikin,_RxTx
Ich musste wieder AUTHORIZATION_LINK Daikin Cloud Login (OAuth2) ausführen damit eine Verbindung hergestellt wird.
Muss der AUTHORIZATION_LINK immer wieder neu ausgeführt werden?
Ist das ein Daikin Problem, oder woran liegt es?
Hallo,
bis auf den "General Server Error" am 20.11.2024 läuft es bei mir ohne Probleme. Allerdings finde ich die Refresh-Routine von Daikin mit der neuen Api nicht wirklich optimal gestaltet. Früher in der alten Api war es so, dass der Access-Token eine Gültigkeit von einer Stunde hatte, der Refresh-Token aber unbegrenzt gültig war bzw. immer wieder für die Erneuerung des Access-Token eingesetzt wurde. Selbst wenn einmal die Erneuerung des Access-Tokens nicht erfolgreich war, so wurde die Erneuerung einfach beim nächsten Mal mit demselben Refresh-Token nachgeholt. Mit der neuen Api hat das Daikin allerdings anders gelöst:
Am Anfang bekommst du einen Access-Token und einen Refresh-Token. Der Access-Token ist für eine Stunde gültig und muss danach erneuert werden. Beim Einsatz des Refresh-Tokens für die Erneuerung bekommst du einen neuen Access-Token und einen neuen Refresh-Token. Der alte Refresh-Token wird mit dieser Anfrage ungültig, d.h. er kann nur einmal verwendet werden. Wenn nun bei diesem Erneuerungsprozess der Refresh-Token eingesetzt und damit ungültig wird, du aber keine Antwort (z.B. wegen Timeout, Server-Error, etc.) bekommst, hast du nichts gültiges mehr, was du für eine Erneuerung des Access-Tokens einsetzen könntest. In diesem Fall bleibt dir nicht anderes übrig, als wieder den AUTHORIZATION_LINK zu klicken, um neue Tokens zu bekommen.
Interessant wäre allerdings, was bei dir am 10.01.2025 passiert ist. Ist da irgendwas im Log vermerkt (z.B. Server-Fehler, Timeout, instabile Routerverbindung, etc) ? Also ich meine den Log-Eintrag, bevor dann wahrscheinlich immer: HTTP-Status-Code=400 Response: {"error":"invalid_grant","error_description":"The provided authorization code or refresh token is revoked."} geloggt worden ist.
Im Endeffekt kann man nur schauen, was den Fehler verursacht hat und versucht dort anzusetzen. Wie gesagt, ich finde die Erneuerungsroutine der neuen Api nicht optimal, kann da aber nicht wirklich was dran ändern. Das einzige was bleibt wäre einen Watch-Dog anzulegen, der einen sofort benachrichtigt, wenn eine DaikinCloud-Anmeldung über den AUTHORIZATION_LINK erforderlich ist, z.B. so:
define WatchDog_DaikinCloud DOIF ([DaikinCloud:token_type] eq 'invalid') (set Telebot message DaikinCloud-Anmeldung erforderlich.)
Zur Erläuterung: Mein Daikin-Master-Device heißt DaikinCloud. Sobald im Master-Device das Reading token_type auf invalid gesetzt wird, soll eine Nachricht per Telegram gesendet werden. So kann man zumindest zeitnah den AUTHORIZATION_LINK anklicken, um wieder neue Zugangsdaten zu bekommen.
MfG Frank
@FrankL
Danke für den Hinweis.
Leider war das Log vom 10.01. schon gelöscht. Ich hatte den Verbindungsausfall leider übersehen.
Künftig werde ich vor dem Löschen der Logs die Daikin-Verbindung ansehen um den Verbindungsabbruch verifizieren zu können.
Ich werde auch für Daikin einen Watchdog einrichten, wie ich es teilweise für andere externe Verbindungen schon eingerichtet habe.
Die Installation mit einer neuen Daikin-Split-Anlage lief weitgehend problemlos. Ich schlage vor, die Anleitung aus dem ersten Post des Threads ins Wiki auszulagern.
Kann mir jemand bitte noch sagen, auf was sich die Energieangaben in den Readings beziehen? Sind "kWh_cooling_day" und "kWh_heating_day" die abgegebene thermische Energiemenge, oder die elektrisch aufgenommene Energiemenge?
Gibt es irgendwo in den Clouddaten auch die aktuelle Leistung (elektrisch bzw. thermisch) ?
LG
pah
Die Energieangaben entsprechen den Angaben, die auch über die Onecta-App einsehbar sind. Es handelt sich dabei um die elektrisch bezogene Energie.
Zumindest die mir bekannten Perfera-Innengeräte besitzen auch keine technische Möglichkeit, die thermische Energie zu messen.
Falls es zwischenzeitlich auch Geräte geben sollte, die neben der elektrisch bezogenen auch die thermisch abgegebene Energie in der Onecta-App anzeigen, bräuchte ich die entsprechenden Raw-Daten, damit ich die entsprechenden Datenpunkte mit auswerten/einbinden kann.
MfG Frank
Die Energiedaten werden von der Daikin-Cloud nur in 2-Stunden-Fenstern bereit gestellt. Der aktuelle Leistungsbezug lässt sich über die Cloud nicht abfragen/anzeigen. Da hilft dann nur ein Shelly (bzw. ein Tasmota-Messgerät) in der Stromzuleitung. Und das finde ich echt hilfreich, um besser einschätzen zu können, ob die Klimaanlage sparsam, aber effektiv arbeitet und nicht zu oft taktet.
Man kann auch selber schauen, was die Cloud bzw. die API von Daikin insgesamt an Json-Daten liefert. Dazu einfach im Master-Device das Attribut "SaveRawData" auf "1" setzen. Dann werden die gesamten Json-Daten ab dem nächsten Abruf auch als reading "jsonRawData" im Master-Device gespeichert.
MfG Frank
Danke.
Zitat von: FrankL am 12 März 2025, 21:51:21Da hilft dann nur ein Shelly (bzw. ein Tasmota-Messgerät) in der Stromzuleitung
Na, da gibt es aber auch noch andere Möglichkeiten.
Ich schlage noch vor, die Readingnamen etwas an die sonstigen FHEM-Gepflogenheiten anzupassen.
onOffMode -> status
operationMode -> mode
kWh_cooling_day -> energy_cooling_day (etc. für die anderen Energiemesswerte)
roomTemperature -> temperature(_measured)
setpoint -> temperature_desired
outdoorTemperature -> temperature_outdoor
roomHumidity -> humidity(_measured)
LG
pah
Zitat von: Prof. Dr. Peter Henning am 13 März 2025, 04:35:36Ich schlage noch vor, die Readingnamen etwas an die sonstigen FHEM-Gepflogenheiten anzupassen.
onOffMode -> status
operationMode -> mode
kWh_cooling_day -> energy_cooling_day (etc. für die anderen Energiemesswerte)
roomTemperature -> temperature(_measured)
setpoint -> temperature_desired
outdoorTemperature -> temperature_outdoor
roomHumidity -> humidity(_measured)
Sehr schön, damit können dann alle ihre funktionierenden Installationen und Automatisierungen umstellen - ich bin nicht begeistert.
Ich kann den Wunsch zwar nachvollziehen, die Readings mehr an übliche Benennungen anzupassen, sehe da aber mehr Probleme wie Nutzen.
Die Readingnamen werden aktuell fast ausschließlich aus den Json-Daten extrahiert, die die Daikin-Cloud liefert. Da das Modul möglichst flexibel jede Art von Gerät (also verschiedene Innengeräte bei [Multi-]Splitklimaanlagen, Altherma-Wärmepumpen, etc) auslesen soll und es bereits bei den Altherma-Geräten verschiedene Arten der Steuerung und Sensoren (Steuerung über Raumtemperatur, Rücklauftemperatur, Außentemperatur) gibt, halte ich z.B. ein hartes Verlinken des jeweils maßgebenden Datenpunktes auf temperature(_measured) für schwer machbar bzw. problematisch. Ebenso gibt es z.B. bei einigen Altherma-Geräten mehrere Varianten des Readings für "operationMode" bzw. "operationMode_xxx", die z.B. für Heizung und Warmwasserbereitung zuständig sind. Auch da wäre ein allgemeines Herunterbrechen auf ein einheitliches Reading "mode" problematisch.
Letztlich habe ich mich auch dafür entschieden, die Datenpunkte so zu belassen, wie sie aus der Cloud kommen, damit das Absetzen der zulässigen "Set-Befehle" für alle Geräte basierend auf dem jeweiligen Readingnamen mit dem entsprechenden Datenpunkt in der Cloud sichergestellt ist bzw. verknüpft bleibt.
Die Datenpunkte sind halt bei der Vielzahl der über die Onecta-App steuerbaren Geräte derart unterschiedlich, dass sich da eine Verallgemeinerung von Readingnamen nur schwer realisieren lässt.
Im Endeffekt stimme ich aber auch Gisbert zu. Viele haben ihre Automatisierung bzw. das Logging auf die bestehenden Readings ausgerichtet. Daher getreu dem Motto: never change a running system ;)
Falls dennoch das Bedürfnis besteht, einheitliche (zusätzliche) Readingnamen für bestimmte Datenpunkte im Device haben zu wollen, ließe sich das hilfsweise über das Attribut userReadings realisieren. Mir ist aber durchaus bewusst, dass das eine umständliche Lösung wäre.
MfG Frank
Nun, das kann jeder Modulautor selber bestimmen. Allerdings plädiere ich in FHEM dennoch für eine minimale Standardisierung.
Es ist übrigen keineswegs so, dass die bisherigen Readings den JSON-Daten entsprechen. "kwh_heating_day" etc. ist beispielsweise eindeutig selbst erfunden - und es ist, pardon, nicht optimal, Readingnamen mit der Einheit anzufangen.
ZitatViele haben ihre Automatisierung bzw. das Logging auf die bestehenden Readings ausgerichtet. Daher getreu dem Motto: never change a running system ;)
Wenn wir das so handhaben würden, gäbe es keinen Fortschritt.
LG
pah
P.S.:
Zitat von: Gisbert am 13 März 2025, 10:28:54Sehr schön, damit können dann alle ihre funktionierenden Installationen und Automatisierungen umstellen - ich bin nicht begeistert.
Es war doch immer schon mein Begehren, Gisbert zu begeistern. ::)
Zitat von: Prof. Dr. Peter Henning am 13 März 2025, 20:13:48Es ist übrigen keineswegs so, dass die bisherigen Readings den JSON-Daten entsprechen. "kwh_heating_day" etc. ist beispielsweise eindeutig selbst erfunden - und es ist, pardon, nicht optimal, Readingnamen mit der Einheit anzufangen.
Naja ich hatte ja geschrieben, dass die Readingnamen
fast ausschließlich aus den Json-Daten generiert werden. Die Readings "kWh_cooling_day, kWh_cooling_week, kWh_cooling_year, kWh_heating_day, kWh_heating_week, kWh_heating_year" gehören natürlich nicht dazu ;-). Da die "Roh-Energie-Daten" aus der Daikin-Cloud für ein Logging nicht wirklich brauchbar waren (Erläuterung siehe hier (https://forum.fhem.de/index.php?msg=1271370)), werden die Tages-, Wochen- und Jahreswerte berechnet und als eigenständiges Reading erstellt. Dass ich damals die Readings mit "kWh_..." begonnen habe, war wohl eher eine spontane Aktion. Dahingehend wäre ich offen für eine Umbenennung in ...
oder bezugnehmend auf deine Frage:
Zitat von: Prof. Dr. Peter Henning am 12 März 2025, 20:31:41Kann mir jemand bitte noch sagen, auf was sich die Energieangaben in den Readings beziehen? Sind "kWh_cooling_day" und "kWh_heating_day" die abgegebene thermische Energiemenge, oder die elektrisch aufgenommene Energiemenge?
dann lieber gleich:
- z.b. energy_electrical_cooling_day
Ich fände es im Übrigen auch interessent, ob es mittlerweile Geräte von Daikin gibt (egal ob LLWP oder Altherma), die die thermische Energie messen und diese Werte auch in der Onecta-App darstellen. Die BAFA wollte das ja ab 2023 zur Voraussetzung für eine weitere Förderung machen. Ich hab das aber nicht weiter verfolgt, was da letztlich bei rausgekommen ist. Falls also jemand in der Onecta-App auch die thermische Leistung angezeigt bekommt, würde ich mir gern mal die entsprechenden Json-Rohdaten anschauen. Falls da jemand ein aktuelles Gerät hat, kann er im Master-Device mal das Attribut:
attr <master-device> saveRawData 1
setzen und nach dem nächsten Abruf im Master-Device das Reading "jsonRawData" mal nach "kWh" durchsuchen (STRG+F) und schauen, ob davor mal nicht "electrical", sondern z.B. "thermal" oder so steht ...
MfG Frank
Hallo Frank,
bei meinem master-device taucht lediglich im Reading jsonRawData nur einmal der Begriff "electrical" auf, "therm..." gar nicht.
Falls in irgendeiner Form an Änderungen von Readingsnamen gedacht wird, dann wäre sicher eine Art von Plan notwendig, der dich und die von deinem Modul begeisterten User nicht überfordert. Ich weiß nicht, ob der Hinweis auf das SolarForecast-Modul von DS_Starter hilft, der nicht nur im Forum sondern auch im Device auf Änderungen und neue Versionen hinweist, z.B. Readings- und Attributsnamen. Oft ist für die User selbst bei größeren Veränderungen wenig zu tun. Das ist natürlich aus Sicht der User erfreulich, allerdings liegt die Arbeit im Feld des Modulautors. Für mich steht die Funktionalität deines Moduls im Vordergrund.
Viele Grüße Gisbert
Umbenennen der "kwh"-Readings: Sehr starke Befürwortung meinerseits, und gerne mit "electrical". Oder abgekürzt "e".
Zitatsetzen und nach dem nächsten Abruf im Master-Device das Reading "jsonRawData" mal nach "kWh" durchsuchen (STRG+F) und schauen, ob davor mal nicht "electrical", sondern z.B. "thermal" oder so steht ...
Mit nagelneuen Geräten: Habe ich längst gemacht, da steht nichts von "thermal". Das ist auch nicht ganz einfach, denn man müsste dafür die Temperaturen Vorlauf/Rücklauf des Kältemittels sowie den Fluss messen, und das mit den Eigenschaften des Kältemittels verrechnen. Wie das geht, habe ich 2014 am Beispiel der Solarthermie gezeigt, siehe https://wiki.fhem.de/wiki/Ertragsmessung_Solarthermie.
Wenn das also nicht von Daikin selbst implementiert wird, ist das wegen des notwendigen Eingriffs in den Kühlkreislauf kaum möglich.
@Gisbert: Du bist seit mehr als 10 Jahren bei FHEM dabei. Also weißt du ganz genau, dass manchmal Abwärtskompatibilität ein Fehler ist. Also hab Dich bitte nicht so, die paar Zeilen wirst Du eben anpassen müssen. Das ist jedenfalls weniger Arbeit, als selbst ein Modul zu schreiben...
LG
pah
@pah, keine Frage, dass krieg ich mit Sicherheit hin, Definitionen in Automationen und Log-Dateien zu ändern, inkl. Änderung der Inhalte von Log-Dateien, sowie Plots. Letztlich muss Frank das entscheiden, er hat schließlich die Entwicklung durchgeführt und die letztens von Daikin aufgezwungenen Beschränkungen für die User umgesetzt.
Manchmal lässt sich Einheitlichkeit bei der Benennung von Readingnamen nur schwer umsetzen, jedenfalls nicht ohne deutliche Nebenwirkungen. Man kann natürlich z.B. bei MQTT-Devices als User in Fhem einheitliche Readingnamen verwenden, dann hat man aber den Fakt, dass die Topics meist anders lauten als die Readingnamen. Bei Heishamon (Projekt inkl. Platine zum Auslesen von Panasonic-Wärmepumpen) oder das Auslesen von DEYE-Wechselrichtern (diverse Github-Projekt, teils inkl. Platine) erhält man gut und gerne > 100 Topics. Diese Entwickler - es sei Ihnen an dieser Stelle gedankt - haben aber mit Fhem so gar nichts zu tun. Wenn man da versucht einen Fhem-Standard bei den Readingnamen reinzubekommen, wird es nicht übersichtlicher. Beim Stöbern in anderen Foren, müsste man sich eigentlich noch eine Übersetzungsliste Topic - Readingnamen (vom Inhalt ganz zu schweigen) daneben legen, um den Überblick zu behalten.
Ich kann mit jeder Änderung und Verbesserung gut zurechtkommen und begrüße es natürlich, wenn die Funktionalität und Übersichtlichkeit gegeben ist. Ansonsten, ich nehme, was ich kriegen kann, und versuche das Beste für mich draus zu machen.
Viele Grüße Gisbert