Sinope Line Voltage Thermostats

Can you tell me the firmware version of your plug ?

Voila
0x00000012

OK mine are Firmware: 0x00000009
go to GitHub - claudegel/sinope-zha at new-plug
and pick the file switch.py
Your plug should appear as Quirk: switch.SinopeTechnologiesNewSwitch
or “class”: “switch.SinopeTechnologiesNewSwitch”

let me know if it is working

Ok
I try that and come back.

Ok I have a problem.

After copying the new file I could not remove the switch so I had to revert the change so I could remove the switch.
Then I re-installed the new switch.pi and rebooted. Got this error

2023-01-13 16:13:23.726 DEBUG (MainThread) [zhaquirks] Loading custom quirks from /config/zhaquirks
2023-01-13 16:13:23.732 DEBUG (MainThread) [zhaquirks] Loading custom quirks module light
2023-01-13 16:13:23.748 DEBUG (MainThread) [zhaquirks] Loading custom quirks module sensor
2023-01-13 16:13:23.760 DEBUG (MainThread) [zhaquirks] Loading custom quirks module switch
2023-01-13 16:13:23.774 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry SONOFF Zigbee 3.0 USB Dongle Plus V2 for zha
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 382, in async_setup
result = await component.async_setup_entry(hass, self)
File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 100, in async_setup_entry
setup_quirks(config)
File "/usr/local/lib/python3.10/site-packages/zhaquirks/__init__.py", line 409, in setup
importer.find_module(modname).load_module(modname)

Wait, something is wrong with my switch.py.
I check that…

It was an operator error.

It works ok now. Energy consumed is realistic now.
Thanks

How is reported your SP2600ZB
Quirk: switch.SinopeTechnologiesNewSwitch ?

Yes:
Quirk: switch.SinopeTechnologiesNewSwitch

Ok I’ll push a PR to ZHA device handler. Thanks

You did all the work.
Thank

Hi, I compared again the value in Manage Zigbee Device in Home Assistant between a G1 and G2 version and didn’t find. Could it be possibile the attribute to change is in cluster not shown in Home Assistant? Did you had time to look at it? I can provide you a log if you need, just ask. Thank you

It’s the second display cluster/attribute that must be changed but I’m still unable to find it when sniffing the line on the Gt130. There are some cluster not identified that I must test to see what they are used for.

Somewhat off-topic question: does anyone know what the circled letter ‘A’ is? This is a picture of my TH1400ZB. It doesn’t appear in any of the pictures in the manual. I’m guessing it means “Air” mode (as opposed to “Floor”, but that doesn’t seem like it should need to be displayed permanently. (Firmware is 0x00010601, if that matters.)

sinope-A

You can try to switch it to floor mode in Neviweb or if you are in ZHA try cluster
0xff01 0x0105 airFloorMode Air: 1, floor: 2
You will see

Thank you. It does seem to represent “Air” mode. Odd that they would dedicate part of the display for that.

I was resisting switching to Floor mode (I simply chose it from the thermostat menu itself) because I was unsure what other effects it would have. And sure enough, it did have an effect: During the time the thermostat was in floor mode, the current temperature was returned to HA as -557.8F. Which wouldn’t really matter, but it pollutes the history graphs I’ve been watching while the thermostat is new. The graph for today is very distorted. Oops! :slight_smile:

@DaRouss , Got it. The cluster for second display configuration is, on a TH1123ZB
0xff01 0x0012
0 = auto, 1 = setpoint and 2 = outside temp
so for yours as you have another option of no selection I suppose that it is
0 = no option, 1 = auto, 2 = setpoint and 3 = outside temp
I dont’t know if that cluster is available in ZHA as it is manufacturer specific but I’ll add it in climate.py on sinope-zha so you’ll be able to test. Check branch

@claudegel I can now see the attribute. On my Th1124ZB, the value is 0 and on my TH1124ZB-G2, the value is 2.

I tried to change it from 2 to 0. But the attribute doesn’t want to save. I looked at the log. I can saw " WriteAttributesStatusRecord(status=<Status.INVALID_DATA_TYPE: 141>, attrid=0x0012)]) "

> [0x7C95:1:0xff01] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=True, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), manufacturer=4508, tsn=130, command_id=<GeneralCommand.Write_Attributes: 2>, *direction=<Direction.Server_to_Client: 0>, *is_reply=False)
[0x7C95:1:0xff01] Sending request: Write_Attributes(attributes=[Attribute(attrid=0x0012, value=TypeValue(type=uint8_t, value=0))])
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x7C95), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=167, profile_id=260, cluster_id=65281, data=Serialized[b'\x1c\x9c\x11\x82\x04\x8d\x12\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=204, rssi=-49)
[0x7C95:1:0xff01] Received ZCL frame: b'\x1c\x9c\x11\x82\x04\x8d\x12\x00'
[0x7C95:1:0xff01] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=True, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), manufacturer=4508, tsn=130, command_id=4, *direction=<Direction.Client_to_Server: 1>, *is_reply=True)
[0x7C95:1:0xff01] Decoded ZCL frame: SinopeTechnologiesManufacturerCluster:Write_Attributes_rsp(status_records=[WriteAttributesStatusRecord(status=<Status.INVALID_DATA_TYPE: 141>, attrid=0x0012)])
[0x7C95](TH1124ZB-G2): set: False for attr: 18 to cluster: 65281 for ept: 1 - res: Write_Attributes_rsp(status_records=[WriteAttributesStatusRecord(status=<Status.INVALID_DATA_TYPE: 141>, attrid=0x0012)])

Did you try to set it to 1 instead of 0

@claudegel Yes, I tried 1, 2 and 0. The same result. :frowning: But a least we have some values.

I’ll have to find out what is this error message. You can try to see if that option is available from the keyboard of your thermostat.
Push the lower button on your thermostat until the setpoint goes to the minimum and keep pushing until the display change. You should see the different option of your device. to navigate between those option push simultaneously the two button to change to the next option. to change the value push the upper or lower button and then push the two button to accept the new value. At the last option the thermostat will revert to it’s normal display. Hoping that the option you need will be available there.