Setup Qubino Thermostat - Online but is it working?

Hardware: Intel Q9650 on Dell 0G261D motherboard
OS: Ubuntu 18.04.1 LTS
JRE: OpenJDK 1.8.0_192
OpenHAB 2.4
Issue: Is my Qubino Thermostat working?

I just connected my new widgit

And it connected and is showing as online. I intend to use two of its channels:

Number Garage_Temp_Setpoint "Garage Temperature Setpoint [%.0c °C]" {channel="zwave:device:4408043a:node6:thermostat_setpoint_heating"}
Number Garage_Temp "Garage Temperature [%.0c °C]" {channel="zwave:device:4408043a:node6:sensor_temperature"}

but when I map the sensor temp to a sitemap there is no output (NULL) and the setpoint shows as ERR. Do I have an issue with my setup or the Thermostat? Only thing in the log I can see is when I added the thermostat

You may need to use the UoM:

Number:Temperature Garage_Temp_Setpoint "Garage Temperature Setpoint [%.0c °C]" {channel="zwave:device:4408043a:node6:thermostat_setpoint_heating"}
Number:Temperature Garage_Temp "Garage Temperature [%.0c °C]" {channel="zwave:device:4408043a:node6:sensor_temperature"}

Thanks, I did notice that UoM is stated for both sensor and setpoint channels

image

But it doesn’t work even if I change the item to Number:Temperature. Unless I have to change something else, somewhere else to make that work. I haven’t used UoMs anywhere else before

I guess I cannot really help, but as far as I know this device have a temp sensor and a switch only?
I am wondering from where the “setpoint” is comming.
This device should send a switch command ON or OFF to a heating device, or am I wrong?

Did you set your measurement system (-> Regional Settings -> Show more) accordingly?

grafik

I had not considered that. So I made that change, and with some other tweaking sure enough it works.

But I don’t want my system on SI units, that would be a pain. In looking at the product manual it suggests a parameter number 78 to set the units on the thermostat, but it doesn’t show up in the thing settings. Is this potentially something missing in the binding?

@chris, your thoughts? I’ve seen you discuss this device in other posts…

It’s not in the database, so it cannot show up:

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/358

But it is also not in the product manual which was used to generate the configuration parameters:

That could mean you have a different firmware version of that device so it needs to be added as a separate database entry.
I would suggest you post your xml file and also please compare the other configuration parameters and association groups if those are also different between your device and the device in the database.

If you want to do this all yourself, please read:
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-database-guide

This will effectively be negated by the UoM conversions. When the binding receives a temperature update, it passes it into the system with a flag that says what units it’s in, and the system converts this to whatever units you have selected to display on your system. So it doesn’t matter if the temperature coming from the device is in C or F, you will get the units that your system is configured to.

There’s really very little to go on here - I don’t really know what’s not working at the moment. Have you looked at the debug logs to see if the device is communicating, and if so, what is happening?

Thanks Chris, I’ll look at that this weekend. I had already reached out to the goap team and received the following response early this morning:

Hi David,
On OpenHab 2 we cannot grantee full workmode for the device due integration tests were not finished yet. We are currently preparing new version of thermostat (new Z-wave standards) where these issue is resolved. I hope I was able to help you, if you have any additional questions please don’t hesitate to ask.

Best regards / Lep pozdrav,
Tomaž Ličen
Quality engineer

No timeline on those changes, hopefully they at least noted my question and are including that in the forthcoming firmware update (whenever that happens).

My XML file for the device is below. I tried connecting a GoControl thermostat this morning, and am getting exactly the same response (effectively none) from it.

<?xml version="1.0"?>

-<node>

<homeId>0xc845e541</homeId>

<nodeId>6</nodeId>

<version>4</version>

<manufacturer>0x159</manufacturer>

<deviceId>0x51</deviceId>

<deviceType>0x5</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_VERSION</commandClass>

<commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>

<commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>

<commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>

<commandClass>COMMAND_CLASS_SWITCH_ALL</commandClass>

<commandClass>COMMAND_CLASS_THERMOSTAT_MODE</commandClass>

<commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>

<commandClass>COMMAND_CLASS_METER</commandClass>

<commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>

<commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>

<commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>

<commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>

<commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>

<commandClass>COMMAND_CLASS_MARK</commandClass>

</nodeInformationFrame>


-<associationGroups class="concurrent-hash-map">


-<entry>

<int>1</int>


-<associationGroup>

<index>1</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>2</int>


-<associationGroup>

<index>2</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>3</int>


-<associationGroup>

<index>3</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>4</int>


-<associationGroup>

<index>4</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>5</int>


-<associationGroup>

<index>5</index>

<maxNodes>0</maxNodes>


-<associations>


-<associationMember>

<node>1</node>

</associationMember>

</associations>

</associationGroup>

</entry>


-<entry>

<int>6</int>


-<associationGroup>

<index>6</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>7</int>


-<associationGroup>

<index>7</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>8</int>


-<associationGroup>

<index>8</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>9</int>


-<associationGroup>

<index>9</index>

<maxNodes>0</maxNodes>

<associations/>

</associationGroup>

</entry>


-<entry>

<int>10</int>


-<associationGroup>

<index>10</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_THERMOSTAT</genericDeviceClass>

<specificDeviceClass>SPECIFIC_TYPE_THERMOSTAT_GENERAL_V2</specificDeviceClass>

</deviceClass>

<endpointId>0</endpointId>

<secureCommandClasses/>


-<supportedCommandClasses class="concurrent-hash-map">


-<entry>

<commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>


-<COMMAND__CLASS__CONFIGURATION>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>


-<configParameters>


-<entry>

<int>1</int>


-<configurationParameter>

<index>1</index>

<size>1</size>

<value>1</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>2</int>


-<configurationParameter>

<index>2</index>

<size>1</size>

<value>1</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>3</int>


-<configurationParameter>

<index>3</index>

<size>1</size>

<value>1</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>4</int>


-<configurationParameter>

<index>4</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>5</int>


-<configurationParameter>

<index>5</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>6</int>


-<configurationParameter>

<index>6</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>70</int>


-<configurationParameter>

<index>70</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>71</int>


-<configurationParameter>

<index>71</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>72</int>


-<configurationParameter>

<index>72</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>73</int>


-<configurationParameter>

<index>73</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>10</int>


-<configurationParameter>

<index>10</index>

<size>2</size>

<value>255</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>11</int>


-<configurationParameter>

<index>11</index>

<size>2</size>

<value>1</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>75</int>


-<configurationParameter>

<index>75</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>12</int>


-<configurationParameter>

<index>12</index>

<size>2</size>

<value>32767</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>13</int>


-<configurationParameter>

<index>13</index>

<size>2</size>

<value>32767</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>100</int>


-<configurationParameter>

<index>100</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>101</int>


-<configurationParameter>

<index>101</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>102</int>


-<configurationParameter>

<index>102</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>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>42</int>


-<configurationParameter>

<index>42</index>

<size>2</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>43</int>


-<configurationParameter>

<index>43</index>

<size>2</size>

<value>1005</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>44</int>


-<configurationParameter>

<index>44</index>

<size>2</size>

<value>5</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>45</int>


-<configurationParameter>

<index>45</index>

<size>2</size>

<value>50</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>110</int>


-<configurationParameter>

<index>110</index>

<size>2</size>

<value>32536</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>120</int>


-<configurationParameter>

<index>120</index>

<size>1</size>

<value>5</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>121</int>


-<configurationParameter>

<index>121</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>122</int>


-<configurationParameter>

<index>122</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>59</int>


-<configurationParameter>

<index>59</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>60</int>


-<configurationParameter>

<index>60</index>

<size>2</size>

<value>50</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>61</int>


-<configurationParameter>

<index>61</index>

<size>2</size>

<value>700</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>


-<entry>

<int>63</int>


-<configurationParameter>

<index>63</index>

<size>1</size>

<value>0</value>

<readOnly>false</readOnly>

<writeOnly>false</writeOnly>

</configurationParameter>

</entry>

</configParameters>

</COMMAND__CLASS__CONFIGURATION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>


-<COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>

<version>3</version>

<instances>1</instances>

<control>false</control>

<versionSupported>3</versionSupported>

<maxGroups>10</maxGroups>

</COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>


-<COMMAND__CLASS__THERMOSTAT__SETPOINT>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>


-<setpoints>


-<entry>

<setpointType>HEATING</setpointType>


-<setpoint>

<setpointType>HEATING</setpointType>

<initialised>true</initialised>

<initCount>2</initCount>

<outer-class reference="../../../.."/>

</setpoint>

</entry>

</setpoints>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__THERMOSTAT__SETPOINT>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>


-<COMMAND__CLASS__SENSOR__MULTILEVEL>

<version>7</version>

<instances>1</instances>

<control>false</control>

<versionSupported>7</versionSupported>


-<sensors>


-<entry>

<multilevelSensorType>TEMPERATURE</multilevelSensorType>


-<multilevelSensor>

<sensorType>TEMPERATURE</sensorType>

<initialised>false</initialised>

</multilevelSensor>

</entry>

</sensors>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__SENSOR__MULTILEVEL>

</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_ASSOCIATION_GRP_INFO</commandClass>


-<COMMAND__CLASS__ASSOCIATION__GRP__INFO>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<autoSubscribeGroups/>

</COMMAND__CLASS__ASSOCIATION__GRP__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.5</protocolVersion>

<applicationVersion>5.2</applicationVersion>

<hardwareVersion>2</hardwareVersion>

</COMMAND__CLASS__VERSION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_THERMOSTAT_MODE</commandClass>


-<COMMAND__CLASS__THERMOSTAT__MODE>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>


-<modeTypes>

<modeType>OFF</modeType>

<modeType>HEAT</modeType>

</modeTypes>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__THERMOSTAT__MODE>

</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_METER</commandClass>


-<COMMAND__CLASS__METER>

<version>3</version>

<instances>1</instances>

<control>false</control>

<versionSupported>4</versionSupported>

<meterType>ELECTRIC</meterType>


-<meterScales>

<meterScale>E_KWh</meterScale>

<meterScale>E_W</meterScale>

</meterScales>

<canReset>true</canReset>

<isGetSupported>true</isGetSupported>

<isSupportRequestSupported>true</isSupportRequestSupported>

</COMMAND__CLASS__METER>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>


-<COMMAND__CLASS__ASSOCIATION>

<version>2</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<maxGroups>10</maxGroups>

</COMMAND__CLASS__ASSOCIATION>

</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_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_MANUFACTURER_SPECIFIC</commandClass>


-<COMMAND__CLASS__MANUFACTURER__SPECIFIC>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<initSerialNumber>false</initSerialNumber>

<deviceManufacturer>345</deviceManufacturer>

<deviceType>5</deviceType>

<deviceId>81</deviceId>

</COMMAND__CLASS__MANUFACTURER__SPECIFIC>

</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_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>

</supportedCommandClasses>

</endPoint>

</entry>

</endpoints>


-<nodeNeighbors>

<int>1</int>

<int>2</int>

<int>3</int>

<int>4</int>

</nodeNeighbors>

<lastReceived>2019-02-15 14:27:51.361 UTC</lastReceived>

</node>