Skip to content

Conversation

@jonathanm3
Copy link
Contributor

@jonathanm3 jonathanm3 commented Jan 3, 2026

Support for the PNI CT-36 PRO https://www.mypni.co.uk/catalog/product/view/id/9357/s/smart-thermostat-pni-ct36-pro-wireless-wifi-2-4ghz-tuyasmart-app-internet-control-winter-summer-regime-for-heating-plants/
Product id: qgrid1yqzkhmi7ua
Product name: ETOP-HT-CH-CT36 PRO-33E1

Basically this thermostat is like the etop_ht_thermostat.yaml but with an added entity to select heat or cold mode.

When in cold mode the active workstate is still "heating" this is also the case in the Tuya app, since the device does not have cooling work state (id3)

Some logging:
{
"result": {
"model": "{"modelId":"etlm5g","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power3","attribute":"5"},"name":"开关","typeSpec":{"type":"bool"}},{"abilityId":2,"accessMode":"rw","code":"mode","description":"","extensions":{"iconName":"icon-a_nav_function","attribute":"132"},"name":"模式","typeSpec":{"type":"enum","range":["manual","eco","program"]}},{"abilityId":3,"accessMode":"ro","code":"work_state","description":"","extensions":{"attribute":"128"},"name":"状态","typeSpec":{"type":"enum","range":["idle","heating","window_opened"]}},{"abilityId":8,"accessMode":"rw","code":"window_check","description":"","extensions":{"iconName":"icon-dp_shake"},"name":"开窗检测","typeSpec":{"type":"bool"}},{"abilityId":10,"accessMode":"rw","code":"frost","description":"","extensions":{"iconName":"icon-chushuang"},"name":"防霜冻功能","typeSpec":{"type":"bool"}},{"abilityId":16,"accessMode":"rw","code":"temp_set","description":"","extensions":{"iconName":"icon-dp_temp","trigger":"direct"},"name":"设置温度","typeSpec":{"type":"value","max":350,"min":50,"scale":1,"step":5,"unit":"℃"}},{"abilityId":19,"accessMode":"rw","code":"upper_temp","description":"","extensions":{"iconName":"icon-dp_c"},"name":"设置温度上限","typeSpec":{"type":"value","max":800,"min":50,"scale":1,"step":5,"unit":"℃"}},{"abilityId":24,"accessMode":"ro","code":"temp_current","description":"","extensions":{"iconName":"icon-wendu","trigger":"direct"},"name":"当前温度","typeSpec":{"type":"value","max":1000,"min":0,"scale":1,"step":1,"unit":"℃"}},{"abilityId":26,"accessMode":"rw","code":"lower_temp","description":"","extensions":{"iconName":"icon-dp_c"},"name":"设置温度下限","typeSpec":{"type":"value","max":500,"min":50,"scale":1,"step":5,"unit":"℃"}},{"abilityId":27,"accessMode":"rw","code":"temp_correction","description":"","extensions":{"iconName":"icon-wendu1"},"name":"温度校准","typeSpec":{"type":"value","max":80,"min":-80,"scale":1,"step":1,"unit":""}},{"abilityId":37,"accessMode":"rw","code":"week_program2","description":"一周每日可设置6段时间,包括开始时间和温度。每段时间4个字节组成,一周一共647=168个字节。 每段时间4个字节中,前两个字节为开始时间小时,后两个字节为温度(含小数)。比如6:30分开始温度为35.0摄氏度,即06 1e 01 5e,06 1e对应时间点为6:30,;01 5e转换为十进制为350,即温度设置为35.0;如果设置温度不带小数,则不需要扩大10倍传,正常传就可以;例如6:30 35°C;发数据 06 1e 02 03;如果后台配置成4段定时则447=112字节","extensions":{"iconName":"icon-icon-test6"},"name":"周程序","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":39,"accessMode":"rw","code":"factory_reset","description":"","extensions":{"iconName":"icon-icon-test12"},"name":"恢复出厂设置","typeSpec":{"type":"bool"}},{"abilityId":40,"accessMode":"rw","code":"child_lock","description":"","extensions":{"iconName":"icon-dp_lock","attribute":"4"},"name":"童锁","typeSpec":{"type":"bool"}},{"abilityId":45,"accessMode":"ro","code":"fault","description":"","extensions":{"iconName":"icon-dp_notice","scope":"fault"},"name":"故障告警","typeSpec":{"type":"bitmap","label":["high_protect","low_protect","int_sensor","ext_sensor","battary_low","device_offline"],"maxlen":6}},{"abilityId":101,"accessMode":"rw","code":"dead_zone","description":"","name":"死域","typeSpec":{"type":"value","max":60,"min":1,"scale":1,"step":1,"unit":"C"}},{"abilityId":102,"accessMode":"rw","code":"heat_cold","description":"","name":"冷热模式","typeSpec":{"type":"enum","range":["heat","cold"]}}]}]}"
},

updated based on feedback
@jonathanm3
Copy link
Contributor Author

Updated the yaml based on the provided feedback

- Kept cool/heat as a config option, as it is probably an installation configuration, not something you can switch between at runtime.
- When set to cool, make the climate use cool/cooling instead of heat/heating

PR make-all#4240
@make-all make-all merged commit 174016e into make-all:main Jan 4, 2026
4 checks passed
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in Tuya Local Jan 4, 2026
make-all added a commit that referenced this pull request Jan 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants