Neues Modul: 58_DaikinCloud.pm zur Einbindung von Daikin Klimageräten über Cloud

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

Vorheriges Thema - Nächstes Thema

matsches

Hi,

herzlichen Dank für das Modul und den Support.
Funktioniert auf Anhieb bei meinen beiden Perferas Single-Splits!

Grüße
Mathias

buennerbernd

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?
Modulentwickler von KLF200 und KLF200Node

FrankL

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

buennerbernd

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"
}
},
Modulentwickler von KLF200 und KLF200Node

FrankL

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

andlor

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


toron_go

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

FrankL

Hallo Toron,

ich will mal noch ein paar kurze Erläuterungen zu den Readings geben:

Master-Device
Im "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-Devices
Die 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 Daikin
Ich habe die Gateways meiner Geräte ebenfalls soeben auf Firmware 1_25_0 geupdatet und kann mitteilen, dass alles weiterhin fehlerfrei funktioniert.

MfG Frank


Maik

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

FrankL

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

Maik

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

Maik

Kurze Rückmeldung, ohne Gmail login klappt jetzt.


Zitat von: Maik am 26 August 2023, 21:58:25
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

Ajuba

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.pmerhalte ich
Too many arguments for main::json2nameValue at ./FHEM/58_DaikinCloud.pm line 779, near "$neg_filter)"Auch ein Fhem Neustart ändert nichts.
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

FrankL

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

Ajuba

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?
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight