Qubino module ZMNHCA OH2 problem (OH1 is OK)

The problem starts when upgraded form OH1 do OH2, the roller shutter module stop working.
The old OH1 configuration that works was:

Rollershutter   roletaPokojLewy "Pokoj lewy [%d %%]"    (rolety,roletyPietro,gPietro)           { zwave="34:0:command=switch_multilevel,invert_state=false,invert_percent=true" }

And the modula has no problems at all.

After upgrade to OH2 the Thing conf is:

Rollershutter   roletaPokojLewy "Pokoj lewy [%d %%]"    (rolety,roletyPietro,gPietro)           { channel="zwave:device:c27a85ef:node34:blinds_control1" }

According to Thing info there is no longer blinds_control (without 1 at the end).

Here is zwave.log entry when UP/DOWN action selected from UI:

root@dell:/var/log/openhab2# tail zwave.log -f |grep "NODE 34"
2017-08-10 12:09:12.050 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 34: Command received zwave:device:c27a85ef:node34:blinds_control1 --> UP
2017-08-10 12:09:12.050 [DEBUG] [erter.ZWaveMultiLevelSwitchConverter] - NODE 34: Command class SWITCH_MULTILEVEL not found when processing command on endpoint 1
2017-08-10 12:09:12.050 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 34: No messages returned from converter
2017-08-10 12:09:13.714 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 34: Command received zwave:device:c27a85ef:node34:blinds_control1 --> DOWN
2017-08-10 12:09:13.714 [DEBUG] [erter.ZWaveMultiLevelSwitchConverter] - NODE 34: Command class SWITCH_MULTILEVEL not found when processing command on endpoint 1
2017-08-10 12:09:13.714 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 34: No messages returned from converter

So it looks like the configuration or module info XML file is wrong.

Here is current module info from OH2:

Z-Wave Node 34: ZMNHCA Flush Shutter
ZMNHCA Flush Shutter
Flush Shutter
Status: ONLINE
zwave_class_basic ROUTING_SLAVE
zwave_class_generic MULTILEVEL_SWITCH
zwave_frequent false
zwave_neighbours 17,22,32,35,43,55,58,62,65,67,69,72,80
zwave_version 1.12
zwave_listening true
zwave_deviceid 2
zwave_nodeid 34
zwave_routing true
zwave_beaming true
zwave_class_specific MOTOR_CONTROL_CLASS_C
zwave_manufacturer 345
zwave_devicetype 3

Channels
radio_button_unchecked
Switch
zwave:device:c27a85ef:node34:switch_binarycontent_copy
Switch
unfold_more
radio_button_unchecked
Dimmer
zwave:device:c27a85ef:node34:switch_dimmercontent_copy
Dimmer
edit unfold_more
radio_button_checked
Sensor (temperature)
zwave:device:c27a85ef:node34:sensor_temperaturecontent_copy
Number
edit unfold_more
radio_button_unchecked
Electric meter (watts)
zwave:device:c27a85ef:node34:meter_wattscontent_copy
Number
unfold_more
radio_button_unchecked
Electric meter (kWh)
zwave:device:c27a85ef:node34:meter_kwhcontent_copy
Number
unfold_more
radio_button_unchecked
switch
zwave:device:c27a85ef:node34:switch_binary1content_copy
Switch
unfold_more
radio_button_checked
Blinds Control
zwave:device:c27a85ef:node34:blinds_control1content_copy
Rollershutter
edit unfold_more
radio_button_unchecked
Temperatur Sensor
zwave:device:c27a85ef:node34:sensor_temperature1content_copy
Number
edit unfold_more
radio_button_checked
Electric meter (watts)
zwave:device:c27a85ef:node34:meter_watts1content_copy
Number
unfold_more
radio_button_unchecked
Electric meter (kWh)
zwave:device:c27a85ef:node34:meter_kwh1content_copy
Number

Any suggestions?

I was testing aoud this Thing and found that folowing Item:

Switch testSW "test SW" channel="ZWaveNode34ZMNHCAFlushShutter_Switch"

Is working, the shutter going up and down according to Switch position.

But I want to control this module with Rollershutter GUI element, how to make this possible?

Here is PDF manual for this module:
flush-shutter-ZMNHCA2.pdf (199.6 KB)

Please can you confirm what version of the binding you are using? Maybe it’s an old version - I’d suggest to use the latest snapshot if you’re not already doing so?

Looking at the database, the blinds_control channel should be available on this device.

I don’t really understand why all the channels say content_copy on the end?

It might be useful if you can post the XML for the device - the Command class SWITCH_MULTILEVEL not found message might indicate that the device didn’t initialise correctly.

Im using OH2 snapshot from yesterday

Ignore "content_copy " its copied from webpage of Thing (its copy to clipboard mark)

the XML for device:

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>MULTILEVEL_SWITCH</genericDeviceClass>
    <specificDeviceClass>MOTOR_CONTROL_CLASS_C</specificDeviceClass>
  </deviceClass>
  <homeId>0xd46e4af6</homeId>
  <nodeId>34</nodeId>
  <version>4</version>
  <manufacturer>0x159</manufacturer>
  <deviceId>0x2</deviceId>
  <deviceType>0x3</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>SWITCH_MULTILEVEL</commandClass>
    <commandClass>SWITCH_ALL</commandClass>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>METER</commandClass>
    <commandClass>SENSOR_MULTILEVEL</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>VERSION</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>345</deviceManufacturer>
        <deviceType>3</deviceType>
        <deviceId>2</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters>
          <entry>
            <int>71</int>
            <configurationParameter>
              <index>71</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>40</int>
            <configurationParameter>
              <index>40</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>72</int>
            <configurationParameter>
              <index>72</index>
              <size>2</size>
              <value>50</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>10</int>
            <configurationParameter>
              <index>10</index>
              <size>1</size>
              <value>-1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>42</int>
            <configurationParameter>
              <index>42</index>
              <size>2</size>
              <value>300</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>74</int>
            <configurationParameter>
              <index>74</index>
              <size>2</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>76</int>
            <configurationParameter>
              <index>76</index>
              <size>1</size>
              <value>10</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>78</int>
            <configurationParameter>
              <index>78</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>3.67</protocolVersion>
        <applicationVersion>1.12</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <maxGroups>2</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>METER</commandClass>
      <meterCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <meterType>ELECTRIC</meterType>
        <meterScales>
          <meterScale>E_W</meterScale>
          <meterScale>E_KWh</meterScale>
        </meterScales>
        <canReset>true</canReset>
        <isGetSupported>true</isGetSupported>
        <isSupportRequestSupported>true</isSupportRequestSupported>
      </meterCommandClass>
    </entry>
    <entry>
      <commandClass>SENSOR_MULTILEVEL</commandClass>
      <multiLevelSensorCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <sensors>
          <entry>
            <multilevelSensorType>TEMPERATURE</multilevelSensorType>
            <multilevelSensor>
              <sensorType>TEMPERATURE</sensorType>
              <initialised>true</initialised>
            </multilevelSensor>
          </entry>
        </sensors>
        <isGetSupported>true</isGetSupported>
      </multiLevelSensorCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_MULTILEVEL</commandClass>
      <multiLevelSwitchCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <switchTypePrimary>DOWN_UP</switchTypePrimary>
        <switchTypeSecondary>DOWN_UP</switchTypeSecondary>
        <isGetSupported>true</isGetSupported>
      </multiLevelSwitchCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>17</int>
    <int>22</int>
    <int>32</int>
    <int>35</int>
    <int>43</int>
    <int>55</int>
    <int>58</int>
    <int>62</int>
    <int>65</int>
    <int>67</int>
    <int>69</int>
    <int>72</int>
    <int>80</int>
  </nodeNeighbors>
  <lastSent>2017-08-10 09:26:26.661 UTC</lastSent>
  <lastReceived>2017-08-10 09:26:26.857 UTC</lastReceived>
</node>

Your device doesn’t seem to support multi channels, so maybe it’s new and is a newer firmware version? If so, we’ll probably need to add this as a new device.

Its a 1.12 version, how to fix this?

I try to change xml of this device in jar database, but OH2 does not see the changes even after restart :frowning:

If the device has changed, then we would need to add it as a new device in the database.

If you change the database definition, you need to delete the thing and add it back in so that the system picks up the new definition.

Here what I did:

I have located JAR:
/var/lib/openhab2/tmp/mvn/org/openhab/binding/org.openhab.binding.zwave/2.2.0-SNAPSHOT/org.openhab.binding.zwave-2.2.0-SNAPSHOT.jar

and edit XML file:

qubino_zmnhca_0_0.xml

to add section in channels structure:
<channel id="blinds_control" typeId="blinds_control"> <label>Blinds Control</label> <properties> <property name="binding:*:PercentType">SWITCH_MULTILEVEL</property> <property name="binding:Command:StopMoveType">SWITCH_MULTILEVEL</property> <property name="binding:Command:UpDownType">SWITCH_MULTILEVEL</property> </properties> </channel>

Then I removed node 34 and restarted OH, after restart I added the node 34 again.

But this did not worked, channel blinds_control does not showed up.

Are you sure it’s running the modified binding? You probably need to uninstall the binding to make sure that it’s not using the version that the system caches.

I would suggest to update the database.

Please tell me where I can make the database update?

Please see the information here.

I made a change here:

And created a pull request.

Its my first time on github…

Please make the changes as per the database document above.

Did you resolve the issue with “ZMNHCA”?
Once I click the down, than stop the device, and after click down again, its not continue. Its only start when I click the up, but first its go to end of down, than go up. Little bit confused…
Any idea?
Thanks a lot
O.