Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge πŸŒ‰, get rid of your proprietary Zigbee bridges πŸ”¨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
11.91k stars 1.66k forks source link

[Saswell SEA801-Zigbee/SEA802-Zigbee] Please add support for weekly schedule #7080

Closed soeren-a closed 3 years ago

soeren-a commented 3 years ago

Please add support for weekly schedule settings for the already supported Saswell SEA801-Zigbee/SEA802-Zigbee radiator valve.

What happened

With the current implementation there is no way to change or set the weekly schedule of the device. This is possible for other Tuya radiator valves but not for this one. There is no way to set the schedule on the valve.

Debug info

Zigbee2MQTT version: Adapter hardware: CC2538 Adapter firmware version:

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

soeren-a commented 3 years ago

It would be great if you could add the ability to change / adjust the weekly schedule. Thanks.

JohnRabbit1 commented 3 years ago

I have eceived this thing yesterday and have made the following for the schedule.

What you can do is the following: Topic: zigbee2mqtt/yourdevice/set Payload: see attachment

thermostaatjson.txt dayofweek 1-7, 1=sunday transitionTime: minutes after midnight

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

kr0ner commented 3 years ago

I have eceived this thing yesterday and have made the following for the schedule.

What you can do is the following: Topic: zigbee2mqtt/yourdevice/set Payload: see attachment

thermostaatjson.txt dayofweek 1-7, 1=sunday transitionTime: minutes after midnight

Did this really work for you? I've tried it with the SEA802 and it does not seem to do anything :/

JohnRabbit1 commented 3 years ago

Yes sure it works. I have a couple of 801/802 thermostats here and programmed all of them that way. If you are using nodered: I have attached a little flow wich does the trick for a complete week. flows.txt Rename flows.txt to flows.json (I cannot upload a json file)

kr0ner commented 3 years ago

Yes sure it works. I have a couple of 801/802 thermostats here and programmed all of them that way. If you are using nodered: I have attached a little flow wich does the trick for a complete week. flows.txt Rename flows.txt to flows.json (I cannot upload a json file)

That is good to know :) thanks for the hints πŸ‘

@JohnRabbit1 : seems that (at least for me) the week starts on monday, that's why I did not see anything ^^ offset by +1

Appart from that your solution works. Thank you :)

machv commented 2 years ago

Thank you for this tip. Maybe it can be added to the documentation page for this TRV?

And BTW is there any way to get currently configured schedule from TRV back?

I tried to send MQTT message to /get with payload {"weekly_schedule": ""} but it didn't work.

In device file (https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/saswell.js) I noticed that in fromZigbee section is tuya_thermostat_weekly_schedule, but I am not sure whether it is actually working.

Chekedaudau commented 2 years ago

Is there any chance to put this scheduler config in the gui of zigbee2mqtt?

maz3max commented 2 years ago

Is there any chance to put this scheduler config in the gui of zigbee2mqtt?

I would really appreciate this as well! Also, I took a look inside the code and wonder if the device can actually sync time? It uses ignore_tuya_set_time which suggests that is doesn't get the time but I might be wrong.

Do you know more? @drzony @Koenkk

drzony commented 2 years ago

@maz3max Time setting is handled by a separate event https://github.com/Koenkk/zigbee-herdsman-converters/blob/28f1f8d4cb600fbeaa9432bb3df65a332c38f4c7/devices/saswell.js#L31

maz3max commented 2 years ago

@maz3max Time setting is handled by a separate event https://github.com/Koenkk/zigbee-herdsman-converters/blob/28f1f8d4cb600fbeaa9432bb3df65a332c38f4c7/devices/saswell.js#L31

Ahh, thanks for clarifying!

kr0ner commented 2 years ago

A good alternative might be https://github.com/nielsfaber/scheduler-card I initially modified it so that it creates a scheduling JSON based on GUI input and sends it to the devices via MQTT -> zigbee2mqtt. Then I went back and let the scheduler-component manage everything from Home Assistant.

Chekedaudau commented 2 years ago

A good alternative might be https://github.com/nielsfaber/scheduler-card I initially modified it so that it creates a scheduling JSON based on GUI input and sends it to the devices via MQTT -> zigbee2mqtt. Then I went back and let the scheduler-component manage everything from Home Assistant.

The advantage for me with a scheduler direct on the radiators would be that it would even work if home assistant or zigbee2mqtt is not available for whatever reasons. There are other TuYa radiators where this config is possible in zigbee2mqtt. For example https://www.zigbee2mqtt.io/devices/TS0601_thermostat.html

geigervibe commented 2 years ago

I tried to set more than 4 transitions per day but without luck.

I got the following error in the logs and I wonder, if this is really a limitation of device or if the z2m-integration is limited:

Zigbee2MQTT:error 2021-11-09 09:12:06: Publish 'set' 'weekly_schedule' to 'zb_thermostat_t2' failed: 'Error: Too more transitions provided. Provided: 6 but supports only 6 for device zb_thermostat_t2'

when I publishing the following:

{
  "weekly_schedule": {
    "2": {
      "dayofweek": 2,
      "mode": 1,
      "numoftrans": 6,
      "transitions": [
        {
          "heatSetpoint": "15.5",
          "transitionTime": 480
        },
        {
          "heatSetpoint": "9.0",
          "transitionTime": 540
        },
        {
          "heatSetpoint": "25.0",
          "transitionTime": 600
        },
        {
          "heatSetpoint": "20.5",
          "transitionTime": 660
        },
        {
          "heatSetpoint": "22.5",
          "transitionTime": 670
        },
        {
          "heatSetpoint": "7.5",
          "transitionTime": 720
        }
      ]
    }
  }
}

Has somebody an idea about this?

kr0ner commented 2 years ago

I tried to set more than 4 transitions per day but without luck.

I got the following error in the logs and I wonder, if this is really a limitation of device or if the z2m-integration is limited:

Zigbee2MQTT:error 2021-11-09 09:12:06: Publish 'set' 'weekly_schedule' to 'zb_thermostat_t2' failed: 'Error: Too more transitions provided. Provided: 6 but supports only 6 for device zb_thermostat_t2'

when I publishing the following:

{
  "weekly_schedule": {
    "2": {
      "dayofweek": 2,
      "mode": 1,
      "numoftrans": 6,
      "transitions": [
        {
          "heatSetpoint": "15.5",
          "transitionTime": 480
        },
        {
          "heatSetpoint": "9.0",
          "transitionTime": 540
        },
        {
          "heatSetpoint": "25.0",
          "transitionTime": 600
        },
        {
          "heatSetpoint": "20.5",
          "transitionTime": 660
        },
        {
          "heatSetpoint": "22.5",
          "transitionTime": 670
        },
        {
          "heatSetpoint": "7.5",
          "transitionTime": 720
        }
      ]
    }
  }
}

Has somebody an idea about this?

It always has 4 slots. If you provide e.g. 2, 3 and 4 will be set to 2;)

drzony commented 2 years ago

@geigervibe The log message is incorrect, the device supports only 4 slots

geigervibe commented 2 years ago

Thanks for clarification... While I was googling for it, I saw some examples of more than 4 slots for other thermostats. So I was unsafe about this model. Thanks...

iksrd commented 2 years ago

I have a similar problem. I send the schedule, but nothing happens. Tell me what I'm doing wrong

{ "weekly_schedule": { "1": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "2": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "3": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "4": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "5": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "6": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] }, "7": { "dayofweek": 7, "mode": 1, "numoftrans": 4, "transitions": [ { "heatSetpoint": "21", "transitionTime": 240 }, { "heatSetpoint": "22", "transitionTime": 480 }, { "heatSetpoint": "22", "transitionTime": 1080 }, { "heatSetpoint": "21", "transitionTime": 1320 } ] } } }

kr0ner commented 2 years ago

I have a similar problem. I send the schedule, but nothing happens. Tell me what I'm doing wrong

"dayofweek": 7 Copy & Paste error πŸ˜…

gomble commented 2 years ago

hello did someone find a solution ? Will this be in the gui in the future ?

hannah52 commented 2 years ago

hello did someone find a solution ? Will this be in the gui in the future ?

You could try proposed solution. In my case I can set only 3 days max at a time . Thus I put 3 days msg + 3 days msg +1 day msg into zigbee2mqtt/[device Friendly Name] topic.

I suggest you to try with 1 day of week and check if schedule works for you.

But it looks like something was broken in 1.22.2 release. Now scheduler applies with time offset. I think it's better to use 1.22.0 or 1.22.1

JohnRabbit1 commented 2 years ago

Hi, Yesterday, I tried to change my weekly schedule in version 1.22.2. Yes you are right: something has changed. The days are shifted somehow. Previously day 1 was monday. Now day 1 is tuesday. And so on. day 7 is monday. I don't have problems to set 7 days in one time.

gomble commented 2 years ago

yes the same problem. Is it not possible to configure this on the gui ?

JohnRabbit1 commented 2 years ago

No, not at this moment. I program the device in node-red with z2m node. It is a simple JSON structure which is injected in a z2m node.

KardinalReusen commented 2 years ago

I have eceived this thing yesterday and have made the following for the schedule.

What you can do is the following: Topic: zigbee2mqtt/yourdevice/set Payload: see attachment

thermostaatjson.txt dayofweek 1-7, 1=sunday transitionTime: minutes after midnight

Is it possible to deactivate / delete the weekly schedule of the device instead of changing it? And how can I do it?

JohnRabbit1 commented 2 years ago

You can set system_mode to off. -------- Oorspronkelijk bericht --------Van: KardinalReusen @.> Datum: 04-10-2022 12:29 (GMT+01:00) Aan: Koenkk/zigbee2mqtt @.> Cc: JohnRabbit1 @.>, Mention @.> Onderwerp: Re: [Koenkk/zigbee2mqtt] [Saswell SEA801-Zigbee/SEA802-Zigbee] Please add support for weekly schedule (#7080)

I have eceived this thing yesterday and have made the following for the schedule. What you can do is the following: Topic: zigbee2mqtt/yourdevice/set Payload: see attachment thermostaatjson.txt dayofweek 1-7, 1=sunday transitionTime: minutes after midnight

Is it possible to deactivate / delete the weekly schedule of the device instead of changing it? And how can I do it?

β€”Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

KardinalReusen commented 2 years ago

I would prefer operating in system_mode auto (for being able to regulate the temperature) without having a built-in schedule because it is disturbing the settings I set in HA manually . Is that possible, too?

JohnRabbit1 commented 2 years ago

I am not familiar with HA. But what you can try is the following: there is a button on the device with tekst: auto/manu. Select manu: you will disable the built-in schedule. HA can change settings then. Never tried that. Reason fort hat is that I want all my devices operate independent from the automation system. In my case: when Openhab/Nodered fails (cann’t remember when that was the case) the buit-in schedule continues. So i am using the automation system purely for programmig the devices and switching on/off

Van: KardinalReusen @.*** Verzonden: dinsdag 4 oktober 2022 14:35 Aan: Koenkk/zigbee2mqtt CC: JohnRabbit1; Mention Onderwerp: Re: [Koenkk/zigbee2mqtt] [Saswell SEA801-Zigbee/SEA802-Zigbee] Please add support for weekly schedule (#7080)

I would prefer operating in system_mode auto (for being able to regulate the temperature) without having a built-in schedule because it is disturbing the settings I set in HA manually . Is that possible, too?

β€” Reply to this email directly, view it on GitHub https://github.com/Koenkk/zigbee2mqtt/issues/7080#issuecomment-1266926755 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AUNJAKNFNVBZHQJ7MHQ232LWBQQAHANCNFSM426EV4TQ . You are receiving this because you were mentioned. https://github.com/notifications/beacon/AUNJAKIRIFGEGMQUWFBK7K3WBQQAHA5CNFSM426EV4T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJOB4JIY.gif Message ID: @.***>

KardinalReusen commented 2 years ago

I am afraid, but I don't have this button on my SEA802. I assume you have a SEA801?

KardinalReusen commented 2 years ago

Maybe I found a solution here: Link. I will try it as soon as I get home.

drzony commented 2 years ago

@KardinalReusen In Home Assistant: Auto - Based on temperature, but temperature is set based on schedule Heat - Based on temperature, no schedule Off - Idle Below is SEA802 set to maintain 20*C at all times image

JohnRabbit1 commented 2 years ago

Good to hear. You can also try this: system_mode: heat

Van: KardinalReusen @.*** Verzonden: dinsdag 4 oktober 2022 15:32 Aan: Koenkk/zigbee2mqtt CC: JohnRabbit1; Mention Onderwerp: Re: [Koenkk/zigbee2mqtt] [Saswell SEA801-Zigbee/SEA802-Zigbee] Please add support for weekly schedule (#7080)

Maybe I found a solution here: Link https://community.home-assistant.io/t/how-to-delete-factory-set-temp-schedule-from-t0l0-tuya-sea802-z01-radiator-valve/390286 . I will try it as soon as I get home.

β€” Reply to this email directly, view it on GitHub https://github.com/Koenkk/zigbee2mqtt/issues/7080#issuecomment-1267005262 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AUNJAKJ67GHGLPLUYNMVX73WBQWVXANCNFSM426EV4TQ . You are receiving this because you were mentioned. https://github.com/notifications/beacon/AUNJAKLD5CVTTB36MJJ57SLWBQWVXA5CNFSM426EV4T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJOCPOTQ.gif Message ID: @.***>

KardinalReusen commented 2 years ago

@KardinalReusen In Home Assistant: Auto - Based on temperature, but temperature is set based on schedule Heat - Based on temperature, no schedule Off - Idle Below is SEA802 set to maintain 20*C at all times image

Now I finally understand how it works! Many thanks. I will set the mode to heat.