Integration of Z-Wave Danfoss Thermostat

The change of handler shouldn’t affect the device itself, in terms of the 5min wake-ups. It might be actually doing it every 5mins but I don’t think I show it on the UI (:thinking: Might be a nice feature to add). To check you could change the temperature and see if the device picks it up in 5 mins. Whilst also looking at the logs - https://graph-eu01-euwest1.api.smartthings.com/ide/logs

The LC13 doesn’t report back the temperature :frowning: Or at least the earlier versions don’t. I may have heard that later versions or variants (rebranded by other companies) do.

Hi Tommy,

Im still having little success with these LC-13s. I think it is the fact the the actuators move so slowly.

Is there any way that they can be controlled as simple open / Close actuators on the radiators to turn the heating fully on or off within room?

Thanks

I’m having trouble getting this device handler to work with Google Home.

This is what I see in the logs when trying to adjust temperature from my Google Home and Google Home Hub:
4194f4f6-d8b9-438c-ae8b-5a4617d225b3 20:30:11: error groovy.lang.MissingMethodException: No signature of method: java.lang.String.floatValue() is applicable for argument types: () values: @line 1805 (isTemperatureWithinRange)
4194f4f6-d8b9-438c-ae8b-5a4617d225b3 20:30:11: debug currentHeatingSetpoint: 21.0 currentThermostatSetpoint: 21.04194f4f6-d8b9-438c-ae8b-5a4617d225b3 20:30:11: debug Mode: heat TemperatureScale: C
4194f4f6-d8b9-438c-ae8b-5a4617d225b3 20:30:11: debug Set Radiator Syd setpoint to 24

I don’t find the mentioned isTemperatureWithinRange method anywhere. Any pointers as to what might be going wrong here?

me two, i have a pop tvr and the DH is base on this one and it works fine

i even tryed swaping the DH over, but it still dosent work

I have both Danfoss LC13 and Devolo (using Popp TRV DH dased on Tommy’s LC13 DH). Google assistant and Alexa commands seem to work with the official Danfoss LC13 DH on both different trvs but not the Tommy’s or Popp custom DH. Would hope it was an easy copy and paste to fix but I wouldn’t have a clue where to start :joy:.

I can take a look and see if isTemperatureWithinRange means something. I’ll be coding blind a bit as I can’t troubleshoot the Google Home issue, as I don’t have one. Any other details you can share, will help. The logs from @hpe look like a great place to start, thanks for sharing :bowing_man:

Hi Tommy,

Below is the log when trying to set temp with Alexa. Same error occurs as Google. I have both Google Home and Alexa available should you require any assistance with testing any changes give let me know.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:info postEventToEndpoint: event successfully posted.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:debug Property Change Event DeviceWatch-DeviceStatus: online (source: DEVICE)

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:info postEventToEndpoint: event successfully posted.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:debug Property Change Event DeviceWatch-DeviceStatus: online (source: DEVICE)

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:info postEventToEndpoint: event successfully posted.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:27 PM:debug Property Change Event DeviceWatch-DeviceStatus: online (source: DEVICE)

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:07 PM:info postEventToEndpoint: event successfully posted.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:23:07 PM:debug Property Change Event motion: inactive (source: DEVICE)

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:error groovy.lang.MissingMethodException: No signature of method: java.lang.String.floatValue() is applicable for argument types: () values: @line 2700 (isTemperatureWithinRange)

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:debug TargetSetPoint after rounding off to the nearest 0.5 : 25.0 C

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:debug currentHeatingSetpoint: 21.0 currentThermostatSetpoint: 21.0

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:debug Mode: heat TemperatureScale: C

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:debug Set Amy’s Heating setpoint to [targetSetpoint:[scale:CELSIUS, value:25]]

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:32 PM:debug handlePostV3

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:21 PM:info postEventToEndpoint: event successfully posted.

7874715d-02a4-455c-a4ee-dde21eb6b0e8 9:22:21 PM:debug Property Change Event temperature: 21.09 (source: DEVICE

I found this https://github.com/PhysicalGraph/solutions-sandbox/blob/a465ee3b745678cb0cd92d528706666f85bd9e4f/src/smartthings/smartapps/smartthings/amazon-echo-home-skill.src/amazon-echo-home-skill.groovy#L644

It could be the code for the the Alexa and Google Home smart apps. I’m not sure if it’s the current or old code. If it’s current, it seems like isTemperatureWithinRange is accessing attributes not supported by the device eg currentMinHeatingSetpoint I couldn’t find these documented and they’re not standard capabilities https://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat

I can try adding them in. I believe the Danfoss thermostats have a min & max temperature range, so there’s not harm in defining them.

4degC and 28degC and the min and max.

As I said the temperature changes works with the official handler. When using the official one you can see that min and max heating setpoints are listed in ‘current states’.
So defining them will most likely make this work as you said

its strage running the popp google works fine but the danfoss it doesnt work with her/him??

Hi Maryk I seem to be having a different experience from you. To be clear from my testing this is what I found

Using Popp or Tommy DTH: commands from Alexa or Google home to switch trv on or off work. Commands to change heating setpoint does not work and returns error regarding isTemperatureWithinRange

Official Danfoss DTH: commands from Alexa or Google home to switch trv on or off does not work. Commands to change heating setpoint does work.

I understand why the on/off command doesn’t work on official DTH as it doesn’t have a switch capability, which has been added to Tommy/Popp DTH

I’ll have a look at the good bits then. Just to be clear are you using my version of the pop

Sorry Mark had a look back and it is this one I was using

I’ve now tried yours and get some slightly different results. They are as follows:

Still get errors when trying to change temp via Google or Alexa i.e. related to the isTemperatureWithinRange

Asking Alexa to switch heating on/off succeeds. However the response from Alexa is ‘I’m not quite sure what went wrong’

Asking Google to switch on/off fails but Google confirms the action was done. Below is the live log for Google. Seems to get stuck at pending

4cf105b1-2d45-46bf-8c87-f3ab40fe4b34 9:22:22 PM: debug Outgoing: [requestId:9632262759250129820, payload:[commands:[[ids:[350422df-ab2c-4545-93fb-d4f59be6f0a6], status:PENDING]]]]

4cf105b1-2d45-46bf-8c87-f3ab40fe4b34 9:22:22 PM: debug Set Master Bedroom Heating thermostat mode to heat

4cf105b1-2d45-46bf-8c87-f3ab40fe4b34 9:22:22 PM: debug handleExecute()

4cf105b1-2d45-46bf-8c87-f3ab40fe4b34 9:22:22 PM: debug Outgoing: [requestId:9632262759250132950, payload:[devices:[350422df-ab2c-4545-93fb-d4f59be6f0a6:[online:true, on:true, thermostatTemperatureAmbient:19.09, thermostatHumidityAmbient:53, thermostatMode:heat, thermostatTemperatureSetpoint:21.0]

I’ve added the additional attributes to my device handler code, which I think the Alexa and Google Home smart apps are expecting the DH to have. Try out the latest code here https://github.com/tommysqueak/SmartThingsPublic/blob/master/devicetypes/tommysqueak/danfoss-living-connect-radiator-thermostat.src/danfoss-living-connect-radiator-thermostat.groovy and please let me know if this works out for you.

Thanks @hpe and @NoonDawg for your logs and pictures, they helped me identify where the issue is.

Tom you are a legend. This is working perfectly for me now with both Alexa and Google home.

1 Like

what changes did you make, im just going to add it to another eurtonics trv DH… was it just
private setDeviceLimits() {
sendEvent(name:“minHeatingSetpoint”, value: 4, unit: “°C”, displayed: false)
sendEvent(name:“maxHeatingSetpoint”, value: 28, unit: “°C”, displayed: false)
}
then call it up on installed & config?

Yup, that’s most of it. You also need to define the attributes (near the top of the code file).

Glad it’s working out :bowing_man:

I forgot to mention to anyone else following along. You’ll need to go into your settings for your device (on your classic android/iphone app) and tap ‘Save’. This will setup the 2 missing min/max attributes for it.

My quick on/off temperature settings are not working. Not sure if they were working previously as just started playing with this feature after the last update a few days ago. This is my scenario. I am trying to set up different times for different rads to come on and off. To do this I am actually utilizing the smart lighting smartapp as Tom’s DH allows it to be used as a switch. My thinking is I don’t really need to keep changing Temps so can just set the on/off temps for this. Changes can then be made at any point but will revert back to the default on the next schedule. I looked at 5-2 scheduler but couldn’t find the latest version, so not sure if it’s free anymore. Any better suggestions would be appreciated also

Whatever I do the LC13 only wakes every 5 minutes. Is there a secret handshake? Or is the minimum 5 minutes?