I'm about to receive a bunch of TKB Home thermostats. It's not supported by OpenZwave yet, but I don't think it would be difficult to implement it. Anyone have done something like this?
In case of success I will share my experiences here.
Thanks!

Moderator: leecollings
Code: Select all
<CommandClass id="66">
<Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" value="Idle" />
</CommandClass>
and it is changing state to Heating according to the setpoint and thermostat. So in OZW it is working well, but it looks like there's a bug in domoticz, handling THERMOSTAT OPERATING STATE.Operating State: Idle
Dear Brucebrucez wrote: ↑Thursday 21 December 2017 11:07 Hi all!
Now I'm configuring the TZ10. Now the setpoint working well, but I have the following issue:
I have updated openzwave xml, and now I have a tz10.xml for testing.
I have added the Thermostat Operating state also.Tried with adding read-only also, but did not help.Code: Select all
<CommandClass id="66"> <Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" value="Idle" /> </CommandClass>
When I'm including the node to the network, In the log I can see:
2017-12-21 10:58:04.470 OpenZWave: Value_Added: Node: 35 (0x23), CommandClass: THERMOSTAT OPERATING STATE, Label: Operating State, Instance: 1
2017-12-21 10:58:04.471 OpenZWave: Unhandled class: 0x42 (THERMOSTAT OPERATING STATE), NodeID: 35 (0x23), Index: 0, Instance: 1
in OZW control panel, I can seeand it is changing state to Heating according to the setpoint and thermostat. So in OZW it is working well, but it looks like there's a bug in domoticz, handling THERMOSTAT OPERATING STATE.Operating State: Idle
Any idea?
Thanks!
Code: Select all
<Product type="0201" id="0501" name="TZ10.XX Wall Thermostat" config="wenzhou/tz10.xml"/>
Code: Select all
<Manufacturer id="0118" name="Wenzhou TKB Control System">
<Product type="0001" id="0001" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/>
<Product type="0001" id="0011" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/>
<Product type="0002" id="0001" name="SM103 Door/Window Sensor" config="wenzhou/sm103.xml"/>
<Product type="0002" id="0002" name="TSP01 3 in 1 PIR Motion Sensor" config="wenzhou/tsp01.xml" />
<Product type="0003" id="0002" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/>
<Product type="0003" id="0003" name="TZ56 Wall Switch On/Off" config="wenzhou/tz56.xml"/>
<Product type="0003" id="0004" name="TZ55 Wall Switch Dimmer" config="wenzhou/tz55.xml"/>
<Product type="0004" id="0002" name="TZ69 Smart energy plug in switch" config="wenzhou/tz69.xml"/>
<Product type="0311" id="0103" name="TZ69E Smart energy plug in switch" config="wenzhou/tz69.xml"/>
<Product type="0116" id="3119" name="TZ69F Smart energy plug in switch" config="wenzhou/tz69.xml"/>
<Product type="000b" id="0001" name="ST812 Flood Detector" config="everspring/st812.xml"/>
<Product type="0808" id="0808" name="TZ65 Dual Wall Dimmer" config="wenzhou/tz65d.xml"/>
<Product type="0101" id="0103" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/>
<Product type="0102" id="1020" name="TZ66D Dual Wall Switch" config="wenzhou/tz66d.xml"/>
<Product type="0202" id="0611" name="TZ67 Wall Plug Dimmer" config="wenzhou/tz67.xml"/>
<Product type="0201" id="0501" name="TZ10.XX Wall Thermostat" config="wenzhou/tz10.xml"/>
</Manufacturer>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- COMMAND_CLASS_BASIC does not respond to requests -->
<CommandClass id="32" action="remove" />
<!-- This thermostat's setpoint descriptions are 0 based -->
<CommandClass id="66">
<Value type="string" genre="user" instance="1" index="0" label="Operating State" units=" mode" value="Idle" />
</CommandClass>
<CommandClass id="67" base="0" override_precision="2" />
</Product>
Thank you for this @Brucez.brucez wrote: ↑Thursday 28 December 2017 12:48 Hi!
Of course!
I added this line to the manufacturer_specific.xml in the Wenzhou section:This is the whole section with the line included above:Code: Select all
<Product type="0201" id="0501" name="TZ10.XX Wall Thermostat" config="wenzhou/tz10.xml"/>
Then this is my tz10.xml:Code: Select all
<Manufacturer id="0118" name="Wenzhou TKB Control System"> <Product type="0001" id="0001" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/> <Product type="0001" id="0011" name="TZ88 Smart Energy Plug-in Switch" config="wenzhou/tz88.xml"/> <Product type="0002" id="0001" name="SM103 Door/Window Sensor" config="wenzhou/sm103.xml"/> <Product type="0002" id="0002" name="TSP01 3 in 1 PIR Motion Sensor" config="wenzhou/tsp01.xml" /> <Product type="0003" id="0002" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/> <Product type="0003" id="0003" name="TZ56 Wall Switch On/Off" config="wenzhou/tz56.xml"/> <Product type="0003" id="0004" name="TZ55 Wall Switch Dimmer" config="wenzhou/tz55.xml"/> <Product type="0004" id="0002" name="TZ69 Smart energy plug in switch" config="wenzhou/tz69.xml"/> <Product type="0311" id="0103" name="TZ69E Smart energy plug in switch" config="wenzhou/tz69.xml"/> <Product type="0116" id="3119" name="TZ69F Smart energy plug in switch" config="wenzhou/tz69.xml"/> <Product type="000b" id="0001" name="ST812 Flood Detector" config="everspring/st812.xml"/> <Product type="0808" id="0808" name="TZ65 Dual Wall Dimmer" config="wenzhou/tz65d.xml"/> <Product type="0101" id="0103" name="TZ68 On/Off Switch Socket" config="wenzhou/tz68.xml"/> <Product type="0102" id="1020" name="TZ66D Dual Wall Switch" config="wenzhou/tz66d.xml"/> <Product type="0202" id="0611" name="TZ67 Wall Plug Dimmer" config="wenzhou/tz67.xml"/> <Product type="0201" id="0501" name="TZ10.XX Wall Thermostat" config="wenzhou/tz10.xml"/> </Manufacturer>
This xml was copied from another thermostat device xml.Code: Select all
<?xml version="1.0" encoding="utf-8"?> <Product xmlns='http://code.google.com/p/open-zwave/'> <!-- COMMAND_CLASS_BASIC does not respond to requests --> <CommandClass id="32" action="remove" /> <!-- This thermostat's setpoint descriptions are 0 based --> <CommandClass id="66"> <Value type="string" genre="user" instance="1" index="0" label="Operating State" units=" mode" value="Idle" /> </CommandClass> <CommandClass id="67" base="0" override_precision="2" /> </Product>
After these modification, you will be able to pair the thermostat and it will be recognized by Domoticz. Thermostat operating state won't work yet. But you can create a script/blockly, to turn on the heating, when the termostat temperature is below the thermstat setpoint temperature.
Please be aware, that once you update domoticz and it contains new openzwave files, you will need to repeate the changes. But your previously included devices will reamain functional. So if you don't plan to include more of this thermostat, it's enough to modify the files once.
I will update here once I will be able to handle operating state also.
I hope it helps!
Regards,
Brucez
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
<!-- Configuration Parameters -->
<CommandClass id="112">
<Value type="list" genre="config" instance="1" index="4" label="Memory function" value="1" size="1">
<Help>
The thermostat will recover the operating mode after a power failure.
</Help>
<Item label="Disabled" value="0" />
<Item label="Enabled" value="1" />
</Value>
</CommandClass>
<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" poll_intensity="0" min="0" max="0" vindex="1" size="1">
<Item label="Off" value="0" />
<Item label="Heat" value="1" />
</Value>
<SupportedModes>
<Mode index="0" label="Off" />
<Mode index="1" label="Heat" />
</SupportedModes>
</CommandClass>
<CommandClass id="66" name="COMMAND_CLASS_THERMOSTAT_OPERATING_STATE">
<Value type="string" genre="user" instance="1" index="0" label="Operating State" value="Idle" read_only="true"/>
</CommandClass>
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT">
<Compatibility>
<OverridePrecision>2</OverridePrecision>
<Base>0</Base>
</Compatibility>
</CommandClass>
<!-- Association Groups -->
<CommandClass id="133">
<Associations num_groups="1">
<Group index="2" label="State control" max_associations="2"/>
</Associations>
</CommandClass>
</Product>
Only thing that is working for me is thermostat mode.dobber wrote: ↑Wednesday 10 July 2019 0:07 Here is a good tz10.xml I wrote.
Mode and Setpoint for heating are working in ozw 1.6 and Domoticz 4.10977 and up.
Also operating state is visible under ozw control panel.
Need to edit the files and press refresh node info under zwave. Also dont forget to allow new units to get the setpoint icon.
Code: Select all
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" base="0">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" min="5" max="35" value="20" />
</CommandClass>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<ProductExport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Id>3474</Id>
<Name>Heating Thermostat</Name>
<Brand>TKB Home</Brand>
<Identifier>TZ10.36</Identifier>
<OemVersion>HW: 1 FW: 1.00:13</OemVersion>
<HardwarePlatform>ZM5202</HardwarePlatform>
<ZWaveVersion>6.51.06</ZWaveVersion>
<LibraryType>Enhanced 232 Slave</LibraryType>
<DeviceType>Thermostat - HVAC</DeviceType>
<RoleType>Listening Sleeping Slave</RoleType>
<ManufacturerId>0x0118</ManufacturerId>
<ProductTypeId>0x0311</ProductTypeId>
<ProductId>0x0502</ProductId>
<UserIcon>0x1200</UserIcon>
<InstallerIcon>0x1202</InstallerIcon>
<SupportedCommandClasses />
<ControlledCommandClasses />
<AssociationGroups>
<AssociationGroupExport>
<Description>Z-Wave Plus Lifeline</Description>
<GroupNumber>1</GroupNumber>
<MaximumNodes>5</MaximumNodes>
</AssociationGroupExport>
</AssociationGroups>
<ConfigurationParameters>
<ConfigurationParameterExport>
<Name>Memory Function</Name>
<Description>device by default value is 1, when the value is 0, device memory function not open; when the value is 1,open device memory function.</Description>
<ParameterNumber>4</ParameterNumber>
<Size>1</Size>
<DefaultValue>0</DefaultValue>
<minValue>0</minValue>
<maxValue>1</maxValue>
</ConfigurationParameterExport>
</ConfigurationParameters>
<SupportedMultilevelSensors>
<MultilevelSensorType>
<sensor_type>Air Temperature</sensor_type>
<sensor_type_key>0x01</sensor_type_key>
</MultilevelSensorType>
</SupportedMultilevelSensors>
<ControlledMultilevelSensors />
<Supports_NWI>true</Supports_NWI>
<Supports_Explorer>true</Supports_Explorer>
<is_FLiRS>true</is_FLiRS>
</ProductExport>
Users browsing this forum: No registered users and 1 guest