mduran80 / pymadoka

A python library to control Daikin BRC1H (Madoka) thermostat
MIT License
26 stars 8 forks source link

Impossible to update fan speed #18

Open oliroche opened 10 months ago

oliroche commented 10 months ago

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

mduran80 commented 10 months ago

It seems the controller does not have a fan status for the cooling mode and the code assumes it always exists.

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L99

I don’t have a mqtt setup myself. Can you check if the cooling_fan_speed is being reported in the status or fan topic? From what I see in the code, it should. But it seems the fan status is not being correctly initialized

El El dom, 12 nov 2023 a las 9:58, oliroche @.***> escribió:

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT7B74NQUQ3BQVXNXELYECFRTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DSMZRGI4TENI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

oliroche commented 10 months ago

So, if I update target temperature, MQTT get updated no issue.

If I ssh: pymadoka -a F0:B3:1E:D4:EC:E2 set-fan-speed HIGH HIGH (with pymadoka-mqtt running)

I correctly get: {"cooling_fan_speed": « HIGH", "heating_fan_speed": « HIGH"}

I get in MQTT explore, I see no update. If I ctrl C on the pymadoka-mqtt & relaunch, then MQTT gets updated. From there, all the update through SSH show in the MQTT. However, as soon as I set:

madoka/F0_B3_1E_D4_EC_E2/fan_speed/set to LOW for example, I get: ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3> in pymadoka-mqtt log, and then no more updates to the fan topic.

Le 12 nov. 2023 à 10:51, Manuel Durán @.***> a écrit :

It seems the controller does not have a fan status for the cooling mode and the code assumes it always exists.

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L99

I don’t have a mqtt setup myself. Can you check if the cooling_fan_speed is being reported in the status or fan topic? From what I see in the code, it should. But it seems the fan status is not being correctly initialized

El El dom, 12 nov 2023 a las 9:58, oliroche @.***> escribió:

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT7B74NQUQ3BQVXNXELYECFRTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DSMZRGI4TENI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807075209, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ4H7KI6THDQNO2C4YLJT7LYECLYTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA3TKMRQHE. You are receiving this because you authored the thread.

mduran80 commented 10 months ago

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L213

I think that uppercase MEDIUM can be the culprit. Try to replace it with MID

El El dom, 12 nov 2023 a las 11:14, oliroche @.***> escribió:

So, if I update target temperature, MQTT get updated no issue.

If I ssh: pymadoka -a F0:B3:1E:D4:EC:E2 set-fan-speed HIGH HIGH (with pymadoka-mqtt running)

I correctly get: {"cooling_fan_speed": « HIGH", "heating_fan_speed": « HIGH"}

I get in MQTT explore, I see no update. If I ctrl C on the pymadoka-mqtt & relaunch, then MQTT gets updated. From there, all the update through SSH show in the MQTT. However, as soon as I set:

madoka/F0_B3_1E_D4_EC_E2/fan_speed/set to LOW for example, I get: ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3> in pymadoka-mqtt log, and then no more updates to the fan topic.

Le 12 nov. 2023 à 10:51, Manuel Durán @.***> a écrit :

It seems the controller does not have a fan status for the cooling mode and the code assumes it always exists.

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L99

I don’t have a mqtt setup myself. Can you check if the cooling_fan_speed is being reported in the status or fan topic? From what I see in the code, it should. But it seems the fan status is not being correctly initialized

El El dom, 12 nov 2023 a las 9:58, oliroche @.***> escribió:

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AFK3CT7B74NQUQ3BQVXNXELYECFRTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DSMZRGI4TENI>

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub < https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807075209>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AJ4H7KI6THDQNO2C4YLJT7LYECLYTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA3TKMRQHE>.

You are receiving this because you authored the thread.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807080685, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT7D3TAUCKDLTYRMTN3YECORLAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DANRYGU . You are receiving this because you commented.Message ID: @.***>

oliroche commented 10 months ago

Where should I replace? I use « MID » when I try to change the topic. You mean I shall change in MQTT.py?

Le 12 nov. 2023 à 11:20, Manuel Durán @.***> a écrit :

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L213

I think that uppercase MEDIUM can be the culprit. Try to replace it with MID

El El dom, 12 nov 2023 a las 11:14, oliroche @.***> escribió:

So, if I update target temperature, MQTT get updated no issue.

If I ssh: pymadoka -a F0:B3:1E:D4:EC:E2 set-fan-speed HIGH HIGH (with pymadoka-mqtt running)

I correctly get: {"cooling_fan_speed": « HIGH", "heating_fan_speed": « HIGH"}

I get in MQTT explore, I see no update. If I ctrl C on the pymadoka-mqtt & relaunch, then MQTT gets updated. From there, all the update through SSH show in the MQTT. However, as soon as I set:

madoka/F0_B3_1E_D4_EC_E2/fan_speed/set to LOW for example, I get: ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3> in pymadoka-mqtt log, and then no more updates to the fan topic.

Le 12 nov. 2023 à 10:51, Manuel Durán @.***> a écrit :

It seems the controller does not have a fan status for the cooling mode and the code assumes it always exists.

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L99

I don’t have a mqtt setup myself. Can you check if the cooling_fan_speed is being reported in the status or fan topic? From what I see in the code, it should. But it seems the fan status is not being correctly initialized

El El dom, 12 nov 2023 a las 9:58, oliroche @.***> escribió:

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AFK3CT7B74NQUQ3BQVXNXELYECFRTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DSMZRGI4TENI>

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub < https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807075209>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AJ4H7KI6THDQNO2C4YLJT7LYECLYTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA3TKMRQHE>.

You are receiving this because you authored the thread.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807080685, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT7D3TAUCKDLTYRMTN3YECORLAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DANRYGU . You are receiving this because you commented.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807082284, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ4H7KKZRU56IVJMZU3LEJDYECPF3AVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DEMRYGQ. You are receiving this because you authored the thread.

mduran80 commented 10 months ago

Yes, update the file mqtt.py and replace MEDIUM with MID and check if that works. If so, i will pish a new version of pymadoka with the fix.

El El dom, 12 nov 2023 a las 11:23, oliroche @.***> escribió:

Where should I replace? I use « MID » when I try to change the topic. You mean I shall change in MQTT.py?

Le 12 nov. 2023 à 11:20, Manuel Durán @.***> a écrit :

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L213

I think that uppercase MEDIUM can be the culprit. Try to replace it with MID

El El dom, 12 nov 2023 a las 11:14, oliroche @.***> escribió:

So, if I update target temperature, MQTT get updated no issue.

If I ssh: pymadoka -a F0:B3:1E:D4:EC:E2 set-fan-speed HIGH HIGH (with pymadoka-mqtt running)

I correctly get: {"cooling_fan_speed": « HIGH", "heating_fan_speed": « HIGH"}

I get in MQTT explore, I see no update. If I ctrl C on the pymadoka-mqtt & relaunch, then MQTT gets updated. From there, all the update through SSH show in the MQTT. However, as soon as I set:

madoka/F0_B3_1E_D4_EC_E2/fan_speed/set to LOW for example, I get: ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3> in pymadoka-mqtt log, and then no more updates to the fan topic.

Le 12 nov. 2023 à 10:51, Manuel Durán @.***> a écrit :

It seems the controller does not have a fan status for the cooling mode and the code assumes it always exists.

https://github.com/mduran80/pymadoka/blob/4486d9f3d2891d94ea23980d698f2326c691b6aa/pymadoka/mqtt.py#L99

I don’t have a mqtt setup myself. Can you check if the cooling_fan_speed is being reported in the status or fan topic? From what I see in the code, it should. But it seems the fan status is not being correctly initialized

El El dom, 12 nov 2023 a las 9:58, oliroche @.***> escribió:

Amazing piece of code, still trying to understand the issue, however:

When I try to update the fan-speed from MQTT, I get "ERROR:root:Could not update operation mode: <FanSpeedEnum.LOW: 1>". It specifically seems to break when I enter 'MID'. pymadoka works perfect on the command line.

Here is what I get:

/usr/local/lib/python3.10/dist-packages/pymadoka/connection.py:173: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead. self.client.set_disconnected_callback(self.on_disconnect) ERROR:pymadoka.mqtt:Operation cancelled : ERROR:root:Could not update operation mode: 'NoneType' object has no attribute 'cooling_fan_speed' ERROR:root:Could not update operation mode: <FanSpeedEnum.MID: 3>

Any clue? Cheers, Olivier.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AFK3CT7B74NQUQ3BQVXNXELYECFRTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DSMZRGI4TENI>

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub < https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807075209>,

or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AJ4H7KI6THDQNO2C4YLJT7LYECLYTAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA3TKMRQHE>.

You are receiving this because you authored the thread.

— Reply to this email directly, view it on GitHub < https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807080685>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AFK3CT7D3TAUCKDLTYRMTN3YECORLAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DANRYGU>

. You are receiving this because you commented.Message ID: @.***>

— Reply to this email directly, view it on GitHub < https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807082284>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AJ4H7KKZRU56IVJMZU3LEJDYECPF3AVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DEMRYGQ>.

You are receiving this because you authored the thread.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1807083270, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT6YZYF6FIQ6ANTKRDDYECPR3AVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGA4DGMRXGA . You are receiving this because you commented.Message ID: @.***>

oliroche commented 9 months ago

Tested with no luck, will try again in a few days.

mduran80 commented 9 months ago

I realized it is not easy to test because HA downloads pymadoka package and it will never contain your code. I will push a version this weekend and will let you know so you can test (bumping the pymadoka dependency version)

El El mar, 21 nov 2023 a las 2:31, oliroche @.***> escribió:

Tested with no luck, will try again in a few days.

— Reply to this email directly, view it on GitHub https://github.com/mduran80/pymadoka/issues/18#issuecomment-1820070791, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK3CT46LPRCUDVE32EVOX3YFP77DAVCNFSM6AAAAAA7H3WRRWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRQGA3TANZZGE . You are receiving this because you commented.Message ID: @.***>