From 84b7b3b0a117bccdb801b6a6a63f84ccf774ef3a Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 16:05:51 +0100 Subject: [PATCH 01/43] Improve control_state processing --- plugwise/data.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugwise/data.py b/plugwise/data.py index 22a86e901..34fd9d24f 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -160,8 +160,11 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: """ zone = self._zones[loc_id] data = self._get_zone_data(loc_id) - if ctrl_state := self._control_state(loc_id): - data["control_state"] = ctrl_state + if ctrl_state := self._control_state(loc_id) and str(control_state) in ("cooling", "heating", "preheating"): + data["control_state"] = str(ctrl_state) + self._count += 1 + else: + data["control_state"] = "idle" self._count += 1 # Thermostat data (presets, temperatures etc) From 9e99eff28774c32deeed3b631590aafa80792961 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 16:16:20 +0100 Subject: [PATCH 02/43] Fix --- plugwise/data.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugwise/data.py b/plugwise/data.py index 34fd9d24f..b4a929796 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -160,9 +160,10 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: """ zone = self._zones[loc_id] data = self._get_zone_data(loc_id) - if ctrl_state := self._control_state(loc_id) and str(control_state) in ("cooling", "heating", "preheating"): - data["control_state"] = str(ctrl_state) - self._count += 1 + if ctrl_state := self._control_state(loc_id): + if str(ctrl_state) in ("cooling", "heating", "preheating"): + data["control_state"] = str(ctrl_state) + self._count += 1 else: data["control_state"] = "idle" self._count += 1 From e4661f0d2b1975860b8f7c8ba1ffda414f159aa7 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 20:02:57 +0100 Subject: [PATCH 03/43] Handle old/new Adam firmware --- plugwise/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugwise/data.py b/plugwise/data.py index b4a929796..548d24c81 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -164,7 +164,7 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: if str(ctrl_state) in ("cooling", "heating", "preheating"): data["control_state"] = str(ctrl_state) self._count += 1 - else: + elif self.smile_version > Version.parse("3.6.0"): data["control_state"] = "idle" self._count += 1 From 8d54a29b2cf4275a9980489a2031b601c609d8c3 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 20:12:56 +0100 Subject: [PATCH 04/43] Make smile_version available to SmileApi class --- plugwise/__init__.py | 1 + plugwise/smile.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugwise/__init__.py b/plugwise/__init__.py index 2769177cd..562ad7938 100644 --- a/plugwise/__init__.py +++ b/plugwise/__init__.py @@ -147,6 +147,7 @@ async def connect(self) -> Version | None: self.smile_model_id, self.smile_name, self.smile_type, + self.smile_version, self._port, self._username, ) if not self.smile_legacy else SmileLegacyAPI( diff --git a/plugwise/smile.py b/plugwise/smile.py index eac7824ee..d157e62db 100644 --- a/plugwise/smile.py +++ b/plugwise/smile.py @@ -66,6 +66,7 @@ def __init__( smile_model_id: str | None, smile_name: str, smile_type: str, + smile_version: str, port: int = DEFAULT_PORT, username: str = DEFAULT_USERNAME, ) -> None: @@ -90,6 +91,7 @@ def __init__( self.smile_model_id = smile_model_id self.smile_name = smile_name self.smile_type = smile_type + self.smile_version = smile_version SmileData.__init__(self) From b4f69c755e4763de88fd03ae7306eb3a00de9d69 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 20:14:03 +0100 Subject: [PATCH 05/43] Add missing import --- plugwise/data.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugwise/data.py b/plugwise/data.py index 548d24c81..f2438d426 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -19,6 +19,8 @@ from plugwise.helper import SmileHelper from plugwise.util import remove_empty_platform_dicts +from packaging import version + class SmileData(SmileHelper): """The Plugwise Smile main class.""" @@ -164,7 +166,7 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: if str(ctrl_state) in ("cooling", "heating", "preheating"): data["control_state"] = str(ctrl_state) self._count += 1 - elif self.smile_version > Version.parse("3.6.0"): + elif self.smile_version > version.parse("3.6.0"): data["control_state"] = "idle" self._count += 1 From 517f6d5f6306ed92dfbd8c18cea7b2aa407f08fb Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Sun, 1 Dec 2024 20:18:59 +0100 Subject: [PATCH 06/43] Fix lowest version --- plugwise/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugwise/data.py b/plugwise/data.py index f2438d426..da5c5e9bd 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -166,7 +166,7 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: if str(ctrl_state) in ("cooling", "heating", "preheating"): data["control_state"] = str(ctrl_state) self._count += 1 - elif self.smile_version > version.parse("3.6.0"): + elif self.smile_version >= version.parse("3.2.0"): data["control_state"] = "idle" self._count += 1 From fbb71ff699d326cb754db690eb6316daccbbd102 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 08:10:02 +0100 Subject: [PATCH 07/43] Fix once more --- plugwise/data.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugwise/data.py b/plugwise/data.py index da5c5e9bd..f88376886 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -166,6 +166,9 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: if str(ctrl_state) in ("cooling", "heating", "preheating"): data["control_state"] = str(ctrl_state) self._count += 1 + else: + data["control_state"] = "idle" + # control_state not present in regulation+mode off (issue #776) elif self.smile_version >= version.parse("3.2.0"): data["control_state"] = "idle" self._count += 1 From 546910b0995a51eb5d8aaaa7e387265a850cc72b Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 08:12:40 +0100 Subject: [PATCH 08/43] Save changed fixture and test-json --- fixtures/adam_heatpump_cooling/all_data.json | 22 +++---- tests/data/adam/adam_heatpump_cooling.json | 62 +++++++++++++------- 2 files changed, 52 insertions(+), 32 deletions(-) diff --git a/fixtures/adam_heatpump_cooling/all_data.json b/fixtures/adam_heatpump_cooling/all_data.json index 608bbd6bb..77ddf8bc0 100644 --- a/fixtures/adam_heatpump_cooling/all_data.json +++ b/fixtures/adam_heatpump_cooling/all_data.json @@ -9,7 +9,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer SJ", @@ -134,7 +134,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer DB", @@ -256,7 +256,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Badkamer 2", @@ -409,7 +409,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Badkamer 1", @@ -449,7 +449,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer RB", @@ -508,7 +508,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer SQ", @@ -568,7 +568,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Keuken", @@ -608,7 +608,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Bijkeuken", @@ -746,7 +746,7 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer JM", @@ -856,7 +856,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Woonkamer", @@ -892,7 +892,7 @@ "cooling_present": true, "gateway_id": "7d97fc3117784cfdafe347bcedcbbbcb", "heater_id": "0ca13e8176204ca7bf6f09de59f81c83", - "item_count": 497, + "item_count": 487, "notifications": {}, "reboot": true, "smile_name": "Adam" diff --git a/tests/data/adam/adam_heatpump_cooling.json b/tests/data/adam/adam_heatpump_cooling.json index 029cbfcd4..fe5cbcb65 100644 --- a/tests/data/adam/adam_heatpump_cooling.json +++ b/tests/data/adam/adam_heatpump_cooling.json @@ -1,5 +1,5 @@ { - "entities": { + "devices": { "04b15f6e884448288f811d29fb7b1b30": { "active_preset": "away", "available_schedules": [ @@ -9,8 +9,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Slaapkamer SJ", "preset_modes": [ "no_frost", @@ -36,7 +37,8 @@ "d3a276aeb3114a509bab1e4bf8c40348" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "0ca13e8176204ca7bf6f09de59f81c83": { "available": true, @@ -132,8 +134,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Slaapkamer DB", "preset_modes": [ "no_frost", @@ -159,7 +162,8 @@ "47e2c550a33846b680725aa3fb229473" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "2e0fc4db2a6d4cbeb7cf786143543961": { "available": true, @@ -252,8 +256,9 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Badkamer 2", "preset_modes": [ "no_frost", @@ -278,7 +283,8 @@ "f04c985c11ad4848b8fcd710343f9dcf" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "5ead63c65e5f44e7870ba2bd680ceb9e": { "available": true, @@ -403,8 +409,9 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Badkamer 1", "preset_modes": [ "no_frost", @@ -430,7 +437,8 @@ "eac5db95d97241f6b17790897847ccf5" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "93ac3f7bf25342f58cbb77c4a99ac0b3": { "active_preset": "away", @@ -441,8 +449,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Slaapkamer RB", "preset_modes": [ "no_frost", @@ -467,7 +476,8 @@ "c4ed311d54e341f58b4cdd201d1fde7e" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "96714ad90fc948bcbcb5021c4b9f5ae9": { "available": true, @@ -498,8 +508,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Slaapkamer SQ", "preset_modes": [ "no_frost", @@ -525,7 +536,8 @@ "beb32da072274e698146db8b022f3c36" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "a03b6e8e76dd4646af1a77c31dd9370c": { "available": true, @@ -556,8 +568,9 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Keuken", "preset_modes": [ "no_frost", @@ -583,7 +596,8 @@ "ea8372c0e3ad4622ad45a041d02425f5" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "b52908550469425b812c87f766fe5303": { "active_preset": "away", @@ -594,8 +608,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Bijkeuken", "preset_modes": [ "no_frost", @@ -621,7 +636,8 @@ "1053c8bbf8be43c6921742b146a625f1" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "bbcffa48019f4b09b8368bbaf9559e68": { "available": true, @@ -730,8 +746,9 @@ "off" ], "climate_mode": "cool", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Slaapkamer JM", "preset_modes": [ "no_frost", @@ -757,7 +774,8 @@ "7fda9f84f01342f8afe9ebbbbff30c0f" ], "secondary": [] - } + }, + "vendor": "Plugwise" }, "ea8372c0e3ad4622ad45a041d02425f5": { "available": true, @@ -838,8 +856,9 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", + "model": "ThermoZone", "name": "Woonkamer", "preset_modes": [ "no_frost", @@ -865,7 +884,8 @@ "ca79d23ae0094120b877558734cff85c" ], "secondary": [] - } + }, + "vendor": "Plugwise" } } } From b51f296a8b22e5913dd4df34995535bd499a33ce Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 08:18:17 +0100 Subject: [PATCH 09/43] Add missing count --- plugwise/data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugwise/data.py b/plugwise/data.py index f88376886..08eb15a23 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -168,6 +168,7 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: self._count += 1 else: data["control_state"] = "idle" + self._count += 1 # control_state not present in regulation+mode off (issue #776) elif self.smile_version >= version.parse("3.2.0"): data["control_state"] = "idle" From ff6232ed0a22da6959f5ddbf3eee61ae8600e3b3 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 08:19:11 +0100 Subject: [PATCH 10/43] Save updated fixtures and test-jsons --- fixtures/adam_heatpump_cooling/all_data.json | 2 +- fixtures/adam_jip/all_data.json | 8 ++++---- fixtures/adam_onoff_cooling_fake_firmware/all_data.json | 2 +- tests/data/adam/adam_jip.json | 8 ++++---- tests/data/adam/adam_onoff_cooling_fake_firmware.json | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/fixtures/adam_heatpump_cooling/all_data.json b/fixtures/adam_heatpump_cooling/all_data.json index 77ddf8bc0..a77bb3b14 100644 --- a/fixtures/adam_heatpump_cooling/all_data.json +++ b/fixtures/adam_heatpump_cooling/all_data.json @@ -892,7 +892,7 @@ "cooling_present": true, "gateway_id": "7d97fc3117784cfdafe347bcedcbbbcb", "heater_id": "0ca13e8176204ca7bf6f09de59f81c83", - "item_count": 487, + "item_count": 497, "notifications": {}, "reboot": true, "smile_name": "Adam" diff --git a/fixtures/adam_jip/all_data.json b/fixtures/adam_jip/all_data.json index 2d58bb730..3943394dd 100644 --- a/fixtures/adam_jip/all_data.json +++ b/fixtures/adam_jip/all_data.json @@ -3,7 +3,7 @@ "06aecb3d00354375924f50c47af36bd2": { "active_preset": "no_frost", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Slaapkamer", @@ -36,7 +36,7 @@ "13228dab8ce04617af318a2888b3c548": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Woonkamer", @@ -267,7 +267,7 @@ "d27aede973b54be484f6842d1b2802ad": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Kinderkamer", @@ -324,7 +324,7 @@ "d58fec52899f4f1c92e4f8fad6d8c48c": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Logeerkamer", diff --git a/fixtures/adam_onoff_cooling_fake_firmware/all_data.json b/fixtures/adam_onoff_cooling_fake_firmware/all_data.json index 79e1109f8..70179277b 100644 --- a/fixtures/adam_onoff_cooling_fake_firmware/all_data.json +++ b/fixtures/adam_onoff_cooling_fake_firmware/all_data.json @@ -89,7 +89,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "model": "ThermoZone", "name": "Woonkamer", diff --git a/tests/data/adam/adam_jip.json b/tests/data/adam/adam_jip.json index 097c530a7..1e108eec4 100644 --- a/tests/data/adam/adam_jip.json +++ b/tests/data/adam/adam_jip.json @@ -3,7 +3,7 @@ "06aecb3d00354375924f50c47af36bd2": { "active_preset": "no_frost", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "name": "Slaapkamer", "preset_modes": [ @@ -34,7 +34,7 @@ "13228dab8ce04617af318a2888b3c548": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "name": "Woonkamer", "preset_modes": [ @@ -263,7 +263,7 @@ "d27aede973b54be484f6842d1b2802ad": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "name": "Kinderkamer", "preset_modes": [ @@ -318,7 +318,7 @@ "d58fec52899f4f1c92e4f8fad6d8c48c": { "active_preset": "home", "climate_mode": "heat", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "name": "Logeerkamer", "preset_modes": [ diff --git a/tests/data/adam/adam_onoff_cooling_fake_firmware.json b/tests/data/adam/adam_onoff_cooling_fake_firmware.json index 335ef5d01..0d152771b 100644 --- a/tests/data/adam/adam_onoff_cooling_fake_firmware.json +++ b/tests/data/adam/adam_onoff_cooling_fake_firmware.json @@ -89,7 +89,7 @@ "off" ], "climate_mode": "auto", - "control_state": "off", + "control_state": "idle", "dev_class": "climate", "name": "Woonkamer", "preset_modes": [ From a8eb919ce2af6e6950e36eec444a79080c0217e5 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 08:24:29 +0100 Subject: [PATCH 11/43] Save TODO --- plugwise/data.py | 3 ++- plugwise/helper.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugwise/data.py b/plugwise/data.py index 08eb15a23..7e1686f93 100644 --- a/plugwise/data.py +++ b/plugwise/data.py @@ -166,13 +166,14 @@ def _get_location_data(self, loc_id: str) -> GwEntityData: if str(ctrl_state) in ("cooling", "heating", "preheating"): data["control_state"] = str(ctrl_state) self._count += 1 - else: + if str(ctrl_state) == "off": data["control_state"] = "idle" self._count += 1 # control_state not present in regulation+mode off (issue #776) elif self.smile_version >= version.parse("3.2.0"): data["control_state"] = "idle" self._count += 1 + # TODO: add testcase with regulation_mode off and control_state key not present # Thermostat data (presets, temperatures etc) self._climate_data(loc_id, zone, data) diff --git a/plugwise/helper.py b/plugwise/helper.py index e9a5f5849..bd2dd97c6 100644 --- a/plugwise/helper.py +++ b/plugwise/helper.py @@ -259,6 +259,7 @@ def __init__(self) -> None: self.smile_model_id: str | None self.smile_name: str self.smile_type: str + self.smile_version: str self.smile_zigbee_mac_address: str | None self.therms_with_offset_func: list[str] = [] self._zones: dict[str, GwEntityData] = {} From d167093d1f603b3301552affd7947dba97975759 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Mon, 2 Dec 2024 12:52:27 +0100 Subject: [PATCH 12/43] Add userdata with regulation_mode set to off --- .../core.domain_objects.xml | 2317 +++++++++++++++++ 1 file changed, 2317 insertions(+) create mode 100644 userdata/adam_plus_anna_new_regulation_mode/core.domain_objects.xml diff --git a/userdata/adam_plus_anna_new_regulation_mode/core.domain_objects.xml b/userdata/adam_plus_anna_new_regulation_mode/core.domain_objects.xml new file mode 100644 index 000000000..94039508a --- /dev/null +++ b/userdata/adam_plus_anna_new_regulation_mode/core.domain_objects.xml @@ -0,0 +1,2317 @@ + + + + Aanvoer water afsluiter (nous lz3) + A device that communicates through the ZigBee protocol. + valve_actuator + 2024-11-11T20:31:49.734+01:00 + 2024-11-15T13:55:19.574+01:00 + + + + + + + + relay + + 2024-11-15T13:55:19.571+01:00 + 2024-11-15T13:55:19.571+01:00 + + + + off + + + + + + 2024-11-15T13:55:19.571+01:00 + false + off + + + + + + _TZ3000_abjodzas + TS0011 + + + + 2024-11-11T20:31:46.189+01:00 + 2024-11-11T20:31:49.706+01:00 + + + + + + + + + + + + A4C13862AF9917B1 + end_device + true + battery + + + + 221 + 1 + parent + + + 2024-11-15T14:07:23+01:00 + true + + + + + SmartPlug Floor 0 + A device that communicates through the ZigBee protocol. + + heater_central + 2022-03-11T11:21:58.858+01:00 + 2022-06-13T15:15:12.921+02:00 + 2023-12-22T16:18:09.841+01:00 + + + + + + electricity_consumed + Wh + 2023-12-22T16:15:00+01:00 + 2023-12-22T16:00:00+01:00 + PT15M + + + 0.00 + + + + electricity_produced + Wh + + + PT15M + + + + relay + + 2023-12-22T16:18:09.841+01:00 + 2022-06-11T15:25:12.796+02:00 + + + + on + + + + + + 2023-12-22T16:18:09.841+01:00 + false + on + + + + + + LUMI + lumi.plug.maeu01 + + + + 2022-03-11T11:21:37.406+01:00 + 2022-03-11T18:44:23.929+01:00 + + + + + + + + + + + + 54EF4410002C97F2 + router + true + mains + + + + 63 + 1 + sibling + + + 75 + 1 + sibling + + + 67 + 0 + parent + + + 2023-12-22T16:24:36+01:00 + true + + + + + Lisa Badkamer + A zone thermostat regulates the temperature in a heating zone (generally a room). + zone_thermostat + 2021-12-16T19:31:01.653+01:00 + 2023-12-22T16:18:09.841+01:00 + + + + + + temperature + C + 2023-12-22T16:18:09.838+01:00 + 2023-12-22T16:18:09.838+01:00 + PT3H + + + 16.50 + + + + temperature_offset + C + 2023-12-10T15:48:43.424+01:00 + 2023-12-10T15:48:43.424+01:00 + + + + 0.00 + + + + battery + + 2023-12-22T13:59:02.810+01:00 + 2023-12-22T13:59:02.810+01:00 + + + + 0.14 + + + + thermostat + C + 2023-12-22T07:00:05.510+01:00 + 2023-12-22T07:00:05.510+01:00 + + + + 18.00 + + + + + + 2023-12-22T07:00:05.511+01:00 + thermostat + 0 + 99.9 + 0.01 + 18 + + + + + + 2023-12-10T15:48:43.425+01:00 + temperature_offset + 0 + + + + + 2021-12-16T19:30:15.976+01:00 + 2023-12-22T16:30:02.561+01:00 + + + + + + + + + economy + on + small + underfloor + false + + + + + + + Plugwise + Adam + 6539-1601-4502 + 2018-10-30T10:12:41+01:00 + 2021-12-16T19:30:19.722+01:00 + 2021-12-16T19:30:39.051+01:00 + + + + + + + + + + + + 16-50-001-505 + + + + + + + Plug Werkplek + A smart plug that can be switched on/off and measure power usage. + computer_desktop + 2021-12-16T19:30:42.936+01:00 + 2023-12-22T16:30:49.607+01:00 + + + + + + + + electricity_produced + Wh + 2023-12-22T16:15:00+01:00 + 2023-12-22T16:00:00+01:00 + PT15M + + + 0.00 + + + + electricity_produced + W + 2023-12-22T16:30:49.581+01:00 + 2023-12-22T16:30:49.581+01:00 + + + + 0.00 + + + + relay + + 2023-12-22T16:24:29.783+01:00 + 2023-12-22T16:24:29.783+01:00 + + + + on + + + + electricity_consumed + Wh + 2023-12-22T16:15:00+01:00 + 2023-12-22T16:00:00+01:00 + PT15M + + + 23.00 + + + + electricity_consumed + W + 2023-12-22T16:30:49.581+01:00 + 2023-12-22T16:30:49.581+01:00 + + + + 91.31 + + + + + + 2023-12-22T16:24:29.783+01:00 + false + on + + + + + + Badkamer + +