Zipato rgbw2 zwave light bulb erratic behavior

Tags: #<Tag:0x00007f4346d6b128> #<Tag:0x00007f4346d6b038>

Hi there - I am having severe issues in controlling a zipato RGBW2 light bulb - it behaves erratically: I set a color, and the bulb does not act, or it acts in a wild, unpredictable manner.

Z-wave side everything seems to be OK, and all commands are sent, received, etc. ok.

From my tests, it looks like it’s the mapping that is not really friendly.

The few Zipato docs hint at the bulb having 5 channels (one each for R, G, B, one for warm white, and one for cool white). Openhab exposes an HSV control, a dimmer, and a switch.

From my tests, the switch acts on the whole bulb, while the dimmer’s function is vaguely related to the cool/warm bulb, but only in certain color conditions. The HSV, on the other side, only works when the dimmer assumes certain values. The whole bulb also reacts differently according to the order you send commands: dimmer=0 and then HSV(0,100,100) produces warm red, while HSV(0,100,100) and then dimmer=0 produces cool white.

It’s really confusing.

Anyone that has the same issues and / or that has solved them?

TIA,

Paolo

I am guessing this is the device?
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/237

The channels in the database initially came from an xml file generated by using information provided by the device. Sometimes newer firmware adds features and we need a new database entry. The configuration entries come from the official documentation if we can locate it.

Thanks for the reply,

Ah! Then I think that the issue may be with Opehab not recognizing the model correctly (or the model not presenting itself correctly): from the user docs the RGBW2 seems to be different from the RGBW (RGBW2 manual: https://www.zipato.com/wp-content/uploads/2017/04/rgbw2-Zipato-RGBW-gen2-Bulb-User-Manual-Z-Wave-v1.3.pdf RGBW manual: https://www.zipato.com/wp-content/uploads/2015/09/rgbwe27zw-Zipato-RGBW-Bulb-User-Manual-v1.1.pdf) - for example, the RGBW2 doesn’t seem to have all of the config options.

I tried locating any extra documentation, but only found an explanation of the internals of the bulb only here on vesternet’s site (URL: /pages/apnt-91-using-the-zipato-rgbw-bulb-in-vera), and it was about the RGBW (sorry for the split bu I am allowed only 2 links per post)

I would be really, really glad if I can be of help in any way: I have the device at home, and can perform tests, collect logs, etc, if you think it might be useful…

TIA,

Paolo

Posting the xml file for that node from the zwave directory under userdata might be helpful. It shows the data direct from your device.

Will do as soon as I get home. Thanks!

1 Like

Here it is - sorry for not uploading it, apparently, as anew user, I’m not allowed to.

<node>
  <homeId>0xea1d4871</homeId>
  <nodeId>11</nodeId>
  <version>4</version>
  <manufacturer>0x131</manufacturer>
  <deviceId>0x3</deviceId>
  <deviceType>0x2</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
        <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
        <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
        <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
        <commandClass>COMMAND_CLASS_VERSION</commandClass>
        <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
        <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
        <commandClass>COMMAND_CLASS_SWITCH_COLOR</commandClass>
        <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
        <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
        <commandClass>COMMAND_CLASS_SWITCH_ALL</commandClass>
        <commandClass>COMMAND_CLASS_SECURITY</commandClass>
        <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
        <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
        <entry>
              <int>1</int>
              <associationGroup>
                    <index>1</index>
                    <maxNodes>0</maxNodes>
                    <associations/>
              </associationGroup>
        </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
        <entry>
              <int>0</int>
              <endPoint>
                    <deviceClass>
                          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
                          <genericDeviceClass>GENERIC_TYPE_SWITCH_MULTILEVEL</genericDeviceClass>
                          <specificDeviceClass>SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL</specificDeviceClass>
                    </deviceClass>
                    <endpointId>0</endpointId>
                    <secureCommandClasses/>
                    <supportedCommandClasses class="concurrent-hash-map">
                          <entry>
                                <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
                                <COMMAND__CLASS__ASSOCIATION__GRP__INFO>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <autoSubscribeGroups/>
                                </COMMAND__CLASS__ASSOCIATION__GRP__INFO>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
                                <COMMAND__CLASS__CONFIGURATION>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <configParameters>
                                            <entry>
                                                  <int>2</int>
                                                  <configurationParameter>
                                                        <index>2</index>
                                                        <size>1</size>
                                                        <value>0</value>
                                                        <readOnly>false</readOnly>
                                                        <writeOnly>false</writeOnly>
                                                  </configurationParameter>
                                            </entry>
                                      </configParameters>
                                </COMMAND__CLASS__CONFIGURATION>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
                                <COMMAND__CLASS__NO__OPERATION>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                </COMMAND__CLASS__NO__OPERATION>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
                                <COMMAND__CLASS__POWERLEVEL>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <powerLevel>0</powerLevel>
                                      <powerTimeout>0</powerTimeout>
                                </COMMAND__CLASS__POWERLEVEL>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_SECURITY</commandClass>
                                <COMMAND__CLASS__SECURITY>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                </COMMAND__CLASS__SECURITY>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_BASIC</commandClass>
                                <COMMAND__CLASS__BASIC>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <isGetSupported>true</isGetSupported>
                                </COMMAND__CLASS__BASIC>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
                                <COMMAND__CLASS__DEVICE__RESET__LOCALLY>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                </COMMAND__CLASS__DEVICE__RESET__LOCALLY>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
                                <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                      <initSerialNumber>false</initSerialNumber>
                                      <deviceManufacturer>305</deviceManufacturer>
                                      <deviceType>2</deviceType>
                                      <deviceId>3</deviceId>
                                </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
                                <COMMAND__CLASS__SWITCH__BINARY>
                                      <version>0</version>
                                      <instances>0</instances>
                                      <control>false</control>
                                      <versionSupported>0</versionSupported>
                                      <isGetSupported>true</isGetSupported>
                                </COMMAND__CLASS__SWITCH__BINARY>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
                                <multiLevelSwitchCommandClass>
                                      <version>2</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                      <isGetSupported>true</isGetSupported>
                                </multiLevelSwitchCommandClass>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_SWITCH_ALL</commandClass>
                                <COMMAND__CLASS__SWITCH__ALL>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <isGetSupported>true</isGetSupported>
                                      <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
                                </COMMAND__CLASS__SWITCH__ALL>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
                                <COMMAND__CLASS__ASSOCIATION>
                                      <version>2</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                      <maxGroups>1</maxGroups>
                                </COMMAND__CLASS__ASSOCIATION>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
                                <COMMAND__CLASS__ZWAVEPLUS__INFO>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                      <zwPlusVersion>1</zwPlusVersion>
                                      <zwPlusRole>ROLE_TYPE_SLAVE_ALWAYS_ON</zwPlusRole>
                                      <zwPlusNodeType>NODE_TYPE_ZWAVEPLUS_NODE</zwPlusNodeType>
                                      <isGetSupported>true</isGetSupported>
                                </COMMAND__CLASS__ZWAVEPLUS__INFO>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_VERSION</commandClass>
                                <COMMAND__CLASS__VERSION>
                                      <version>2</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                      <libraryType>LIB_SLAVE_ENHANCED</libraryType>
                                      <protocolVersion>4.38</protocolVersion>
                                      <applicationVersion>2.26</applicationVersion>
                                      <hardwareVersion>255</hardwareVersion>
                                </COMMAND__CLASS__VERSION>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_SWITCH_COLOR</commandClass>
                                <COMMAND__CLASS__SWITCH__COLOR>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>1</versionSupported>
                                      <supportedColors>
                                            <colorType>BLUE</colorType>
                                            <colorType>RED</colorType>
                                            <colorType>GREEN</colorType>
                                            <colorType>COLD_WHITE</colorType>
                                            <colorType>WARM_WHITE</colorType>
                                      </supportedColors>
                                      <refreshList/>
                                      <colorMap>
                                            <entry>
                                                  <colorType>BLUE</colorType>
                                                  <int>0</int>
                                            </entry>
                                            <entry>
                                                  <colorType>RED</colorType>
                                                  <int>25</int>
                                            </entry>
                                            <entry>
                                                  <colorType>GREEN</colorType>
                                                  <int>0</int>
                                            </entry>
                                            <entry>
                                                  <colorType>COLD_WHITE</colorType>
                                                  <int>0</int>
                                            </entry>
                                            <entry>
                                                  <colorType>WARM_WHITE</colorType>
                                                  <int>0</int>
                                            </entry>
                                      </colorMap>
                                      <isGetSupported>true</isGetSupported>
                                </COMMAND__CLASS__SWITCH__COLOR>
                          </entry>
                          <entry>
                                <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
                                <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
                                      <version>1</version>
                                      <instances>1</instances>
                                      <control>false</control>
                                      <versionSupported>2</versionSupported>
                                </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
                          </entry>
                    </supportedCommandClasses>
              </endPoint>
        </entry>
  </endpoints>
  <nodeNeighbors>
        <int>1</int>
        <int>2</int>
        <int>3</int>
        <int>6</int>
        <int>18</int>
        <int>19</int>
  </nodeNeighbors>
  <lastReceived>2019-09-30 00:39:45.144 UTC</lastReceived>
</node>

Your device is a little different than the one I linked to above.
It is actually this one.
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/619

The 1.2 manual is there but you reference a 1.3 version. It might be worthwhile to compare.

1.3 manual is here: https://www.zipato.com/wp-content/uploads/2017/04/rgbw2-Zipato-RGBW-gen2-Bulb-User-Manual-Z-Wave-v1.3.pdf

Only difference is the addition of the missing config options

Configuration option 3 is used to adjust strobe light pulse count. [...]
Configuration option 4 is used to enable random strobe pulse colors. Values range are 0(turn off) or 1(turn on). [...]
Configuration option 255 is used to reset bulb to factory settings (write only).

To me it looks like the 1.2 manual was incomplete, and they made another version.

I’d say this does not really help very much with the erratic behavior I’m seeing.

From the XML I’m more worried about the colormap section - it looks like it’s true that they have 5 channels, and I’m a little worried that OpenHab’s HSV-to-RGBW converter could have issues in handling them. If you think it can be helpful, and can point me to the code, I could have a look at it and devise some tests I could do locally…

Any other help I can give?

Perhaps if we import your xml file it will help sort things out. I am currently at work in east coast of US

Updated device xml & configuration, Requested review.
Next is to wait for the weekly export to GitHub & then the snapshot build of the binding.

Hi - any news on this? Any way I can help e.g. with testing?

TIA

The binding has been updated.The easiest way to update the binding is to use the manual install script.

@Bruce_Osborne and @dr.falko:
Did you figure out how to get the Zipato bulb 2 working?
Colour picker and dimmer works, but the colour temperature is acting strangely.
It does not influence colour temperature really and the slider jumps back to zero after setting a new value.

Rgds Stefan

I assume so. That version of openHAB are you running? There have been many releases over the past 8 months. i doubt you are having the exact same issue even if symptoms are similar.