Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support request Sinope TH1123ZB & TH1124ZB #2104

Closed
the-speedmax opened this issue Nov 21, 2019 · 120 comments · Fixed by #6827
Closed

Support request Sinope TH1123ZB & TH1124ZB #2104

the-speedmax opened this issue Nov 21, 2019 · 120 comments · Fixed by #6827

Comments

@the-speedmax
Copy link

the-speedmax commented Nov 21, 2019

Hello,
I already own a Conbee II. I'm looking to add some thermostat to my setup.
Do you know if this model can work with deconz? Sinope TH1123ZB & TH1124ZB
These are Zigbee.
https://www.sinopetech.com/en/product/smart-thermostat-for-electric-heating-3000-w-zigbee/?setLang=en
Tks for your help!

Device
Screenshots

@Ackshiel
Copy link

Adding supporting information.
General
image
Thermostat
image
Rest of thermostat info
image
Temp measurement
image
simple metering
image
electrical measurement
image

@TheHerb007
Copy link

Looking to get one of these, can I then assume this model is supported? Thanks!

@Ackshiel
Copy link

Ackshiel commented Apr 7, 2020

Looking to get one of these, can I then assume this model is supported? Thanks!

I was too impatient to wait for this to be supported, so I ended up going to zigbee2mqtt and it is working very well for me.

@the-speedmax
Copy link
Author

I did the same. Zigbee2mqtt.
I have 5 of them. Working fine.

@ghost
Copy link

ghost commented Apr 7, 2020

In the end, I did choose ZHA as I didn't knew if the TH1123ZB was properly supported or not by conbee/deconz. I wish it was.

The HUSBZB-1 have some stability issue from time to time. So the day deconz support these thermostats I think I will switch. Else I will end up with zigbee2mqtt like everyone else.

@stale
Copy link

stale bot commented Jun 26, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 26, 2020
@stale stale bot closed this as completed Jul 3, 2020
@SwoopX SwoopX reopened this Jul 3, 2020
@stale stale bot removed the stale label Jul 3, 2020
@SwoopX SwoopX self-assigned this Jul 3, 2020
@SwoopX
Copy link
Collaborator

SwoopX commented Jul 19, 2020

Closing this as device is now supported with .79 beta.

@SwoopX SwoopX closed this as completed Jul 19, 2020
@MRobi1
Copy link

MRobi1 commented Sep 24, 2020

I currently have 15 of these with zigbee2mqtt. Thinking of moving to Deconz. Wondering if outside temperature display is supported here?

@SwoopX
Copy link
Collaborator

SwoopX commented Sep 24, 2020

How do you mean that? Sure, it's possible to further improve support if someone is willing to compile and test updated versions :)

@MRobi1
Copy link

MRobi1 commented Sep 25, 2020

How do you mean that? Sure, it's possible to further improve support if someone is willing to compile and test updated versions :)

The Sinope TH1123ZB & TH1124ZB support displaying the outside temperature on the 2nd line of the display.

On zigbee2mqtt you publish the outside temp value to zigbee2mqtt/<FRIENDLY_NAME>/set/thermostat_outdoor_temperature so I've got an automation setup whenever the outside temp changes to publish it to the thermostats.
There's also a PR for Home Assistant to add a send_outside_temperature service for these devices in ZHA.
So it'd be great to get support added to Deconz as well. How exactly that would be accomplished is way beyond me though :)

@SwoopX
Copy link
Collaborator

SwoopX commented Sep 25, 2020

I took a look over at z2m and gee, the device has more capabilities than you can deduce from the screenshots. I guess most, if not all can be integrated, but that involves quite some extensions on the API. Apparently, there were also some clusters skipped in the screenshots.

If you're using HA, then that's the most uncomfortable combination. You cannot directly test my changes once ready but have to wait for us to merge the code, promote it to stable and then hope for HA folks to update as well (which is not in our hands).

@amritk
Copy link

amritk commented Oct 21, 2020

How do you mean that? Sure, it's possible to further improve support if someone is willing to compile and test updated versions :)

I will order a few right now, I have the conbee 2. Will let you know

@MRobi1
Copy link

MRobi1 commented Dec 1, 2020

@SwoopX Just thought I'd check in on this. I see some changes have been merged in Enhancements and fixes, but not exactly sure what those are. Has the ability to set outdoor temp on these devices been added? If so, how would one send the temperature reading to the device?
Thanks!

@amritk
Copy link

amritk commented Dec 1, 2020

So I have been testing them out, for setting the temp and everything they work great. Would anyone know how to change the time on them?

@TheHerb007
Copy link

TheHerb007 commented Dec 1, 2020 via email

@SwoopX
Copy link
Collaborator

SwoopX commented Dec 1, 2020

Time snyc currently requires creation of a corresponding time resource for a device and explicit whitelisting. Wouldn't be much of a problem to do that.

The Sinope specific cluster attributes have not been added, as I haven't found the time yet. However, once added, the extra functionality should be configurable via deconz GUI quite easily. Also, there's been put quite some work in the thermostats lately, so the Sinope's could probably participate in that as well.

@SwoopX SwoopX mentioned this issue Dec 2, 2020
@gyzod
Copy link

gyzod commented Feb 21, 2021

I use TH1123ZB with deCONZ ConBee II and Openhab3 deCONZ binding. Everything works fine. But, is it possible to show to outdoor temperature on the device ?

Thanks

@BabaIsYou
Copy link
Contributor

BabaIsYou commented Apr 28, 2022 via email

@MattL0

This comment was marked as off-topic.

@BabaIsYou
Copy link
Contributor

BabaIsYou commented Apr 29, 2022

I understsand that there is an api to dim the mini panel light (or turn it off) ?

On this model there is a "backlight" attribute (cl:0x201, at:0x0402). With two values : 0 = On demand (activated when you press a button) or 1 = Always ON for Sinope terminology, Sensing mode for other brand. On Sinope thermostat the diming is automatic, adjusting with environnemental light (you can test it it's real).

But it does not exist a config/backlight item that can be addressed by API. Then the proposal of @Smanar was to use another config item like "config/duration" to do the job. Then adding something like this in DDF file should work :
` {

      "name": "config/duration",

      "Use it for Backlight configuration.\n0 = On demand\n1 = Always ON",

      "refresh.interval": 300,

      "read": {

        "at": "0x0402",

        "cl": "0x0201",

        "ep": 1,

        "fn": "zcl",

        "mf": "0x119c"

      },

      "parse": {

        "at": "0x0402",

        "cl": "0x0201",

        "ep": 1,

        "eval": "Item.val = Attr.val;",

        "fn": "zcl",

        "mf": "0x119c"

      },

      "write": {

        "at": "0x0402", 

        "cl": "0x0201", 

        "dt": "0x30", 

        "ep": 1, "mf": "0x119c", 

        "eval": "Item.val", 

        "fn": "zcl"

        },

       "default": 1

    },

`

But I never had it to work ... Even if cURL return a success the value for backlight does not change

$ curl -H 'Content-Type: application/json' -X PUT -d '{"duration": 0}' http://127.0.0.1/api/API Kkey/sensors/18/config
[{"success":{"/sensors/18/config/duration":0}}]

@Smanar
Copy link
Collaborator

Smanar commented Apr 29, 2022

Lol, sorry, I have checked the code again, and this setting don't support yet the "write stuff".

But If you want to make test, I m seing a "config/ledindication", that are a bool, so true or false (and the name look more for a "display setting")
And this one support the "write stuff"

@BabaIsYou
Copy link
Contributor

BabaIsYou commented Apr 29, 2022

Changed DDF to
{ "name": "config/ledindication", "description": "Use it for Backlight configuration.\nfalse = On demand\ntrue = Always ON", "refresh.interval": 300, "read": { "at": "0x0402", "cl": "0x0201", "ep": 1, "fn": "zcl", "mf": "0x119c" }, "write": { "at": "0x0402", "cl": "0x0201", "dt": "0x30", "ep": 1, "eval": "Item.val", "fn": "zcl", "mf": "0x119c" }, "parse": { "at": "0x0402", "cl": "0x0201", "ep": 1, "eval": "Item.val = Attr.val;", "fn": "zcl", "mf": "0x119c" }, "default": true },
Can change the state of config/ledindication :

`$curl -H 'Content-Type: application/json' -X PUT -d '{"ledindication": false}' http://127.0.0.1/api/API Key/sensors/18/config

[{"success":{"/sensors/18/config/ledindication":false}}]

$curl http://127.0.0.1/api/API Key/sensors/18

{"config":{"externalsensortemp":950,"heatsetpoint":1800,"ledindication":false,"mode":null,"offset":0,"on":true,"reachable":true,"schedule":{},"schedule_on":false,"temp_to_display":950},"ep":1,"etag":"57e463a1b077aca95b90cc46d9b7813c","lastannounced":null,"lastseen":"2022-04-29T16:02Z","manufacturername":"Sinope Technologies","modelid":"TH1124ZB","name":"Thermostat Salon","state":{"lastupdated":"2022-04-29T16:01:33.758","on":false,"temperature":2134},"swversion":"2007","type":"ZHAThermostat","uniqueid":"50:0b:91:40:00:02:ca:1c-01-0201"}`

and it changes the state of Backlight accordingly (sometimes with a short delay but it works!).

@MattL0
Copy link

MattL0 commented Apr 30, 2022

Changed DDF to { "name": "config/ledindication", "description": "Use it for Backlight configuration.\nfalse = On demand\ntrue = Always ON", "refresh.interval": 300, "read": { "at": "0x0402", "cl": "0x0201", "ep": 1, "fn": "zcl", "mf": "0x119c" }, "write": { "at": "0x0402", "cl": "0x0201", "dt": "0x30", "ep": 1, "eval": "Item.val", "fn": "zcl", "mf": "0x119c" }, "parse": { "at": "0x0402", "cl": "0x0201", "ep": 1, "eval": "Item.val = Attr.val;", "fn": "zcl", "mf": "0x119c" }, "default": true }, Can change the state of config/ledindication :

`$curl -H 'Content-Type: application/json' -X PUT -d '{"ledindication": false}' http://127.0.0.1/api/API Key/sensors/18/config

[{"success":{"/sensors/18/config/ledindication":false}}]

$curl http://127.0.0.1/api/API Key/sensors/18

{"config":{"externalsensortemp":950,"heatsetpoint":1800,"ledindication":false,"mode":null,"offset":0,"on":true,"reachable":true,"schedule":{},"schedule_on":false,"temp_to_display":950},"ep":1,"etag":"57e463a1b077aca95b90cc46d9b7813c","lastannounced":null,"lastseen":"2022-04-29T16:02Z","manufacturername":"Sinope Technologies","modelid":"TH1124ZB","name":"Thermostat Salon","state":{"lastupdated":"2022-04-29T16:01:33.758","on":false,"temperature":2134},"swversion":"2007","type":"ZHAThermostat","uniqueid":"50:0b:91:40:00:02:ca:1c-01-0201"}`

and it changes the state of Backlight accordingly (sometimes with a short delay but it works!).

Thanks!! Works here too. But the value seems to go back to true, then I think it works after 1-2 mins delay. I just wonder what the thermostat is doing at that time.

@MattL0
Copy link

MattL0 commented May 1, 2022

Question:

The api expose two temperature values. But they are the very same.
One is a thermostat item , another one is a subdevice temperature.

I know there are two temperature value in deconz gui, but they seems to be the same . Also I think the ddf is using the same temperature sensor if i check the subdevice json, and the item json.

This post need edit I will do that when near a computer .

@Smanar
Copy link
Collaborator

Smanar commented May 1, 2022

It s possible to remove one from the DDF.
For me it's better to remove the ZHATemprature

@MattL0
Copy link

MattL0 commented May 1, 2022

ok so this is the ddf ( it also includes the "config/ledindication" item.
I do not know how to send a pull request .
th1124zb.json.txt

@Smanar
Copy link
Collaborator

Smanar commented May 2, 2022

Done > #6002

@BabaIsYou
Copy link
Contributor

But the value seems to go back to true, then I think it works after 1-2 mins delay

Are you sure about the value coming back to true ? Mine is steady false until I'm changing it to true again.

@BabaIsYou
Copy link
Contributor

BabaIsYou commented May 2, 2022

@Smanar the same way you proposed to add the temp_to_display attributes could we add another attribute for "occupancy" ? This will be usable for other thermostat too (like Stelpro). In spite off changing the heatsetpoint value in a schedule this will enable to change only this state and allow to have different temperature for each thermostat based on Occupied Heating Setpoint (0x0014) and Unoccupied Heating Setppoint (0x0014). The thermostat will automaticaly flip to the pre-programmed value depending of the Occupancy (0x00400 on Sinope) state.

@Smanar
Copy link
Collaborator

Smanar commented May 2, 2022

But I haven't found a "config/something" to re use
You will need to edit the code like this PR #5986 to create a new one.

@BabaIsYou
Copy link
Contributor

That's what I initially thought but there already exists a read-only attribute Occupancy in general.xml (atrribut 0x0002 cluster Thermostat 0x0201). Then may be is it preferable to use another name like "room_occupancy" or something else to avoid confusion ?

@Smanar
Copy link
Collaborator

Smanar commented May 2, 2022

Config/occupied ?

You can take the one you want, the actual used list is here https://github.com/dresden-elektronik/deconz-rest-plugin/blob/master/resource.cpp#L165

@BabaIsYou
Copy link
Contributor

BabaIsYou commented May 2, 2022 via email

@MattL0
Copy link

MattL0 commented May 3, 2022

But the value seems to go back to true, then I think it works after 1-2 mins delay

Are you sure about the value coming back to true ? Mine is steady false until I'm changing it to true again.

I will check again. Maybe I sent the curl http request to many time at the beginning . So they were coming with a delay.

@BabaIsYou
Copy link
Contributor

Config/occupied ?

You can take the one you want, the actual used list is here https://github.com/dresden-elektronik/deconz-rest-plugin/blob/master/resource.cpp#L165

Well, as previously said, I'm not a C++ dev, nor a github guru ;-)
Here are the files I changed but I don't know how to change rest_sensors.cpp. I wanted to add in the same time the ability to change local_occupancy and unoccupied heat setpoint attributes via REST API.
resource.cpp
resource.h
config_local_occupancy_item.json
config_unoccupiedheatsetpoint_item.json

@Smanar
Copy link
Collaborator

Smanar commented May 3, 2022

Can try this one (have used same json file than you)

sudo apt install deconz-dev
git clone --branch sinope_4 https://github.com/Smanar/deconz-rest-plugin.git
cd deconz-rest-plugin
qmake && make -j2
sudo cp ../libde_rest_plugin.so /usr/share/deCONZ/plugins

@BabaIsYou
Copy link
Contributor

Thanks for all.
Had to do some minor corrections (typo in resource.cpp and modification in unoccupiedheatsetpoint json ... But it seems to work.
May be you will be asked to review PR #6011 ;-)

@Smanar
Copy link
Collaborator

Smanar commented May 3, 2022

But PR #6010 and #6009 are already in #6011 no ?

And I haven't the device so I can't be sure but are you sure all attributes need the manufacture number ?
It seem at least one of them is standards, not specific to sinope and can be used for future devices.

<attribute id="0x0014" name="Unoccupied Heating Setpoint" type="s16" default="0x07d0" access="rw" required="o"></attribute>

and yes, sorry for typo ^^, have just write this fastly, totally untested on my side.

@BabaIsYou
Copy link
Contributor

You're right ... Github works behind me ! ;-) I closed PR #6010 and #6009

May be you're also right with Unoccupied Heating Setpoint attribute. But I have no other thermostat plugged at this time to test it but it makes sense that is wasn't specific to Sinope. And in my first version of the generic json I hadn't add the mfc : { "schema": "resourceitem1.schema.json", "id": "config/unoccupiedheatsetpoint", "datatype": "Int16", "access": "RW", "public": true, "default": 0, "description": "Target temperature of a thermostat when local is unoccupied.", "parse": {"at": "0x0014", "cl": "0x0201", "ep": 0, "eval": "Item.val = Attr.val;", "fn": "zcl"}, "read": {"at": "0x0014", "cl": "0x0201", "ep": 0, "fn": "zcl"}, "range": [500, 3200] } but the DDF was quite empty and I forgot the write stuff. Then I decided to add all the kit, surely too much. I can delete the mfc in the PR.

Next step for me now is to try again to support Stelpro Maestro ... In a few days I think ... I have one but wanted to focus on Sinope first has it's operationnal in living room at this time ...

@Smanar
Copy link
Collaborator

Smanar commented May 4, 2022

As there is 2 PR for the same device, it s probable we have a conflict during validation, but it s easy to correct.

Next step for me now is to try again to support Stelpro Maestro

It's a thermostat too ?

@BabaIsYou
Copy link
Contributor

BabaIsYou commented May 4, 2022

You're right but I also think that it will be quite easy as it concern different attributes.

Yes, Stelpro Maestro is a set of thermostats (SMT402AD -the one I have- and ASMC402, ASMT402 ... perhaps others). I hope it won't be so difficult #5502 and that DDF will be easy to complete. Even if these models are not officialy listed in database.ccp, nor bindings.cpp ...

Difference with Sinope is in the specific attributes not located in a separate cluster, and they have a built-in humidity sensor

@BabaIsYou
Copy link
Contributor

BabaIsYou commented Oct 11, 2022 via email

@Smanar
Copy link
Collaborator

Smanar commented Oct 11, 2022

Yep, this one ? #5904

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet