cyr-ius / hass-heatzy

Climate Home Assistant component for Heatzy Pilot
MIT License
33 stars 13 forks source link

Heatzy Pilote often returns 400 BAD REQUEST when trying to set mode while oem app/cloud is working #48

Closed luke7101 closed 5 months ago

luke7101 commented 7 months ago

Here are some examples from the logs :

2023-12-04 07:00:00.260 ERROR (MainThread) [custom_components.heatzy.climate] Set preset mode (comfort) Command failed control/xxxxxxxxxxxxxxxxxxxx with {'json': {'attrs': {'mode': 0}}} (400 BAD REQUEST) (None)

2023-12-04 08:56:37.644 ERROR (MainThread) [custom_components.heatzy.climate] Set preset mode (eco) Command failed control/xxxxxxxxxxxxxxxxxxxx with {'json': {'attrs': {'mode': 1}}} (400 BAD REQUEST) (None)

Meanwhile I can control the devices from the heatzy app without problems.

Heating mode and status aren't updated in HA as well and don't reflect the changes made from the heatzy app, until it starts to wok again.

Of course, it always happens in automations made to warm up the bathroom in these cold mornings 😁

ElGibs commented 7 months ago

Hi, same here since yesterday: 2023-12-05 11:38:55.327 ERROR (MainThread) [custom_components.heatzy.climate] Set preset mode (away) Command failed control/xxxxxxxxxxxxxxxxxxxxxxxxxxx with {'json': {'attrs': {'mode': 'fro'}}} (400 BAD REQUEST) (None) 2023-12-05 11:38:59.495 ERROR (MainThread) [custom_components.heatzy.climate] Set preset mode (away) Command failed control/xxxxxxxxxxxxxxxxxxxxxxxxxxx with {'json': {'attrs': {'mode': 'fro'}}} (400 BAD REQUEST) (None)

EDIT: just in case it would help, I already tried unbinding/rebinding the whole HA extension. The devices are found like a charm, but the heat control issue remains as before. Maybe did "they" change something on the API side ? (err 400)

EDIT2: everything got back to normal today 3:22am (UTC+1). Most probably an API-side issue (?)

cyr-ius commented 7 months ago

Indeed the problem must have been on their side because I did not change the code.

luke7101 commented 7 months ago

This is a problem that has been occurring for several months, not solved on my side at the moment. 7AM today it wasn't working. I'm not testing all day long but I can tell you that happens more than once a day. FYI I have one integration and 5 pilot devices

cyr-ius commented 7 months ago

Please test last release 5.9.7 and if issue continue, please execute "Download Diagnostic" and post file in this issue

image

luke7101 commented 7 months ago

Ok thanks, just updated. Will keep you posted 👍

luke7101 commented 6 months ago

Hi, no 400 since the update, until this morning! Despite the update there are still other, less annoying, errors (500 and 502) popping up here and there during the day.

[...]
2023-12-13 18:23:44.067 ERROR (MainThread) [custom_components.heatzy.coordinator] Error fetching heatzy data: devdata/xxxxxxxxxxxxxxxxxxxxxx/latest not retrieved (502)
2023-12-14 03:31:01.973 ERROR (MainThread) [custom_components.heatzy.coordinator] Error fetching heatzy data: bindings not retrieved (500)
2023-12-14 03:37:09.866 ERROR (MainThread) [custom_components.heatzy.coordinator] Error fetching heatzy data: bindings not retrieved (502)
2023-12-14 05:15:04.728 ERROR (MainThread) [custom_components.heatzy.coordinator] Error fetching heatzy data: devdata/yyyyyyyyyyyyyyyyyyyyyy/latest not retrieved (500)
2023-12-14 08:08:15.534 ERROR (MainThread) [custom_components.heatzy.climate] Error to set preset mode: away (Command failed control/zzzzzzzzzzzzzzzzzzzzzz with {'json': {'attrs': {'mode': 2}}} (400 BAD REQUEST))
2023-12-14 08:08:29.667 ERROR (MainThread) [custom_components.heatzy.climate] Error to set preset mode: away (Command failed control/zzzzzzzzzzzzzzzzzzzzzz with {'json': {'attrs': {'mode': 2}}} (400 BAD REQUEST))
2023-12-14 08:41:55.445 ERROR (MainThread) [custom_components.heatzy.climate] Error to set preset mode: away (Command failed control/zzzzzzzzzzzzzzzzzzzzzz with {'json': {'attrs': {'mode': 2}}} (400 BAD REQUEST))

Diag file is safe to be posted as is, or should I remove infos that could be sensitive ? Maybe a PM (is there some sort of PM here?) or an email ?

luke7101 commented 6 months ago

Hi, today a few 400 BAD REQUEST again. I had a chance to do a few debug tho. The problem today was related to one of my 5 pilot2 devices. While one device is reporting 400 BAD REQUEST I can still push orders and get status to and from the 4 others. The non working one is still working in the official app, its status is correctly reported and I can do actions on it, therefore these actions aren't reported in HA.

I activated the debug logging and have isolated this parameter : In the binding management : METHOD:GET URL:bindings I have in the response the following parameter regarding the non working device : 'is_online': False All other devices are 'is_online': True, and when the non working one begins to work again, it's of course reported as online.

Hoping this can help you find a solution!

cyr-ius commented 6 months ago

is_online: False means your device cannot communicate with the Heatzy cloud. Have you checked if the Wifi signal is correct. Because I think your module disconnects from time to time and you encounter error 400 when it is disconnected.

luke7101 commented 6 months ago

I can understand that, but as said the device is working well with the official app while is returned as offline from the integration. That's weird!

ElGibs commented 6 months ago

I share your assumption that the wifi link might be the cause of such events. They occur several times a day here in my house. Seems the Heatzy wifi is hardly able to keep the network stable, or has a poor sensitivity. As in any other network, you can't make the assumption that the device is reachable at the exact precise moment when you need it to be. The workaround I leveraged is a recurring scenario, which will send on&off requests each 2 minutes. No matters it fails once or twice, at some point it will succeed.

cyr-ius commented 6 months ago

The Heatzy app does not poll the API until there is any action. So you have the last known state displayed. Try changing a value of your module in the app at the same time as HA gives you a 400, and you'll see that on the app the old state stays in place. I completely agree with the comments of @ElGibs

cyr-ius commented 6 months ago

The only thing I can do in the code is try to retry if I get a 400. it is impossible to pause the command, because this will make the execution loop blocking.

luke7101 commented 6 months ago

I tried this morning to change the value in the app while HA gave a 400, the change was operated by the module, the status was updated on the app, while in HA it was still giving a 400. Later in the morning the module updated to the right status in HA as well, I looked at the logs and noticed the change of the is_online status to True.

luke7101 commented 6 months ago

Do the heatzy app and the HA integration poll the very same API ? It's weird they got different answers.

I either made a mistake in my monitoring, or there's something else...

cyr-ius commented 6 months ago

Of course they use exactly the same API.

Officiel API Documentation https://mega.nz/folder/eupDGQCb#gKu0lXx0VM7gbZxmuTb0DQ

API Guide https://mega.nz/folder/eupDGQCb#gKu0lXx0VM7gbZxmuTb0DQ

cyr-ius commented 6 months ago

image

luke7101 commented 6 months ago

Yes I know, I went to this page for debugging this morning. That's why I haven't said time_week is different, cause I learned it's not very relevant, hence it shows the device was flagged offline since yesterday I guess.

A mystery then...

cyr-ius commented 6 months ago

the Wifi module is 2.4Ghz and it is not at all stable. try to move the module. I am going to make a change in the code to do 3 retry with 3 second intervals for errors 400,500,502 but unfortunately I could not do anything more.

cyr-ius commented 6 months ago

Please test : 5.9.8-beta1 I also added a check which checks if the is_online status is True, otherwise HA considers the equipment as unavailable.

luke7101 commented 6 months ago

Just updated. Actually all devices are online so no 400 to play with.

What I can see is PUT is working as expected and actions made from HA are almost real time reflected in the heatzy app. On the other end GET is more unstable. It looks like on the first attempt it correctly updates the device mode, but if I try multiple times it continues to get the previous mode, it's like the answer is cached on the server side, and it takes a few minutes (5-6 poll routines) before the answer returns the correct mode. Meanwhile, I repeat, the heatzy app is updated real time, like there's no poll but an online look over the server status.

luke7101 commented 6 months ago

Update: I struggle to understand ... Previous behavior lasted more than 10 minutes on my last attempt (heater in eco, heatzy app in eco, GET reporting cft). Then I stopped watching and smartphone went in standby. I woke it up, heatzy app refreshed, still in eco like the heater, but the next poll in HA reported eco as well. Like the app refresh unlocked the cache in the HA API poll ...

I think I'll stop watching it because it gives me headaches !

luke7101 commented 6 months ago

Salut, je reviens à la charge après les vacances pour une petite mise à jour (je suis en v.6.1.0).

Depuis quelques heures j'ai un pilote2 qui peut être contrôlé sans problèmes par l'app officielle (il est tout à fait connecté au réseau et répond aux commandes envoyées par l'app officielle immédiatement), mais répond avec un 400 à toute commande envoyée depuis HA et son état n'est pas actualisé.

On dirait que l'application officielle et l'intégration basée sur les API publiques semblent ne pas exploiter le même canal de dialogue, comme s'il y avait une API dédiée à l'app officielle qui marche mieux que l'API publique utilisée pour l'intégration.

cyr-ius commented 6 months ago

Un mode Websocket extrêment performant , à tester en sélectionnant les versions commençant par : ws- En activant le mode Beta dans HACS Première sortie : ws-6.1.0 Résoud les problèmes d'erreur : 500 , 502 et notre fameux 400

luke7101 commented 6 months ago

J'y vais de ce pas ! 👍

luke7101 commented 6 months ago

En version ws-6.1.0 l'intégration crée les 5 dispositifs mais ne charge l'état que d'un seul


2024-01-03 21:42:30.799 DEBUG (MainThread) [wsheatzypy.heatzy] Connected to a eusandbox.gizwits.com Websocket
2024-01-03 21:42:30.800 DEBUG (MainThread) [wsheatzypy.auth] METHOD:POST URL:login
2024-01-03 21:42:30.800 DEBUG (MainThread) [wsheatzypy.auth] DATA:{'json': {'username': 'xxx@xxx.xxx', 'password': 'xxx'}}
2024-01-03 21:42:30.975 DEBUG (MainThread) [wsheatzypy.auth] {'token': 'xxx', 'uid': 'xxx', 'expire_at': 1714144944}
2024-01-03 21:42:31.070 DEBUG (MainThread) [wsheatzypy.heatzy] Successfully authenticated to eusandbox.gizwits.com Websocket
2024-01-03 21:42:31.070 DEBUG (MainThread) [wsheatzypy.auth] METHOD:GET URL:bindings
2024-01-03 21:42:31.070 DEBUG (MainThread) [wsheatzypy.auth] DATA:{}
2024-01-03 21:42:31.183 DEBUG (MainThread) [wsheatzypy.auth] {'devices': [{'protoc': 3, 'ws_port': 8080, 'port_s': 8883, 'gw_did': '', 'host': 'eusandbox.gizwits.com', 'sleep_duration': 0, 'port': 1883, 'mcu_soft_version': '00000001', 'product_key': '51d16c22a5f74280bc3cfe9ebcdc6402', 'state_last_timestamp': 1704314506, 'role': 'special', 'is_sandbox': True, 'type': 'normal', 'product_name': 'Pilote2', 'is_disabled': False, 'mcu_hard_version': '00000001', 'wifi_soft_version': '04020028', 'dev_alias': 'SDD', 'mesh_id': None, 'is_online': True, 'dev_label': [], 'wss_port': 8880, 'remark': 'range=10|isdelete=1|gid=0|groupname=|grouprange=0', 'did': 'KkfsoYBRrVjivfa9ox6dF8', 'mac': '98f4abb384e0', 'passcode': 'HSKFMKPDRX', 'wifi_hard_version': '00ESP826', 'is_low_power': False}, {'protoc': 3, 'ws_port': 8080, 'port_s': 8883, 'gw_did': '', 'host': 'eusandbox.gizwits.com', 'sleep_duration': 0, 'port': 1883, 'mcu_soft_version': '00000001', 'product_key': '51d16c22a5f74280bc3cfe9ebcdc6402', 'state_last_timestamp': 1704268874, 'role': 'special', 'is_sandbox': True, 'type': 'normal', 'product_name': 'Pilote2', 'is_disabled': False, 'mcu_hard_version': '00000001', 'wifi_soft_version': '04020028', 'dev_alias': 'Bureau', 'mesh_id': None, 'is_online': False, 'dev_label': [], 'wss_port': 8880, 'remark': 'range=3|isdelete=1|gid=0|groupname=|grouprange=0', 'did': 'S2ftmhwbdDwaH4DcfUQx3j', 'mac': '84f3eb7421f3', 'passcode': 'FMTIMXEEGW', 'wifi_hard_version': '00ESP826', 'is_low_power': False}, {'protoc': 3, 'ws_port': 8080, 'port_s': 8883, 'gw_did': '', 'host': 'eusandbox.gizwits.com', 'sleep_duration': 0, 'port': 1883, 'mcu_soft_version': '00000001', 'product_key': '51d16c22a5f74280bc3cfe9ebcdc6402', 'state_last_timestamp': 1704314516, 'role': 'special', 'is_sandbox': True, 'type': 'normal', 'product_name': 'Pilote2', 'is_disabled': False, 'mcu_hard_version': '00000001', 'wifi_soft_version': '04020028', 'dev_alias': 'Chambre', 'mesh_id': None, 'is_online': True, 'dev_label': [], 'wss_port': 8880, 'remark': 'range=6|isdelete=1|gid=0|groupname=|grouprange=0', 'did': 'okPCd7M2BrYVNzZe7FRmCU', 'mac': '84f3eb7393c4', 'passcode': 'PBPMQPUJKN', 'wifi_hard_version': '00ESP826', 'is_low_power': False}, {'protoc': 3, 'ws_port': 8080, 'port_s': 8883, 'gw_did': '', 'host': 'eusandbox.gizwits.com', 'sleep_duration': 0, 'port': 1883, 'mcu_soft_version': '00000001', 'product_key': '51d16c22a5f74280bc3cfe9ebcdc6402', 'state_last_timestamp': 1704314516, 'role': 'special', 'is_sandbox': True, 'type': 'normal', 'product_name': 'Pilote2', 'is_disabled': False, 'mcu_hard_version': '00000001', 'wifi_soft_version': '04020028', 'dev_alias': 'SDB', 'mesh_id': None, 'is_online': True, 'dev_label': [], 'wss_port': 8880, 'remark': 'range=17|isdelete=1|gid=0|groupname=|grouprange=0', 'did': 'wFc9zdyV6niniSHS4AvZcG', 'mac': 'dc4f22751abc', 'passcode': 'GEHETYFGUT', 'wifi_hard_version': '00ESP826', 'is_low_power': False}, {'protoc': 3, 'ws_port': 8080, 'port_s': 8883, 'gw_did': '', 'host': 'eusandbox.gizwits.com', 'sleep_duration': 0, 'port': 1883, 'mcu_soft_version': '00000001', 'product_key': '51d16c22a5f74280bc3cfe9ebcdc6402', 'state_last_timestamp': 1704314523, 'role': 'special', 'is_sandbox': True, 'type': 'normal', 'product_name': 'Pilote2', 'is_disabled': False, 'mcu_hard_version': '00000001', 'wifi_soft_version': '04020028', 'dev_alias': 'Chambre enfants', 'mesh_id': None, 'is_online': True, 'dev_label': [], 'wss_port': 8880, 'remark': 'range=5|isdelete=1|gid=0|groupname=|grouprange=0', 'did': 'xHYXYWaFCkJS8NuGidh32h', 'mac': '84f3eb741e9c', 'passcode': 'RSJSUCJJLW', 'wifi_hard_version': '00ESP826', 'is_low_power': False}]}
2024-01-03 21:42:31.428 DEBUG (MainThread) [wsheatzypy.heatzy] => SDD: {'cmd': 's2c_noti', 'data': {'did': 'KkfsoYBRrVjivfa9ox6dF8', 'attrs': {'mode': 'eco', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 21, 'p1_data4': 84, 'p1_data5': 85, 'p1_data6': 85, 'p1_data7': 85, 'p1_data8': 85, 'p1_data9': 85, 'p1_data10': 85, 'p1_data11': 85, 'p1_data12': 85, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 65, 'p2_data5': 85, 'p2_data6': 85, 'p2_data7': 85, 'p2_data8': 85, 'p2_data9': 85, 'p2_data10': 85, 'p2_data11': 85, 'p2_data12': 85, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 65, 'p3_data5': 85, 'p3_data6': 85, 'p3_data7': 85, 'p3_data8': 85, 'p3_data9': 85, 'p3_data10': 85, 'p3_data11': 85, 'p3_data12': 85, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 65, 'p4_data5': 85, 'p4_data6': 85, 'p4_data7': 85, 'p4_data8': 85, 'p4_data9': 85, 'p4_data10': 85, 'p4_data11': 85, 'p4_data12': 85, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 65, 'p5_data5': 85, 'p5_data6': 85, 'p5_data7': 85, 'p5_data8': 85, 'p5_data9': 85, 'p5_data10': 85, 'p5_data11': 85, 'p5_data12': 85, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 69, 'p6_data5': 85, 'p6_data6': 85, 'p6_data7': 85, 'p6_data8': 85, 'p6_data9': 85, 'p6_data10': 85, 'p6_data11': 85, 'p6_data12': 85, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 69, 'p7_data5': 85, 'p7_data6': 85, 'p7_data7': 85, 'p7_data8': 85, 'p7_data9': 85, 'p7_data10': 85, 'p7_data11': 85, 'p7_data12': 85, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 43, 'time_min': 16, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 21:42:47.665 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 'ping'}
2024-01-03 21:43:11.557 DEBUG (MainThread) [custom_components.heatzy.coordinator] Finished fetching heatzy data in 40.870 seconds (success: True)
2024-01-03 21:43:11.647 DEBUG (MainThread) [wsheatzypy.heatzy] Connected to a eusandbox.gizwits.com Websocket
2024-01-03 21:43:11.742 DEBUG (MainThread) [wsheatzypy.heatzy] Successfully authenticated to eusandbox.gizwits.com Websocket
2024-01-03 21:43:11.742 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 'ping'}
2024-01-03 21:43:11.768 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 'pong'}```
luke7101 commented 6 months ago

Par la suite différentes choses se sont produites et se reproduisent toutes les 30 minutes apparemment. 4 dispositifs sur 5 sont bien présents.

2024-01-03 22:00:38.545 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 's2c_noti', 'data': {'did': 'xHYXYWaFCkJS8NuGidh32h', 'attrs': {'mode': 'eco', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 85, 'p1_data4': 85, 'p1_data5': 85, 'p1_data6': 85, 'p1_data7': 85, 'p1_data8': 85, 'p1_data9': 0, 'p1_data10': 80, 'p1_data11': 85, 'p1_data12': 85, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 85, 'p2_data5': 85, 'p2_data6': 85, 'p2_data7': 85, 'p2_data8': 85, 'p2_data9': 0, 'p2_data10': 80, 'p2_data11': 85, 'p2_data12': 85, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 85, 'p3_data5': 85, 'p3_data6': 85, 'p3_data7': 85, 'p3_data8': 85, 'p3_data9': 0, 'p3_data10': 80, 'p3_data11': 85, 'p3_data12': 85, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 85, 'p4_data5': 85, 'p4_data6': 85, 'p4_data7': 85, 'p4_data8': 85, 'p4_data9': 0, 'p4_data10': 80, 'p4_data11': 85, 'p4_data12': 85, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 85, 'p5_data5': 85, 'p5_data6': 85, 'p5_data7': 85, 'p5_data8': 85, 'p5_data9': 0, 'p5_data10': 80, 'p5_data11': 85, 'p5_data12': 85, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 85, 'p6_data5': 5, 'p6_data6': 0, 'p6_data7': 0, 'p6_data8': 0, 'p6_data9': 0, 'p6_data10': 80, 'p6_data11': 85, 'p6_data12': 85, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 85, 'p7_data5': 5, 'p7_data6': 0, 'p7_data7': 0, 'p7_data8': 0, 'p7_data9': 0, 'p7_data10': 80, 'p7_data11': 85, 'p7_data12': 85, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 44, 'time_min': 0, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.coordinator] Manually updated heatzy data
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:00:38.545 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE xHYXYWaFCkJS8NuGidh32h ------- 
2024-01-03 22:00:38.546 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:00:38.546 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:00:38.546 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:00:38.546 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:00:38.546 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH xHYXYWaFCkJS8NuGidh32h ------- 

2024-01-03 22:01:41.731 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 's2c_noti', 'data': {'did': 'okPCd7M2BrYVNzZe7FRmCU', 'attrs': {'mode': 'eco', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 85, 'p1_data4': 85, 'p1_data5': 5, 'p1_data6': 0, 'p1_data7': 0, 'p1_data8': 0, 'p1_data9': 0, 'p1_data10': 0, 'p1_data11': 0, 'p1_data12': 80, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 85, 'p2_data5': 5, 'p2_data6': 0, 'p2_data7': 0, 'p2_data8': 0, 'p2_data9': 0, 'p2_data10': 0, 'p2_data11': 0, 'p2_data12': 80, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 85, 'p3_data5': 5, 'p3_data6': 0, 'p3_data7': 0, 'p3_data8': 0, 'p3_data9': 0, 'p3_data10': 0, 'p3_data11': 0, 'p3_data12': 80, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 85, 'p4_data5': 5, 'p4_data6': 0, 'p4_data7': 0, 'p4_data8': 0, 'p4_data9': 0, 'p4_data10': 0, 'p4_data11': 0, 'p4_data12': 80, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 85, 'p5_data5': 5, 'p5_data6': 0, 'p5_data7': 0, 'p5_data8': 0, 'p5_data9': 0, 'p5_data10': 0, 'p5_data11': 0, 'p5_data12': 80, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 85, 'p6_data5': 5, 'p6_data6': 0, 'p6_data7': 0, 'p6_data8': 0, 'p6_data9': 0, 'p6_data10': 0, 'p6_data11': 0, 'p6_data12': 80, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 85, 'p7_data5': 5, 'p7_data6': 0, 'p7_data7': 0, 'p7_data8': 0, 'p7_data9': 0, 'p7_data10': 0, 'p7_data11': 0, 'p7_data12': 80, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 44, 'time_min': 0, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 22:01:41.731 DEBUG (MainThread) [custom_components.heatzy.coordinator] Manually updated heatzy data
2024-01-03 22:01:41.731 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:01:41.731 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE xHYXYWaFCkJS8NuGidh32h ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:01:41.732 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH xHYXYWaFCkJS8NuGidh32h ------- 

2024-01-03 22:03:13.112 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 's2c_noti', 'data': {'did': 'wFc9zdyV6niniSHS4AvZcG', 'attrs': {'mode': 'fro', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 85, 'p1_data4': 69, 'p1_data5': 85, 'p1_data6': 85, 'p1_data7': 85, 'p1_data8': 85, 'p1_data9': 85, 'p1_data10': 85, 'p1_data11': 85, 'p1_data12': 85, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 69, 'p2_data5': 85, 'p2_data6': 85, 'p2_data7': 85, 'p2_data8': 85, 'p2_data9': 85, 'p2_data10': 85, 'p2_data11': 85, 'p2_data12': 85, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 69, 'p3_data5': 85, 'p3_data6': 85, 'p3_data7': 85, 'p3_data8': 85, 'p3_data9': 85, 'p3_data10': 85, 'p3_data11': 85, 'p3_data12': 85, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 69, 'p4_data5': 85, 'p4_data6': 85, 'p4_data7': 85, 'p4_data8': 85, 'p4_data9': 85, 'p4_data10': 85, 'p4_data11': 85, 'p4_data12': 85, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 69, 'p5_data5': 85, 'p5_data6': 85, 'p5_data7': 85, 'p5_data8': 85, 'p5_data9': 85, 'p5_data10': 85, 'p5_data11': 85, 'p5_data12': 85, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 69, 'p6_data5': 85, 'p6_data6': 85, 'p6_data7': 85, 'p6_data8': 85, 'p6_data9': 85, 'p6_data10': 85, 'p6_data11': 85, 'p6_data12': 85, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 69, 'p7_data5': 85, 'p7_data6': 85, 'p7_data7': 85, 'p7_data8': 85, 'p7_data9': 85, 'p7_data10': 85, 'p7_data11': 85, 'p7_data12': 85, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 44, 'time_min': 0, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 22:03:13.112 DEBUG (MainThread) [custom_components.heatzy.coordinator] Manually updated heatzy data
2024-01-03 22:03:13.112 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:03:13.112 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:03:13.112 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE xHYXYWaFCkJS8NuGidh32h ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:03:13.113 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH xHYXYWaFCkJS8NuGidh32h ------- 

2024-01-03 22:04:11.910 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 's2c_noti', 'data': {'did': 'KkfsoYBRrVjivfa9ox6dF8', 'attrs': {'mode': 'eco', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 21, 'p1_data4': 84, 'p1_data5': 85, 'p1_data6': 85, 'p1_data7': 85, 'p1_data8': 85, 'p1_data9': 85, 'p1_data10': 85, 'p1_data11': 85, 'p1_data12': 85, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 65, 'p2_data5': 85, 'p2_data6': 85, 'p2_data7': 85, 'p2_data8': 85, 'p2_data9': 85, 'p2_data10': 85, 'p2_data11': 85, 'p2_data12': 85, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 65, 'p3_data5': 85, 'p3_data6': 85, 'p3_data7': 85, 'p3_data8': 85, 'p3_data9': 85, 'p3_data10': 85, 'p3_data11': 85, 'p3_data12': 85, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 65, 'p4_data5': 85, 'p4_data6': 85, 'p4_data7': 85, 'p4_data8': 85, 'p4_data9': 85, 'p4_data10': 85, 'p4_data11': 85, 'p4_data12': 85, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 65, 'p5_data5': 85, 'p5_data6': 85, 'p5_data7': 85, 'p5_data8': 85, 'p5_data9': 85, 'p5_data10': 85, 'p5_data11': 85, 'p5_data12': 85, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 69, 'p6_data5': 85, 'p6_data6': 85, 'p6_data7': 85, 'p6_data8': 85, 'p6_data9': 85, 'p6_data10': 85, 'p6_data11': 85, 'p6_data12': 85, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 69, 'p7_data5': 85, 'p7_data6': 85, 'p7_data7': 85, 'p7_data8': 85, 'p7_data9': 85, 'p7_data10': 85, 'p7_data11': 85, 'p7_data12': 85, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 44, 'time_min': 0, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 22:04:11.910 DEBUG (MainThread) [custom_components.heatzy.coordinator] Manually updated heatzy data
2024-01-03 22:04:11.910 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE xHYXYWaFCkJS8NuGidh32h ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:04:11.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH xHYXYWaFCkJS8NuGidh32h ------- 

2024-01-03 22:30:39.910 DEBUG (MainThread) [wsheatzypy.heatzy] {'cmd': 's2c_noti', 'data': {'did': 'xHYXYWaFCkJS8NuGidh32h', 'attrs': {'mode': 'eco', 'p1_data1': 85, 'p1_data2': 85, 'p1_data3': 85, 'p1_data4': 85, 'p1_data5': 85, 'p1_data6': 85, 'p1_data7': 85, 'p1_data8': 85, 'p1_data9': 0, 'p1_data10': 80, 'p1_data11': 85, 'p1_data12': 85, 'p2_data1': 85, 'p2_data2': 85, 'p2_data3': 85, 'p2_data4': 85, 'p2_data5': 85, 'p2_data6': 85, 'p2_data7': 85, 'p2_data8': 85, 'p2_data9': 0, 'p2_data10': 80, 'p2_data11': 85, 'p2_data12': 85, 'p3_data1': 85, 'p3_data2': 85, 'p3_data3': 85, 'p3_data4': 85, 'p3_data5': 85, 'p3_data6': 85, 'p3_data7': 85, 'p3_data8': 85, 'p3_data9': 0, 'p3_data10': 80, 'p3_data11': 85, 'p3_data12': 85, 'p4_data1': 85, 'p4_data2': 85, 'p4_data3': 85, 'p4_data4': 85, 'p4_data5': 85, 'p4_data6': 85, 'p4_data7': 85, 'p4_data8': 85, 'p4_data9': 0, 'p4_data10': 80, 'p4_data11': 85, 'p4_data12': 85, 'p5_data1': 85, 'p5_data2': 85, 'p5_data3': 85, 'p5_data4': 85, 'p5_data5': 85, 'p5_data6': 85, 'p5_data7': 85, 'p5_data8': 85, 'p5_data9': 0, 'p5_data10': 80, 'p5_data11': 85, 'p5_data12': 85, 'p6_data1': 85, 'p6_data2': 85, 'p6_data3': 85, 'p6_data4': 85, 'p6_data5': 5, 'p6_data6': 0, 'p6_data7': 0, 'p6_data8': 0, 'p6_data9': 0, 'p6_data10': 80, 'p6_data11': 85, 'p6_data12': 85, 'p7_data1': 85, 'p7_data2': 85, 'p7_data3': 85, 'p7_data4': 85, 'p7_data5': 5, 'p7_data6': 0, 'p7_data7': 0, 'p7_data8': 0, 'p7_data9': 0, 'p7_data10': 80, 'p7_data11': 85, 'p7_data12': 85, 'derog_mode': 0, 'derog_time': 0, 'lock_switch': 1, 'time_week': 3, 'time_hour': 45, 'time_min': 0, 'timer_switch': 0, 'boost_switch': 0, 'boost_time': 0, 'data1': 0, 'data2': 0}}}
2024-01-03 22:30:39.910 DEBUG (MainThread) [custom_components.heatzy.coordinator] Manually updated heatzy data
2024-01-03 22:30:39.910 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:30:39.910 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:30:39.910 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.climate] ------- UPDATE CLIMATE xHYXYWaFCkJS8NuGidh32h ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH KkfsoYBRrVjivfa9ox6dF8 ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH S2ftmhwbdDwaH4DcfUQx3j ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH okPCd7M2BrYVNzZe7FRmCU ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH wFc9zdyV6niniSHS4AvZcG ------- 
2024-01-03 22:30:39.911 DEBUG (MainThread) [custom_components.heatzy.switch] ------- UPDATE SWITCH xHYXYWaFCkJS8NuGidh32h ------- 
cyr-ius commented 5 months ago

Fix with beta version