Support proprietary thermostat command classes

Discussions about existing Z-Wave device and their usage with Z-Way/Z-Cloud/Z-Box
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Support proprietary thermostat command classes

Post by fingerz »

Hi,

I've got a Z-Wave thermostat that uses proprietary command classes for set point, fan speed, etc. It's a preproduction unit from a manufacturer that will not release a commercial version until next year. I've got the complete Z-Wave documentation and have been able to set the parameters via the Expert UI of ZWay, but now I need to map some of these proprietary command classes to thermostat functions so I can control the device. For example, rather than using the standard Z-Wave command class for ThermostatSetPoint (0x43), they use proprietary command class 0x03. Is there a way to create a profile for this thermostat (ZDDX?) to map fan speed, operating mode, and set point to the proprietary command classes it uses rather than the standard Z-Wave ones?

Thanks!
-Fingerz.
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Re: Support proprietary thermostat command classes

Post by fingerz »

No reply yet, so I guess I'll ask a slightly different question. Is there a way through the Expert UI to send raw Z-Wave commands? For example, I want to send a THERMOSTAT_FAN_MODE_SET with value 0x01 (On Low). Can this be done via the Proprietary Set option in the Expert Commands section of the device configuration page? Is there any documentation or examples of how to use this UI to send data?
pz1
Posts: 2053
Joined: 08 Apr 2012 13:44

Re: Support proprietary thermostat command classes

Post by pz1 »

Code: Select all

I've got a Z-Wave thermostat that uses proprietary command classes for set point, fan speed
I don't think it is in the interest of the Z-Wave community here, that more devices with proprietary command classes come to the market. That undoubtedly will lead to even more compatibility problems than we already have.
Since 29-12-2016 I am no longer a moderator for this forum
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Re: Support proprietary thermostat command classes

Post by fingerz »

I understand that, and before this device comes to the market (hopefully by the end of 2016), the production version will use standard command classes to the maximum extent possible. Having said that, I've got six of them in my home now and I'm trying to find some way to get them integrated with ZWay. There are no other heating+cooling Z-Wave thermostats on the market suitable for use in EMEA. I'm looking for guidance of any way to integrate a non-standard Z-Wave device so that ZWay thinks it's a thermostat.

It supports the following command classes: Basic, SensorMultilevel, Meter, ThermostatMode, ThermostatOperatingState, Configuration, Alarm, ManufacturerSpecific, Association, Version, Proprietary. At the moment, ZWay only allows me to change ThermostatMode (heat, cool, auto) and to read the temp (SensorMultilevel). This thermostat supports ThermostatFanMode but has a proprietary extension to support Medium fan speed (0x04) and Fan Off (0x05), which were not supported in the original Z-Wave Fan Mode spec (may have been added subsequently).

One proprietary command class that I need to integrate is for managing the set point. This thermostat has seven different set point types (long story), hence the proprietary command class, but somehow I need to map the default ThermostatSetPoint Set & Get to this proprietary command class ignoring the additional set point types that are not defined in the Z-Wave standard.

I have a programming background, so I'm willing to put in the effort to try and implement a hack for my own needs, but I would appreciate some pointers of how I could go about doing that.
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Re: Support proprietary thermostat command classes

Post by fingerz »

Good news, I was able to get an updated version of this thermostat that now uses standard command classes instead of proprietary classes. These are the classes that it uses:

Basic (V1)
Configuration (V1)
Thermostat Mode (V1)
Thermostat Operating State (V1)

Sensor Multilevel (V1)
Meter (V2)
Alarm (V1)
Association (V1)
Version (V1)
Thermostat Fan Mode (V3)
Thermostat Fan State (V2)
Thermostat Setpoint (V3)
Thermostat Setback (V1)


Are these standard command class versions supported in ZWay today (2.2.x)? Since this is a prototype product, it is not listed in the Pepper1 DB. Is there a way to create an XML Z-Wave description file for it manually based on the documentation I have from the manufacturer?
pz1
Posts: 2053
Joined: 08 Apr 2012 13:44

Re: Support proprietary thermostat command classes

Post by pz1 »

I don't know, but you can check for yourself if these commands are described in the ZWay developers documentation
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Re: Support proprietary thermostat command classes

Post by fingerz »

I was able to include the new thermostat, but the interview process is not completing. All command classes except Thermostat Setpoint are working:

/: None (20:55)
1: None (20:55)
val: 20 (20:55)
scale: 0 (20:55)
scaleString: °C (20:55)

setVal: 20 (20:55)
modeName: Heating (20:55)
deviceScale: 0 (20:55)
deviceScaleString: °C (20:55)
min: 7 (20:55)
max: 35 (20:55)

2: None (20:55)
val: 22 (20:55)
scale: 0 (20:55)
scaleString: °C (20:55)

setVal: 22 (20:55)
modeName: Cooling (20:55)
deviceScale: 0 (20:55)
deviceScaleString: °C (20:55)
min: 7 (20:55)
max: 35 (20:55)

supported: true (20:55)
version: 3 (20:55)
security: false (20:55)
interviewDone: false (20:55)
interviewCounter: 9 (20:55)
modemask: 30726 (20:55)

I'm not an expert on ZWay, but it appears that the additional features in v3 of this command class that aren't supported are:

0x0B Energy Save Heating
0x0C Energy Save Cooling


The ZWay developer documentation does not clearly mention what version of each Z-Wave command class is supported in the current version of the software. Is there somewhere else, perhaps release notes, that would mention this information? Since the interview process of this command class is not completing, ZWay is not exposing setpoint controls so I can't change the temperature setting on my thermostat...a pretty basic requirement!

I'm pretty sure the firmware in this thermostat is now 100% compliant with the Z-Wave spec and will soon be certified, so I'm inclined to think that now it's up to the ZWay team to see if they can implement support for V3 of the Thermostat Setpoint command class. Are there any workarounds I could try in the mean time to force the interview process to complete?
User avatar
PoltoS
Posts: 6087
Joined: 26 Jan 2011 19:36

Re: Support proprietary thermostat command classes

Post by PoltoS »

Z-Way controls version 3 of this CC.

I see in your output
modemask: 30726 (20:55)
This gives
0111 1000 0000 0110 in binary

Z-Wave defines 16 different modes (only 12 are used in Thermostat Setpoint). Hence they should fit in 12 bits. Here I see more bits used. This is a violation of Thermostat SetPoint V3. So I'm pretty sure the device is buggy...

Correct mask should look like
0000 0111 1000 0110 in binary or 1926 in dec
fingerz
Posts: 17
Joined: 24 Jan 2016 13:48

Re: Support proprietary thermostat command classes

Post by fingerz »

That's very helpful, and I've shared your observations with the manufacturer so they can correct this. I'm also having trouble with Thermostat Fan Mode, which could also be due to a bug in the device firmware. The interview for this command class completed successfully, and here are the interview results:

/: None (16.08.2016)
0: None (16.08.2016)
modeName: Auto Low (16.08.2016)
1: None (16.08.2016)
modeName: On Low (16.08.2016)
2: None (16.08.2016)
modeName: Auto High (16.08.2016)
3: None (16.08.2016)
modeName: On High (16.08.2016)
4: None (16.08.2016)
modeName: Auto Medium (16.08.2016)
5: None (16.08.2016)
modeName: On Medium (16.08.2016)
supported: true (16.08.2016)
version: 3 (16.08.2016)
security: false (16.08.2016)
interviewDone: true (16.08.2016)
interviewCounter: 9 (16.08.2016)
modemask: 63 (16.08.2016)
mode: 0 (08:32)
on: true (08:32)

Unfortunately the Fan Speed controls are not presented in the UI and when I try to adjust fan speed via the Expert UI I get the following error:

Error handling data
/ZWave.zway/Run/devices[176].instances[0].commandClasses[68].Set(2)

Is there anything else I can do to help find the source of the problem?

Thanks!
User avatar
PoltoS
Posts: 6087
Joined: 26 Jan 2011 19:36

Re: Support proprietary thermostat command classes

Post by PoltoS »

We have no UI for Fan Mode yet, since we have not yet seen devices supporting it. What is your device?

As stated in our documentation (and also in Expert Commands tab) the syntax is the following:
Command ThermostatFanMode Set
Syntax: Set(on, mode, successCallback = NULL, failureCallback = NULL)
Description: Send ThermostatFanMode Set
Parameter on: TRUE to turn fan on (and set mode), FALSE to comletely turn off (mode is ignored)
Parameter mode: Thermostat Fan Mode
Parameter successCallback: Custom function to be called on function success. NULL if callback is not needed
Parameter failureCallback: Custom function to be called on function failure. NULL if callback is not needed
Report: mode and on updated

Means you need to use Set(true, 2)
Post Reply