Including MultiChannel device always uses DTH not Edge Driver (Heatit)

The decision was to create driver for Z-wave fw 1.8, ztrm2fx fw 3.4 and trm3 fw 4.2
I do not have a Z-wave fw 1.9 version, so quite hard to test.
Since Manufacturer ID, Product Type and Producrt ID is different it might be possible.

As far as I remember the 1.92 fw is only slightly different from the 1.8, adding some new options, but it has a different fingerprint. I have upgraded to 1.92 so I guess that is part of my issue.

I am also using the Z-wave TEMP2 from heatit. It works well as a room controller with other devices. It would be useful to have support for this, or find some generic driver that works.

I had also written a groovy device handler for the heatit Z-Relay for controlling a heated floor while using the Z-Temp room thermostat. I suppose I willl now have to kick this into touch and find another way.

I have created a version for internal test of Z-temp2 fw 1.1 and 1.2. It has just not been thru all tests yet.
For Z-wave 1.92 I am not sure what to do.

Hello Ivar, I have the driver installed but the device still connects to the old DTH for a moment, then says “secure pairing not completed” and disconnects.

Moreover, the DTH device is not removed from the application even if it is force-deleted

Any hints on how to disable Zwave DTH?

I have now gone through deleting all the DTH drivers and I still get a generic DTH since my device doesnt match the new edge driver:

zw:L type:0806 mfr:019B prod:0003 model:0201 ver:1.92 zwv:4.61 lib:06 cc:5E,85,8E,59,55,86,72,5A,73,98,9F,60,70,43,40,25,6C epc:4

I have upgraded all my old thermostats to 1.92 and there seems to be no way back (I cannot find the 1.8 firmware).

I do have several unused devices though :slight_smile:
Shall I send you one?

thanks for the offer. I spoke to Heatit and I think they will send me a Z-wave thermostat with fw 1.92.

Hi, I am really grateful that Ivar has been able to implement these edge drivers as I was getting ready to toss smartthings, and now think I can probably continue.

I am having issues when using this driver, though I do not yet know if they are due to “operator error”.
I have 2 trm2fx devices. One can be included with the edge driver, the other not. Both say “3.4” when started so both should have the 3.4 firmware. The one that doesn’t work seems to have a funny fingerprint (mostly zeros) so I will reinstall the firmware and see if that helps.

The one that is working works well in smartthings. All the settings seem to work, and the set point etc can be changed. I have not been able to use it with the external thermistor that I installed, I will check to make sure that it is connected properly - it worked before. If “cooling setpoint” can be removed then that would be an advantage.

The problem that I am having is that it does not show up as a “climate” device in the Home Assistant smartthings integration and this is a bit of a problem for me. I currently don’t know if this is related to the edge driver or something else. I will try excluding and re-including as my next step and see if it helps. A number of entities are created but not the climate device.

Otherwise I think Samsung have done a really bad job of this migration process. It is really bad that when including a device it looks through all your soon to be removed DTH drivers to find a match before checking edge drivers. This means that you have to exclude all devices using matching DTHs, then DELETE the driver, and then include all devices again. This is really a nightmare - I have 2 geographically separate sites, so this process requires 2 (x2) hours of driving :frowning: plus that there is no fallback to the old drivers if something goes wrong - since they are deleted and you cant get them back.

update:

These are the entities provided by the smartthings integration of Home Assistant using the edge driver for ztrm2fx:

As you see there is no temperature measurement.

With the older DTH driver I would also expect to see current_temperature as a climate attribute. @ivarsand any insight as to whether this can be due to the edge driver, or the smartthings integration?

1 Like

I will try to answer as best I can.

The problem where fingerprints are zeroes happen from time to time for other devices also for me. Normally I try to include again and that solves the problem.
The way drivers are created, you really need the fingerprint to match. You cannot force driver usage if the fingerprint does not match.

Cooling was requested by Heatit. First version was without. They are the ones publishing the drivers.

Home Assistant. The way SmartThings handles multi channel devices forces them to only one device entry with different components. All temperature measurements are separate components. Those might be invisible with current HA integration.

Migration. For a normal user the migration should be silent. Meaning everything should just happen. It looks as that might work as expected.
I have the same problem as you. I have SmartThings at home and at two distant locations. I prefer not to end up with something not working when I am not present. Therefore I change the driver by excluding, remove DH and include. Takes time and kills all automation.
The driver do not touch parameters to make as little mess as possible in migration.

Thanks, some progress
 I factory reset the troublesome device and after a few attempts (even though the display said ERR) it is now available in SmartThings.

I wanted to double check regarding Home Assistant and “climate” devices. My other Heatit devices still using the DTH drivers and integrated to Home Assistant are providing a climate. I have a vague memory from my implementations that the DTH driver had to support some method or capability or other for this to function and it was a bit tedious to implement. I think maybe this documentation covers it, do you know which capabilities the edge driver returns/supports? I don’t know how to check that. Appreciate your help.

The problem is that a trm3 or trm2fx thermostat has the capabilities you see in HA in the “main” component.
The temperature measurements are in separate components called “temperatureAir”, “temperatureFloor” and “temperatureAirExternal”. For a thermostat using DH the temperature measurement components were separate devices not components in the main device. I think someone have to change this in the HA to SmartThings integration.
It has been mentioned as a problem for other integrations also.

My Z-Wave fw is 1.7 and the Trm3 4.0. Would the 1.7 and 4.0 versions work with this driver?

Ok so I will clearify
I have used the versions below for testing Heatit thermostats with manufacturer ID 0x019B
Z-Wave fw 1.8 productType: 0x0001 productID: 0x0001
Z-Trem2fx 3.4 productType: 0x0003 productID: 0x0202
Z-Trm3 4.2 productType: 0x0003 productID: 0x0203

If they use the same product type and id it might work. Devices with any other id or type than those sets listed above, will never be able to use the driver unless the driver is changed.

I expect to test Z_wave fw 1.92 in the short future.

Yes, i realised now I knew there was somethingI couldn’t quite remember. Some of the DTHs i used, including my own, relay the child device capability and sensor values through the main device.

Just got an idea from someone else. If I add one temperatureMeasure capability to the main component and copy the value from the component corresponding to the selected sensor mode. That should make it easily available from outside (HA or other systems).’
But I have some other drivers to finish first


Removed since I got the answer.

1 Like

That is in fact how the DTHs solved the same issue.

Hi again, I have been on holiday since mid-December and playing catchup on this thread now, and will try to be clearer than my quick reply earlier.

I am now officially between a rock and a hard place :slight_smile:

My z-temp2 is offline and will not come back on-line with a restart anymore so I will need to include this again. I will watch this space for any driver releases that you may make available. This has the fingerprint (from the dying groovy interface):

 zw:Fs2a type:0806 mfr:019B prod:0004 model:0204 ver:1.01 

I will try to find a workaround in my automations for this missing device.

With regards to the Home Assistant issue I mentioned earlier, recap: the HA integration for smartthings is looking for a set of capabilities in order to create the climate device. The climate device in HA world gives you a thermostat that you can control from the HA frontend. Not all capabilities are provided by the main driver from @ivarsand so the Heatit thermostats cant be controlled from HA anymore. I do not know if the HA integration can be modified to also retrieve the child capabilities, I don’t know how that would be implemented, but I will send a feature request just-in-case.

In the past (DTH world) I have solved this by relaying the child capabilities though the main driver. I think this is what @ivarsand was basically saying earlier, and in a belt-and-braces approach I would certainly appreciate if you could look in to this.

Hi again. I have had a poke around in the Home Assistant integration and I now conclude that IMO the best approach is if this edge driver would be able to provide the “temperatureMeasurement” capability by relaying the temperature of the child device chosen by “Sensor Mode”.

The pysmartthings python package used by HA does indeed provide access to the child devices (components) and even to the sensor values for the components, giving a path to solve my problem in the HA integration. However there seems to be no way to access the settings to find out which of the sensors the user has chosen. As far as I can see the smartthings API does not provide any access to the settings either (that seems strange so could be my bad).

If its useful, this is the information that I can fetch using the API against the edge driver (z-trm2fx thermostat), but as I said, there doesn’t seem to be a way to determine which temperature is set in the configuration.

kitchen thermostat

---- main
key: power, value: 0.16
key: energy, value: 971.4
key: heatingSetpoint, value: 20.0
key: thermostatMode, value: heat
key: supportedThermostatModes, value: ['off', 'heat', 'cool', 'energysaveheat']
----- roomTemperatureExternal
key: temperatureMeasurement, value: 0.0
----- floorTemperature
key: temperatureMeasurement, value: 20.1

Hit the /devices/{{deviceId}}/preferences endpoint with an accept header of Accept: application/vnd.smartthings+json;v=20170916 and you should get some joy.

Thanks, I found that too after my post. pysmartthings doesnt provide it though and IMO it is still better that the edge driver sends the correct temperature. Other solutions would be too messy.