[SOLVED] Heatit z-trm2 anyone tried it in OH2?

Looking good :slight_smile:

Maybe the Thing Label Type is a bit long?
The text in the parenthesis is repeated in Thing Type Description.

Just tried ON/OFF yet and the relay is clicking :slight_smile:

Cannot set parameter 22 & 24. They should have the Option 0 entry deleted in the database.
I was not able to do this myself.

2 questions.

  • After starting this latest dev binding, a new Z-Wave USB dongle appeared in my inbox.
    Should that be used instead of the old one? (Z-Wave serial controller)
  • The z-trm2 display brightness settings are configuration parameters. If I wanted to change intensity from day to night is that possible from a rule?

Observation: every time I select a thing in habmin, the following ERROR appears in the log:
2018-06-04 21:35:53.836 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.

Great - it sounds like things are basically working :slight_smile:

Please remove the name, or change the name to DELETE ME, or somthing, and I’ll delete it.

No - you don’t need to. This is a new features where the binding is discovering dongles, but (at the moment) it doesn’t tie in with manually configured dongles. I would suggest for now to ignore it…

Yes, it’s possible. We need to create a channel in the CONFIGURATION command class with the type config_decimal and with the parameter parameter set to the parameter number (eg parameter=23 to control parameter 23.

Done

Will do

Cool, but I have played around with it a bit changing config, and it seems not to work.
Locally in the menu is OK.

Also, when I set the heating setpoint from habmin, it apperas on the device display, but the Setpoint (Heating) channel does not follow. When trying to set a value through the channel, logs say:

2018-06-04 23:42:55.734 [ERROR] [ding.zwave.handler.ZWaveThingHandler] - NODE 85: Command received with no implementation (QuantityType).

Guess this proves OH is doing its thing, and since the intensity on the device doesn’t change, it is probably a firmware problem in the device. Agree?

2018-06-04 23:54:13.017 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 85: Incoming command class COMMAND_CLASS_CONFIGURATION, endpoint 0
2018-06-04 23:54:13.017 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 85: SECURITY NOT required on COMMAND_CLASS_CONFIGURATION
2018-06-04 23:54:13.018 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 85: Received COMMAND_CLASS_CONFIGURATION V1 CONFIGURATIONCMD_REPORT
2018-06-04 23:54:13.018 [DEBUG] [class.ZWaveConfigurationCommandClass] - NODE 85: Node configuration report, parameter = 20, value = 99, size = 1
2018-06-04 23:54:13.019 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 85: Got an event from Z-Wave network: ZWaveConfigurationParameterEvent
2018-06-04 23:54:13.020 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 85: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_CONFIGURATION, value = org.openhab.binding.zwave.internal.protocol.ZWaveConfigurationParameter@374d96a3
2018-06-04 23:54:13.020 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 85: Update CONFIGURATION 20/1 to 99
2018-06-04 23:54:13.021 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 85: Commands processed 1.
2

Given the horrible firmware problems with the original heatit device I am watching with interest to find out how much fun you guys have with the z-trm2.

Could you elaborate, please?
I have no experience with the old device having waited for this one.

In short, the device was advertised as having an internal temperature sensor. It worked amazingly badly. They then disabled it in later units’ firmware without telling anyone.

And the device was supposed to provide a command class giving the ON/OFF status of the thermostat, but didn’t.

Finally, the LCD screen sometimes randomly lights up odd segments.

I’m away from my PC but you can hopefully find those posts on the forum

Dan

@chris I put forward the following question to post@heatit.com

Hello.

I have trouble understanding the values for parameter 4.
Could you elaborate, please?

They answered:
Hi

This is an error in the manual

Value 1, 2 and 3 is not for this product.
You can set the hysteresis as a value from 0-30

So, I have updated the database for parameter 4.

Yep - I saw that. Thanks. I’ve already deleted the options from the database :slight_smile: .

Test update:
PaperUI lists setpoint as Number:Temperature:
image

However, using that type in the .items file does not work.
Hence, setting the setPoint directly from PaperUI or habMin doesn’t work either.

These .items works fine:

// HVAC 1 
Switch heatit1Switch    (hvacSwitches)        { channel = "zwave:device:f180343d:node85:switch_binary1" }
Number heatit1Volts     (hvac)                { channel = "zwave:device:f180343d:node85:meter_voltage" }
Number heatit1Watts     (hvac)                { channel = "zwave:device:f180343d:node85:meter_watts" }
Number heatit1kWh       (hvac)                { channel = "zwave:device:f180343d:node85:meter_kwh" }
Number heatit1Mode      (hvac)                { channel = "zwave:device:f180343d:node85:thermostat_mode" }
Number heatit1setPoint  (hvac)                { channel = "zwave:device:f180343d:node85:thermostat_setpoint_heating" }
Number heatit1tempAir   (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature2" }
Number heatit1tempFloor (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature3" }
Number heatit1tempExt   (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature4" }

Set setPoint from a rule:

sendCommand(heatit1setPoint, 22.5) (any .1 increment is accepted)

Log updates:

rule 'heatit1Switch'
when
    Item heatit1Switch received update
then
    logInfo("heatit1Switch", "Update: heatit1Switch=" + heatit1Switch.state)
end      

rule 'hvac1setPoint'
when
    Item heatit1setPoint received update
then
    logInfo("heatit1setPoint", "Update: heatit1setPoint=" + heatit1setPoint.state)
end      

rule 'hvac1tempAir'
when
    Item heatit1tempAir received update
then
    logInfo("heatit1tempAir", "Update: heatit1tempAir=" + heatit1tempAir.state)
end      

Sitemap next :slight_smile:

Observation: only binary_switch1 reports the relay switch state. It can also be controlled, but unsure how long it will stick.
The whole thermostat can be turned off using the thermostat_mode channel, or if using floor- or external sensor just set the setPoint low and it will just show the current temperature.

The next database update will fix parameter 4.
So guess that is it. Item included in snapshot and development binding.

What doesn’t work? I know people are using this item type in other ZWave things - at least for temperature sensors I know it is working. Maybe there is an issue with commanding - I did ask for confirmation of this when I added UOM, but no-one responded.

When trying to set the setPoint directly from paperUI/habmin I got the error quoted.
After that, it was no longer possible to try again. (Had to restart browser)

From the rule with item defined as Number:Temperature, sendCommand(item, 22.0|“℃”) setting did not take on device. (unsure if I got an error)

Update rule log for temperature sent from device logged as 22.5 - ?

Sorry - I missed this comment earlier. I will take a look at changing this to handle the QuantityType commands.

That is strange - anyway, let’s fix the above issue and then we an see where we stand.

I’ve made a change to support QuantityType commands (I hope!). I can’t properly test this, so please can you give this version a try and see if this helps

openhab> bundle:list | grep -i zw                                                                                                                                                                       
189 | Active   |  80 | 2.3.0.201806091256     | ZWave Binding

.items

// HVAC 1 
Switch heatit1Switch    (hvacSwitches)        { channel = "zwave:device:f180343d:node85:switch_binary1" }
Number heatit1Volts     (hvac)                { channel = "zwave:device:f180343d:node85:meter_voltage" }
Number heatit1Watts     (hvac)                { channel = "zwave:device:f180343d:node85:meter_watts" }
Number heatit1kWh       (hvac)                { channel = "zwave:device:f180343d:node85:meter_kwh" }
Number heatit1Mode      (hvac)                { channel = "zwave:device:f180343d:node85:thermostat_mode" }
Number:Temperature heatit1setPoint  (hvac)                { channel = "zwave:device:f180343d:node85:thermostat_setpoint_heating" }
Number:Temperature heatit1tempAir   (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature2" }
Number:Temperature heatit1tempFloor (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature3" }
Number:Temperature heatit1tempExt   (hvac)                { channel = "zwave:device:f180343d:node85:sensor_temperature4" }

From a rule: the command commented out did not take. The one in effect works OK.

//    sendCommand(heatit1setPoint, 22.5|"°C") 
    sendCommand(heatit1setPoint, 22.5) 

Logs:

2018-06-09 21:44:47.734 [INFO ] [marthome.model.script.heatit1tempAir] - Update: heatit1tempAir=29.2 ?
2018-06-09 21:44:48.481 [INFO ] [arthome.model.script.heatit1setPoint] - Update: heatit1setPoint=21 ?
2018-06-09 21:46:27.448 [INFO ] [arthome.model.script.heatit1setPoint] - Update: heatit1setPoint=22.5 ?

I am quite happy with the way it works with just Number without Number:Temperature.

2018-06-09 21:02:35.246 [INFO ] [arthome.model.script.heatit1setPoint] - Update: heatit1setPoint=22.5
2018-06-09 21:12:35.161 [INFO ] [marthome.model.script.heatit1tempAir] - Update: heatit1tempAir=29.2

Do you need any more logs? With debug level perhaps?

By the way: parameter 4. looked good :slight_smile:

Maybe, but somehow this needs to be sorted so that it works properly with the different units. I’m not overly familiar with this myself - and certainly not on the command side (the sensor side I can test ok).

Yes please. I’d like to see if the command gets to the binding or not. I added some tests that seem to show it should be processed ok, so maybe the issue is outside the binding… Let’s see, the logs should help at least.

Thanks.

Ok, here is what I did:
Restored the Number:Temperature as in .items file above.
Enabled debug for zwave. This is node 85.
Saved a rule file with this in the System started rule:

sendCommand(heatit1setPoint, 23.5|"°C")

Here is the log file: openhab.debug.zip

Have fun. :slight_smile:

Thanks. It’s still the same error…

One question before I look too much further - when you updated the binding, did you delete the thing and add it back again (don’t exclude/include - just delete, inbox/search, and add)?

I forgot to mention this, but this needs to be done to update the thing/channel definition (this isn’t required for the parameter configuration).

No, didn’t do that.

Deleted node 85, did a new ZWave scan. Added the new thing. Enabled debug. Saved the rule again.
Looks much the same. Command didn’t take.

Updated the .zip file