HeatIt z-water

Hi Guys,

I have purchased HeatIt Z-Water unit - the description is here: http://manuals-backend.z-wave.info/make.php?lang=en&sku=Z-Water&cert=ZC10-19036400

These are basically a bunch of switches (10) with some analogue inputs wrapped in a box with the z-wire interface. Unfortunately, the HA only recognises one device that triggers one switch. It seems that if I will send through this device some parameters, I will be able to set different switches into the on/off state. Did anyone have any experience with such devices?

I have in the Z-Wave config the following:

    <Node id="7" name="" location="" basic="4" generic="16" specific="6" roletype="5" devicetype="5376" nodetype="0" type="Valve Open Close" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" secured="true" query_stage="Complete">
            <Manufacturer id="19b" name="Thermo-Floor (Heatit)">
                    <Product type="3" id="20a" name="Unknown: type=0003, id=020a" />
            </Manufacturer>
            <CommandClasses>
                    <CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" mapping="37">
                            <Instance index="1" />
                    </CommandClass>
                    <CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" issecured="true">
                            <Instance index="1" />
                            <Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                    </CommandClass>
                    <CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="1">
                            <Instance index="1" />
                            <Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="button" genre="user" instance="1" index="1" label="Bright" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                            <Value type="button" genre="user" instance="1" index="2" label="Dim" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                            <Value type="bool" genre="system" instance="1" index="3" label="Ignore Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
                            <Value type="byte" genre="system" instance="1" index="4" label="Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                    </CommandClass>
                    <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" issecured="true">
                            <Instance index="1" />
                    </CommandClass>
                    <CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="2" innif="true">
                            <Instance index="1" />
                            <Instance index="2" endpoint="1" />
                            <Instance index="3" endpoint="2" />
                            <Instance index="4" endpoint="3" />
                            <Instance index="5" endpoint="4" />
                            <Instance index="6" endpoint="5" />
                            <Instance index="7" endpoint="7" />
                            <Instance index="8" endpoint="8" />
                            <Instance index="9" endpoint="9" />
                            <Instance index="10" endpoint="10" />
                            <Instance index="11" endpoint="11" />
                            <Instance index="12" endpoint="12" />
                            <Instance index="13" endpoint="13" />
                            <Instance index="14" endpoint="14" />
                            <Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
                            <Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="5376" />
                            <Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="5376" />
                            <Value type="byte" genre="system" instance="2" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="2" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="2" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="3" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="3" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="3" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="4" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="4" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="4" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="5" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="5" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="5" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="6" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="6" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="6" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="7" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="7" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="7" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="8" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="8" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="8" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="9" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="9" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />

                            <Value type="short" genre="system" instance="9" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="10" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="10" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="10" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="11" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="11" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="11" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="12" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="12" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="12" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="13" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="13" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="13" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="byte" genre="system" instance="14" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="short" genre="system" instance="14" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="short" genre="system" instance="14" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                    </CommandClass>
                    <CommandClass id="96" name="COMMAND_CLASS_MULTI_INSTANCE/CHANNEL" version="4" request_flags="1" issecured="true">
                            <Instance index="1" />
                    </CommandClass>
                    <CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="5" issecured="true">
                            <Instance index="1" />
                    </CommandClass>
                    <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="2" issecured="true">
                            <Instance index="1" />
                    </CommandClass>
                    <CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" issecured="true">
                            <Instance index="1" />
                            <Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                                    <Item label="Normal" value="0" />
                                    <Item label="-1dB" value="1" />
                                    <Item label="-2dB" value="2" />
                                    <Item label="-3dB" value="3" />
                                    <Item label="-4dB" value="4" />
                                    <Item label="-5dB" value="5" />
                                    <Item label="-6dB" value="6" />
                                    <Item label="-7dB" value="7" />
                                    <Item label="-8dB" value="8" />
                                    <Item label="-9dB" value="9" />
                            </Value>
                            <Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                            <Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                            <Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                                    <Item label="Normal" value="0" />
                                    <Item label="-1dB" value="1" />
                                    <Item label="-2dB" value="2" />
                                    <Item label="-3dB" value="3" />
                                    <Item label="-4dB" value="4" />
                                    <Item label="-5dB" value="5" />
                                    <Item label="-6dB" value="6" />
                                    <Item label="-7dB" value="7" />
                                    <Item label="-8dB" value="8" />
                                    <Item label="-9dB" value="9" />
                            </Value>
                            <Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                            <Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                            <Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                            <Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                                    <Item label="Failed" value="0" />
                                    <Item label="Success" value="1" />
                                    <Item label="In Progress" value="2" />
                            </Value>
                            <Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
                    </CommandClass>
                    <CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="2" issecured="true">
                            <Instance index="1" />
                            <Associations num_groups="5">
                                    <Group index="1" max_associations="5" label="Group 1" auto="true" multiInstance="true">
                                            <Node id="1" />
                                    </Group>
                                    <Group index="2" max_associations="5" label="Group 2" auto="false" multiInstance="true" />
                                    <Group index="3" max_associations="5" label="Group 3" auto="false" multiInstance="true" />
                                    <Group index="4" max_associations="5" label="Group 4" auto="false" multiInstance="true" />
                                    <Group index="5" max_associations="5" label="Group 5" auto="false" multiInstance="true" />
                            </Associations>
                    </CommandClass>
                    <CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="2" issecured="true">
                            <Instance index="1" />
                            <Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
                            <Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="5.03" />
                            <Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="2.01" />
                    </CommandClass>
                    <CommandClass id="142" name="COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION" version="1" request_flags="4" issecured="true">
                            <Instance index="1" />
                            <Associations num_groups="5">
                                    <Group index="1" max_associations="5" label="Group 1" auto="true" multiInstance="true">
                                            <Node id="1" />
                                    </Group>
                                    <Group index="2" max_associations="5" label="Group 2" auto="false" multiInstance="true" />
                                    <Group index="3" max_associations="5" label="Group 3" auto="false" multiInstance="true" />
                                    <Group index="4" max_associations="5" label="Group 4" auto="false" multiInstance="true" />
                                    <Group index="5" max_associations="5" label="Group 5" auto="false" multiInstance="true" />
                            </Associations>
                    </CommandClass>
                    <CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" innif="true">
                            <Instance index="1" />
                            <Instance index="2" endpoint="1" />
                            <Instance index="3" endpoint="2" />
                            <Instance index="4" endpoint="3" />
                            <Instance index="5" endpoint="4" />
                            <Instance index="6" endpoint="5" />
                            <Instance index="7" endpoint="7" />
                            <Instance index="8" endpoint="8" />
                            <Instance index="9" endpoint="9" />
                            <Instance index="10" endpoint="10" />
                            <Instance index="11" endpoint="11" />
                            <Instance index="12" endpoint="12" />
                            <Instance index="13" endpoint="13" />
                            <Instance index="14" endpoint="14" />
                            <Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
                            <Value type="bool" genre="system" instance="2" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="3" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="4" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="5" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="6" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="7" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="8" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="9" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="10" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="11" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="12" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="13" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                            <Value type="bool" genre="system" instance="14" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
                    </CommandClass>
            </CommandClasses>
    </Node>

Regards

I found that I have to add entries to the binary switch class, but still struggling with how to pass the endpoint parameter to the switch. I have added:

			<Value type="bool" genre="user" instance="2" endpoint="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			<Value type="bool" genre="user" instance="3" endpoint="2" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			<Value type="bool" genre="user" instance="4" endpoint="3" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />

to the COMMAND_CLASS_SWITCH_BINARY command class and that resulted in additional switches added to the HA. The only problem it doesn’t trigger - the “endpoint” parameter is not a correct one. Any help appreciated over here.

Regards

For the HeatIT support, they suggested to update the z-wave configuration for the following:

I applied th command classes, but te switches are still unavailable. Is anyone is familiar with the zwave configuration file and how it links into HASS?

Cheers

Hi,

I have the same device and tried to setup it up too with home assistant. I am using a mqtt broker and openzwave-allinone package. The admin page finds one switch (instead of all ten). When using the openwave control panel (https://hub.docker.com/r/ruimarinho/openzwave) it finds all 0 switches but have no clue how to tranfser this information to the openzwave docker (xmls or configs whatever) to make this work. Did you get any further with this?

Short edit: this device has worked for me for several years on openhab version 2.5

Hi,

I bought the ZIF5030 from LogicGroup, https://logic-group.com/product/zif5030/?lang=en, which should be the same product as mentioned in this topic.

I’m having the same problem with a HASS Core 0.117.1. I can see only 1 switch, the root endpoint. Was this issue ever resolved ?

Best regards,
Tommy