Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

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

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

Vorheriges Thema - Nächstes Thema

FrankL

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 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

FrankL

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

JoergBo

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. 
RasPI4, S5-95U, Hue, Volkszaehler, 1wireTemp, HMLan, sduino, Wlan-IR-Gateway, TelegramBot, Alexa, ...

ole30419

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,<&nbsp;;&nbsp;;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: &nbsp;; &nbsp;; &nbsp;; '}
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&deg;;kWh", kWh_heating_day_domesticHotWaterTank => "%.1f&deg;;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,<&nbsp;;&nbsp;;&nbsp;;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:&nbsp;;'}
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&deg;;kWh", kWh_heating_week_domesticHotWaterTank => "%.1f&deg;;kWh",}
attr Daikin_Verbrauch_Woche valueStyle style="text-align:right"

define Daikin_Verbrauch_Jahr readingsGroup Daikin_WP:,<Heizung>,kWh_heating_year,<&nbsp;;&nbsp;;&nbsp;;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: &nbsp;; &nbsp;; '}
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&deg;;kWh", kWh_heating_year_domesticHotWaterTank => "%.1f&deg;;kWh",}
attr Daikin_Verbrauch_Jahr valueStyle style="text-align:right"
MfG Ole

FrankL

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

ole30419

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')},
MfG Ole

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

FrankL

Hallo Gisbert,

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

ole30419

#203
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
MfG Ole

FrankL

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> onWenn 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

ole30419

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
MfG Ole

FrankL

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


ole30419

Hallo Frank,
habe "off-for-timer" getestet, es geht super. DANKE !!! ;D

Grüsse Ole
MfG Ole

FrankL

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/ 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

toron_go

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