Z-Wave Factfile: iBlinds v3.1

Information about specific Z-Wave devices

Moderator: leecollings

Post Reply
rrozema
Posts: 470
Joined: Thursday 26 October 2017 13:37
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Delft
Contact:

Z-Wave Factfile: iBlinds v3.1

Post by rrozema »

iBlinds v3.1 works in Domoticz with the default definitions, but there is no definition for the device's codes yet in the database. I have taken the v3.0 one and adapted it a little to make it work for v3.1.

Supplier:
HAB Home Intelligence, LLC

Website:
https://myiblinds.com/

Function:
intelligent blind motor, designed for tilting Venetian (two inch slatted-style) blinds.

Z-Wave5
No

Rebranding:
-

Device Library from http://www.pepper1.net


Manual:
https://support.myiblinds.com/wp-conten ... v3.0-1.pdf: PDF

Domoticz experience
Hardware:
+ Kit includes a long usb cable so that you can use to charge the battery while it is in the blinds, without having to take them down from the window.
- The button in the charge adapter doesn't seem to do anything in mine. Maybe mine was broken, or I just don't understand it's function, but it doesn't seem to be connected to anyhting at all if I look into the device.


Remarks:
v3.1 is not listed in my openzwave file manufacturer_specific.xml (yet): the device is however by default recognised as a single switch device, which -once it is set to sub type blinds percentage- can be used to operate the blind.

After adding the appropriate line in manufacturer_specific.xml:

Code: Select all

  <Manufacturer id="0287" name="HAB Home Intelligence LLC">
    <Product type="0003" id="000D" name="iblinds V2" config="hab/iblindsV2.xml"/>
    <Product type="0004" id="0071" name="iblinds V3" config="hab/iblindsV3.xml"/>
    <Product type="0004" id="0072" name="iblinds V3.1" config="hab/iblindsV3_1.xml"/>
  </Manufacturer>
And uploading the existing hab/iblindsV3.xml file as hab/iblindsV3_1.xml
iblindsV3_1.xml
(3.93 KiB) Downloaded 31 times
the device is properly recognized as iblinds v3.1 by HAB Home Intelligence LLC and some options are shown in the bottom.
Z-wave iblinds v3.1.JPG
Z-wave iblinds v3.1.JPG (87.11 KiB) Viewed 1492 times
One important one, 7- 'Auto Calibration' is however missing.

Configuration:
iblinds.png
iblinds.png (147 KiB) Viewed 1504 times
Devices
Only a single Light/Switch-device is shown in Domoticz. Once you set it to the proper switch type it does operate the blinds as intended, even without the proper xml file installed.

ozwcfg_0xaaaaaaa.xml sample:

Code: Select all

    <Node id="136" name="" location="" basic="4" generic="17" specific="7" roletype="7" devicetype="6656" nodetype="0" type="Motor Control Class C" listening="false" frequentListening="true" beaming="true" routing="true" max_baud_rate="100000" version="4" configrevision="0" query_stage="Complete">
        <Neighbors>1,180,46,1,8,4,48,6,0,50,8,226,116,138,83,0,90,0,0,0,0,0,0,0,0,0,0,0,0</Neighbors>
        <Manufacturer id="287" name="Unknown: id=0287">
            <Product type="4" id="72" name="Unknown: type=0004, id=0072">
                <MetaData />
            </Product>
        </Manufacturer>
        <CommandClasses>
            <CommandClass id="32" name="COMMAND_CLASS_BASIC">
                <Compatibility>
                    <Mapping>38</Mapping>
                </Compatibility>
                <State>
                    <CCVersion>2</CCVersion>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY">
                <Compatibility />
                <State>
                    <CCVersion>2</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>0</StaticRequests>
                </State>
                <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">
                    <Help>Turn On/Off Device</Help>
                </Value>
                <Value type="bool" genre="system" instance="1" index="1" label="Target State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False">
                    <Help>The Final State of the Switch</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="2" label="Transition Duration" units="Sec" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>How Long to Transition to new State (Values above 7620 use the devices default duration)</Help>
                </Value>
            </CommandClass>
            <CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL">
                <Compatibility />
                <State>
                    <CCVersion>4</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>0</StaticRequests>
                </State>
                <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">
                    <Help>The Current Level of the Device</Help>
                </Value>
                <Value type="button" genre="user" instance="1" index="1" label="Up" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Increase the Brightness of the Device</Help>
                </Value>
                <Value type="button" genre="user" instance="1" index="2" label="Down" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Decrease the Brightness of the Device</Help>
                </Value>
                <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">
                    <Help>Ignore the Start Level of the Device when increasing/decreasing brightness</Help>
                </Value>
                <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">
                    <Help>Start Level when Changing the Brightness of a Device</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="5" label="Dimming Duration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>Duration taken when changing the Level of a Device (Values above 7620 use the devices default duration)</Help>
                </Value>
                <Value type="byte" genre="user" instance="1" index="6" label="Step Size" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help>How Many Percent Change when incrementing/decrementing the Level of a Device</Help>
                </Value>
                <Value type="button" genre="user" instance="1" index="7" label="Inc" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Increment the Level of a Device</Help>
                </Value>
                <Value type="button" genre="user" instance="1" index="8" label="Dec" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Decrement the Level of a Device</Help>
                </Value>
                <Value type="byte" genre="system" instance="1" index="9" label="Target Value" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help></Help>
                </Value>
            </CommandClass>
            <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>6</StaticRequests>
                </State>
                <Instance index="1" />
                <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="2">
                    <Help>ZWave+ Version Supported on the Device</Help>
                </Value>
                <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="6656">
                    <Help>Icon File to use for the Installer Application</Help>
                </Value>
                <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="6656">
                    <Help>Icon File to use for the User Application</Help>
                </Value>
            </CommandClass>
            <CommandClass id="108" name="COMMAND_CLASS_SUPERVISION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC">
                <Compatibility />
                <State>
                    <CCVersion>2</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="int" genre="system" instance="1" index="0" label="Loaded Config Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>Revision of the Config file currently loaded</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="1" label="Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>Revision of the Config file on the File System</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="2" label="Latest Available Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>Latest Revision of the Config file available for download</Help>
                </Value>
                <Value type="string" genre="system" instance="1" index="4" label="Serial Number" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="804b50fffec0ba8b">
                    <Help>Device Serial Number</Help>
                </Value>
            </CommandClass>
            <CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <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">
                    <Help>Output RF PowerLevel</Help>
                    <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">
                    <Help>Timeout till the PowerLevel is reset to Normal</Help>
                </Value>
                <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">
                    <Help>Apply the Output PowerLevel and Timeout Values</Help>
                </Value>
                <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">
                    <Help>Node to Perform a test against</Help>
                </Value>
                <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">
                    <Help>PowerLevel to use for the Test</Help>
                    <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">
                    <Help>How Many Messages to send to the Node for the Test</Help>
                </Value>
                <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">
                    <Help>Perform a PowerLevel Test against the a Node</Help>
                </Value>
                <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">
                    <Help>Get the results of the latest PowerLevel Test against a Node</Help>
                </Value>
                <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">
                    <Help>The Current Status of the last PowerNode Test Executed</Help>
                    <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">
                    <Help>Number of Messages successfully Acked by the Target Node</Help>
                </Value>
            </CommandClass>
            <CommandClass id="128" name="COMMAND_CLASS_BATTERY">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="100">
                    <Help>Current Battery Level</Help>
                </Value>
            </CommandClass>
            <CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
                <Associations num_groups="1">
                    <Group index="1" max_associations="5" label="Group 1" auto="true" multiInstance="true">
                        <Node id="1" />
                    </Group>
                </Associations>
            </CommandClass>
            <CommandClass id="134" name="COMMAND_CLASS_VERSION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <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">
                    <Help>Z-Wave Library Version</Help>
                </Value>
                <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="7.12">
                    <Help>Z-Wave Protocol Version</Help>
                </Value>
                <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="3.12">
                    <Help>Application Version</Help>
                </Value>
            </CommandClass>
            <CommandClass id="135" name="COMMAND_CLASS_INDICATOR">
                <Compatibility />
                <State>
                    <CCVersion>3</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="list" genre="user" instance="1" index="80" label="Indicator: Node Identify" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="0">
                    <Help>This indicator is used to identify the node.</Help>
                    <Item label="Off" value="0" />
                    <Item label="Toogle" value="3" />
                </Value>
                <Value type="byte" genre="config" instance="1" index="2819" label="Indicator: Node Identify: On/Off Period" units="Seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help></Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="2820" label="Indicator: Node Identify: On/Off Cycles" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help></Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="2821" label="Indicator: Node Identify: On time within an On/Off period" units="Seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help></Help>
                </Value>
            </CommandClass>
            <CommandClass id="142" name="COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
                <Associations num_groups="1">
                    <Group index="1" max_associations="5" label="Group 1" auto="true" multiInstance="true">
                        <Node id="1" />
                    </Group>
                </Associations>
            </CommandClass>
        </CommandClasses>
    </Node>
Conclusion
Physical installation is pretty easy: just follow the 11 steps in the manual. There was not much room to pass the 3 wires for the lifting spools further away from the end by the iblinds motor. In the end I passed the 2nd wire under the iBlinds motor, and those for the 3rd and 4th lifting spool over the iblinds motor. All 3 could not be passed properly without pulling them over/against the iblinds motor, which makes lifting and lowering the blinds a bit harder, but it works. We'll see how long it takes to wear through the wires or the motor house (whichever comes first).
The only thing that I was a bit unsure of was when to do the calibration. I just installed the blinds, and then it turned out the motor starts the calibration process automatically the very first time you issue a level-command to the motor.

I have not physically built it into my blinds yet, so no experience there yet.
Kit v3.1 is not officially supported yet: it is not a know device. Using z-wave's default node information however it can be properly controlled. Options can however not be set without the proper entry in the xml files.


----------------------------------------------------------------------------------------------------

Anyone got the supporting xml file for the iBlinds zwave device already?

In my domoticz it's not recognised yet, so I'll try and build my own file to get it properly recognised, but if someone already got an xml file.....
Last edited by rrozema on Sunday 26 June 2022 18:44, edited 3 times in total.
lost
Posts: 616
Joined: Thursday 10 November 2016 9:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave Factfile: iBlinds v3.1

Post by lost »

rrozema wrote: Tuesday 21 June 2022 14:42 Anyone got the supporting xml file for the iBlinds zwave device already?

In my domoticz it's not recognised yet, so I'll try and build my own file to get it properly recognised, but if someone already got an xml file.....
You may also check from OZW github if this wasn't added recently:
https://github.com/OpenZWave/open-zwave

If that's not the case & you're able to build a working one, would be nice to make a pull request there!
rrozema
Posts: 470
Joined: Thursday 26 October 2017 13:37
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Delft
Contact:

Re: Z-Wave Factfile: iBlinds v3.1

Post by rrozema »

I found that IB2.0 and IB3.0 do have an entry with manufacturer hab, but mine is 3.1, with a type code of 72 whereas the code in those is 71. So I'll take the 3.0 xml file and point to that. Just need to restart my domoticz, then re-include the device to see if it works now. But I didn't have the time yet. (after a restart of my Domoticz I need to wait for roughly an hour before ozw is fully initialized again...)

I have added my xml file plus the information to add in the manufacturer_specific.xml in the opening post. The only thing missing is the parameter to set auto calibration mode. I have added this now too, but I haven't been able to test it yet.
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests