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

ThermostatMode #2

Closed
Kjelljk opened this issue Mar 30, 2023 · 22 comments
Closed

ThermostatMode #2

Kjelljk opened this issue Mar 30, 2023 · 22 comments
Labels
enhancement New feature or request

Comments

@Kjelljk
Copy link

Kjelljk commented Mar 30, 2023

Hi,

Thermostat type _TZE200_4hbx5cvx

Could you add support for thermostat mode?

This parameter is located in cluster id 2:

DP ID Data Point (DP) Identifier Data Transfer Type Data Type Properties
2 Mode mode Send and Report enum Enum Value: 0, 1, 2, 3, 4
@w35l3y
Copy link
Owner

w35l3y commented Mar 30, 2023

Enum Value: 0, 1, 2, 3, 4

What each value mean ?

It should limit to these ones:
https://developer.smartthings.com/capabilities/thermostatMode

@w35l3y w35l3y added the enhancement New feature or request label Mar 31, 2023
@Kjelljk
Copy link
Author

Kjelljk commented Mar 31, 2023

I see in the description of the driver that if the driver does not recognize the device, you get at page showing the values from the cluster. Do you have a version of the driver without the profile for this termostat, so I could read out the value of the clusters I could do a live test with the device to read out enums for different modes.

@w35l3y
Copy link
Owner

w35l3y commented Mar 31, 2023

Just change the profile to Generic in the configuration.

@Kjelljk
Copy link
Author

Kjelljk commented Mar 31, 2023

Hi, thanks for the feedbak!

I have now tested my thermostat and verified some values in the cluster:

DP ID Data Point (DP) Identifier Data Transfer Type Data Type Properties Zigbee Capability  
1 Switch switch Send and Report bool   switch False: off, True: On
2 Mode mode Send and Report enum Enum Value: 0, 1, 2, 3, 4 thermostatMode 0: Manual, 1: Heat, 2: Eco
16 Set temperature temp_set Send and Report value Value Range: 5-35, Pitch: 1, Scale: 0, Unit: ℃ thermostatHeatingSetpoint Setpoint for active ThermostatMode
24 Room temperature temp_current Report Only value Value Range: 0-99, Pitch: 1, Scale: 0, Unit: ℃ temperatureMeasurement [for air sensor mode, ref. DP ID 102]  
28 Temperature correction temp_correction Send and Report value Value Range: -9-9,Pitch: 1, Scale: 0,Unit: ℃ Properties: Calibration of measured temperature  
30 Child lock child_lock Send and Report bool     False: unlocked, True: locked
101 地面温度 TempFloor Report Only value Value Range: 0-99,Pitch: 1, Scale: 0,Unit: ℃ temperatureMeasurment [for floor sensor mode, ref. DP ID 102]  
102 传感器类型 SensorType Send and Report enum Enum Value: 0, 1, 2 Properties: Selecting the sensor to be used 00: Air sensor / Internal, 01: Floor sensor / External, 02: Max guard / regulator on air temperature and limiter with floor sensor
103 启动温差 TempActivate Send and Report value Value Range: 1-9,Pitch: 1, Scale: 0,Unit: ℃ Properties: “Turn” hysteresis for the regulator  
104 负载 LoadStatus Report Only bool   thermostatOperatingState False: idle, True: heat
105 编程 TempProgram Send and Report raw      
106 防开窗 OpenWindow Send and Report bool   Properties: setting for activate the open window function/detection (dont heat if window is open)  
107 高温保护 MaxProtectTemper Send and Report value Value Range: 20-95, Pitch: 1, Scale: 0, Unit: ℃ Properties: setting maximum thermostatHeatingSetpoint  
199 产品序列号 SN Report Only string      

@Kjelljk
Copy link
Author

Kjelljk commented Mar 31, 2023

Correction DP ID 16:
It looks like the thermostat changes mode form Heat or Eco to Manual (DP ID 2) if new setpoint (DP ID 16) is sendt. This means that id 16 is thermostatHeatingSetpoint for Manual-mode.

Changing the setpoint for Heat and Eco-mode can be done manual in settings on the thermostat. These values / settings doesn't look to be exposed in the cluster.

@Kjelljk
Copy link
Author

Kjelljk commented Mar 31, 2023

Additional for DP ID 2:
I could only change mode to 0, 1 and 2 manualy on the thermostat. With the enum child i tryed to send 3 an 4.

3: is Auto. I think this can be linked to the tempProg in dp 105? https://support.tuya.com/en/help/_detail/K9hrg7u24j2ow

4: Change the temperature setpoint to 18, without any mode beeing indicated in the display. I now think this is Eco? The symbol for 1 and 2 is a house. I think this is home and away.

Updated table for DP 2
0: Manual
1: Home or Heat
2: Away
3: Program with referance to DP 105
4: Eco

@w35l3y
Copy link
Owner

w35l3y commented Apr 1, 2023

3: Program with referance to DP 105
4: Eco

So you were able to send 3 and 4, but you are not sure what they do. Is that right?

I can start adding only 0,1,2

@Kjelljk
Copy link
Author

Kjelljk commented Apr 1, 2023

Hi, I was able to send all 0-4. I have verified 3 during the last 12 hours. This is a program. The thermostat change the setpoint automaticly during the day.

With referanse to the thermostatMode spesification, the modes are:
0: Manual
1: Heat
2: Away
3: Auto
4: Eco

Please add them all.

Could you also add the thermostatOperatingState DP 104?

@w35l3y w35l3y closed this as completed in 5c89104 Apr 1, 2023
@w35l3y
Copy link
Owner

w35l3y commented Apr 1, 2023

You may test it with beta version.

https://bestow-regional.api.smartthings.com/invite/VbMb856WP8lB

@Kjelljk
Copy link
Author

Kjelljk commented Apr 1, 2023

Hi,

Now the driver have updated and I see the thermostat mode and thermostat state in parent tile in ST. The thermostat state works correct, but the thermostatmode shows "off", "heat" and "emergency" in the menu.

I tried to create a child from the generic profile, and here the thermostatmode menu and feedback is correct.

@w35l3y
Copy link
Owner

w35l3y commented Apr 1, 2023

the thermostatmode shows "off", "heat" and "emergency" in the menu.

- id: thermostatMode
version: 1
config:
values:
- key: thermostatMode.value #read
enabledValues:
- manual
- heat
- away
- auto
- eco
- custom
- key: setThermostatMode #write
enabledValues:
- manual
- heat
- away
- auto
- eco

- id: thermostatMode
version: 1
config:
values:
- key: thermostatMode.value #read
enabledValues:
- manual
- heat
- away
- auto
- eco
- custom
- key: setThermostatMode #write
enabledValues:
- manual
- heat
- away
- auto
- eco

Both profiles have the same configuration.

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

the thermostatmode shows "off", "heat" and "emergency" in the menu.

- id: thermostatMode
version: 1
config:
values:
- key: thermostatMode.value #read
enabledValues:
- manual
- heat
- away
- auto
- eco
- custom
- key: setThermostatMode #write
enabledValues:
- manual
- heat
- away
- auto
- eco

- id: thermostatMode
version: 1
config:
values:
- key: thermostatMode.value #read
enabledValues:
- manual
- heat
- away
- auto
- eco
- custom
- key: setThermostatMode #write
enabledValues:
- manual
- heat
- away
- auto
- eco

Both profiles have the same configuration.

Hi, with the v3-driver the menu is "off", "heat" and "emergency". I see in the code for the v3-version that this one is default and otherwise chosen with option "normal". The feedback also reads "manual" for enum. Im pretty sure that I use the correct version.

I have checked on both my androide and ios devise to see if it is some problem with updating the profile / data in cashe, but the menu is same on both units.

@w35l3y
Copy link
Owner

w35l3y commented Apr 2, 2023

Hi, with the v3-driver the menu is "off", "heat" and "emergency". I see in the code for the v3-version that this one is default and otherwise chosen with option "normal". The feedback also reads "manual" for enum. Im pretty sure that I use the correct version.

Screenshots are always welcome.
From the thermostatmode menu and from the menu Driver

I see in the code for the v3-version that this one is default and otherwise chosen with option "normal"

What you mean? Where did you see these values are default ?

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

Screenshot_20230402_063139_SmartThings

Screenshot_20230402_081034_SmartThings

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

Screenshot_20230402_081158_SmartThings

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

What you mean? Where did you see these values are default ?

In the code, last line:
preferences:

  • name: profile
    title: Profile
    description: "Choose the profile "
    required: true
    preferenceType: enumeration
    definition:
    options:
    normal_thermostat_v3: Normal
    normal_thermostat_v4: No floor temp
    normal_thermostat_v2: No switch
    normal_temphumi_v1: Only sensors
    generic_ef00_v1: Generic
    default: normal_thermostat_v3

Since I see the options as described in the code above, I think I'm in the v3-profile.

@w35l3y
Copy link
Owner

w35l3y commented Apr 2, 2023

  • normal_thermostat_v3: Normal
    normal_thermostat_v4: No floor temp
    normal_thermostat_v2: No switch
    normal_temphumi_v1: Only sensors
    generic_ef00_v1: Generic
    default: normal_thermostat_v3

Ih, that's the profile definition. It is right as is.
I thought you were talking about thermostatmode.

Open the menu from the upper right corner, click on Driver and take a screenshot from there.

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

Screenshot_20230402_082336_SmartThings

@w35l3y
Copy link
Owner

w35l3y commented Apr 2, 2023

I forced the driver to recognize a local device as thermostat and it listed options correctly.

I don't know why it recognized only this 3 options for you.

Probably, you will need to remove data/cache locally.
If it doesn't work, you will need support from ST.

@Kjelljk
Copy link
Author

Kjelljk commented Apr 2, 2023

Ok, thanks. I will try to remove and pair the devices again!

@Kjelljk
Copy link
Author

Kjelljk commented Apr 9, 2023

Hi, Im now back at the location of the thermostats and have reinstalled them to ST. Had them installed for 24h without them sending the cluster, but after a reboot of the thermostat they work. Now the thermostatmode is correct in my ST app :)

I have tried to make the measurement from the floor sensor "main" with the function to override DP in settings. I have sett DP for Temperature Measurement to 101, but it does not pick up the value from the floor sensor. Is this not how the DP setting is suppose to work?

Also, I use google home as human interface and home assistant for controlling my units. In Google Home the thermostat shows up as thermostat, but it is not possible to control it. The only value showing is measured temperature. In HA the thermostats does not show up as thermostats (ie. clima in HA), they show up as individual sensors - including the thermostat mode. This means that I can not control the mode from HA, only see the current mode.

Screenshot 2023-04-09 15 08 47

All capabilities necessary for HA to see it as a thermostat is included. Maybe it is the Switch that makes HA not recognize the unit as thermostat.

Have you tried the driver for devices and tested them in GH or HA?

@w35l3y
Copy link
Owner

w35l3y commented Apr 11, 2023

I have tried to make the measurement from the floor sensor "main" with the function to override DP in settings. I have sett DP for Temperature Measurement to 101, but it does not pick up the value from the floor sensor. Is this not how the DP setting is suppose to work?

DP 101 is already set for "DP for Temperature Measurement Floor" by default.
You only can use the same DP once.
If you want to invert temperature sensors in the app, then change "DP for Temperature Measurement" to 101 and "DP for Temperature Measurement Floor" to 24.

Also, I use google home as human interface and home assistant for controlling my units. In Google Home the thermostat shows up as thermostat, but it is not possible to control it. The only value showing is measured temperature. In HA the thermostats does not show up as thermostats (ie. clima in HA), they show up as individual sensors - including the thermostat mode. This means that I can not control the mode from HA, only see the current mode.

I don't know what GH and HA use to identify the device type and/or which capabilities to show or not.
You will need to figure it out.
Currently, I am using component category and deviceType "Thermostat" and ocfDeviceType "oic.d.thermostat"
But if you search and find they use something else, let me know.

What I DO know is that Alexa, GH and HA doesn't work properly with this architecture used in ST. So, everything we need to identify on those platforms, they must be in separate (virtual) devices.
And if you really want them be identified by these platforms, then use the "Generic Mode" that allows you to create child device for each datapoint you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants