[RELEASE] Unified Thermostat Driver - MELCloud, MELView, Kumo Cloud and more if you want

Ok, that makes some sense with what I was seeing in the data from your logs. I'm also wondering if what we are seeing in the logs isn't exactly what is coming back, I remember early on I got confused by some of the text being stripped out when putting it out in the HE logs. I might need to find another way to get the full response back....

Released an update to remove temperature conversions, this should fix the inflated temperature readings @michaelahess and @tjc4561 reported.

Also, the drivers are now in HPM, so you can install and update them through this now.

Simon

works great, is there any command I can do to set it to Fahrenheit?

Temp is in C, when i set the cooling point, says my number, but if you hit refresh to update it, goes to C.

thanks!

Hmm, now I am confused... I'll need to take another look. It makes sense with the value changing after the refresh, but there's still something going on... The bit of code I took out should have done the conversion, but that was producing inflated results, which is why I am confused..

You could try turning on debugging briefly and see if my outputs in the logs show anything.

2021-07-14 09:00:01.219 pm debugadjustSetTemperature: Temperature passed in was null which was parsed as null, current set temperature is 17.5

dev:9972021-07-14 09:00:01.203 pm debugadjustRoomTemperature: No action taken

dev:9972021-07-14 09:00:01.191 pm debugadjustRoomTemperature: Temperature provided = 22.5, Units = °F, Converted Value = 22.5

if need more let me know.

Ok, I think I know what may be happening, but just want to confirm a few more things.

EDIT: Looking at @michaelahess 's post here, in particular the screenshot, I think it answers my question below.

With the latest code, are most of the attributes along the right hand side of the Device Edit page for one of your units showing as Celsius? i.e. ~15-30 degrees. So things like the set points / temperature, room temperature, min's and max's, etc. And do you remember whether, before I made the most recent fix to remove the conversion, whether these were showing correctly in Fahrenheit, and it was only when you tried to adjust a set point and key in 68 that the set point was saved as 310?

What I think is the issue is that when data comes back from Kumo it is coming back in Celsius, which we want to convert to Fahrenheit where that is the temperature scale set on the HE hub. The code I stripped out recently would do that conversion if it was needed. I suspect the issue is that I need to detect when a value has been provided by a user in Fahrenheit, and not apply that conversion, which I think I may have been doing. I'll take a look at it over the weekend. If you can work with Celsius for now that would be good.... Maybe this could be the start of converting the US to metric? :grin:

The driver before this one showed F for in-room temp. Now it is C.

When the unit is off it shows the max temp and all those settings in F, when i turn it on and hit refresh everything turns to C.

I can use it easily right now.

Side note, my unit has the Vent that can follow you or not. Anyway to add this in the future? Kumo cloud app has it.

This works, just with a couple conversions, reading it makes less sense but it is accurate:


Version 1.0.2 released - hoping to address the issues with Celsius vs Fahrenheit, experienced by @michaelahess and @tjc4561.

NOTE - After updating the drivers, you will need to click Save Preferences on the parent device.

The drivers now convert values sent to the platform when entered in the HE interface and there is a difference between the platform and the HE hub. So in the example of Kumo Cloud and those users in the U.S., Kumo Cloud records temperatures in Celsius, whereas many users will have their HE hub setup in Fahrenheit. Temperatures returned from the platform as a status update are also converted, where necessary.

Seems like when i set a temp, if i hit refresh it goes to 87.7. I even let it stay without hitting refresh and 1 min later comes back and changes to 87. Maybe im doing somthing wrong. Here is the logs.

2021-07-17 06:36:00.656 pm debugapplyResponseStatus: Status update complete

dev:9972021-07-17 06:36:00.646 pm debugadjustThermostatFanMode: No change to Fan Speed detected, no action taken

dev:9972021-07-17 06:36:00.636 pm debugadjustThermostatFanMode: No change to Fan Mode detected, no action taken

dev:9972021-07-17 06:36:00.632 pm debugadjustThermostatFanMode: MEL Fan Mode Key 0 parsed as HE Fan Mode Value Auto and HE Fan Speed auto

dev:9972021-07-17 06:36:00.556 pm debugadjustCoolingSetpoint: Current coolingSetpoint 68.0, Current ThermostatSetpoint = 68.0, New coolingSetpoint = 87.8

dev:9972021-07-17 06:36:00.528 pm debugadjustSetTemperature: Cooling / Drying mode detected, adjusting cooling set point

dev:9972021-07-17 06:36:00.517 pm debugadjustSetTemperature: Current mode is cool

dev:9972021-07-17 06:36:00.505 pm debugadjustSetTemperature: Changing Set Temperature from 68.0 to 87.8

dev:9972021-07-17 06:36:00.496 pm debugadjustSetTemperature: Temperature passed in was 87.8 which was parsed as 87.8, current set temperature is 68.0

dev:9972021-07-17 06:36:00.484 pm debugadjustRoomTemperature: updating room temperature from 71.6 to 71.6

dev:9972021-07-17 06:36:00.473 pm debugadjustRoomTemperature: Temperature provided = 71.6, Units = °F, Converted Value = 71.6

dev:9972021-07-17 06:36:00.463 pm debugapplyStatusUpdates: About to adjust temperatures...

dev:9972021-07-17 06:36:00.452 pm debugadjustThermostatOperatingState: Thermostat Mode passed in = 3, Power passed in 1, OperatingState: cooling

dev:9972021-07-17 06:36:00.442 pm debugadjustThermostatMode: Thermostat Mode provided 3, Power provided 1, parsed as Mode Description cool

dev:9972021-07-17 06:36:00.432 pm debugadjustThermostatMode: Adjust Thermostat Mode called

dev:9972021-07-17 06:36:00.423 pm debugapplyStatusUpdates: About to adjust thermostat mode details...

dev:9972021-07-17 06:36:00.413 pm debugapplyResponseStatus: Status Info: [unitId:9734P0089100041F, power:1, setMode:3, roomTemp:71.6, setTemp:87.8, setFan:0]

dev:9972021-07-17 06:36:00.384 pm debugretrieveStatusInfo_KumoCloud: Status Info - [unitId:9734P0089100041F, power:1, setMode:3, roomTemp:22, setTemp:31, setFan:0]

dev:9972021-07-17 06:36:00.372 pm debugretrieveStatusInfo_KumoCloud: response - [true, null, [[[id:2253801429937102, record_time:2021-07-18T01:35:32.200Z, device_serial:9734P0089100041F, it_status:null, rssi:-51, power:1, operation_mode:3, set_temp:null, set_temp_a:null, fan_speed:0, air_direction:0, prohibit_local_remote_control:null, room_temp:22, room_temp_beyond:null, room_temp_a:null, out_of_use:null, unusual_figures:32768, two_figures_code:A0, status_display:0, actual_fan_speed:null, sp_cool:31, sp_heat:24, sp_auto:-1, raw_frames:null, run_test:0, active_thermistor:null, temp_source:null, seconds_since_contact:29]], [[device_serial:9734P0089100041F, id:2253801268455280, responded_to:null], [device_serial:9734P0089100041F, id:2253801268455279, responded_to:null], [device_serial:9734P0089100041F, id:2253801268455278, responded_to:null], [device_serial:9734P0089100041F, id:2253801268455277, responded_to:null]]]]

dev:9972021-07-17 06:36:00.086 pm debugretrieveStatusInfo: Retrieving status info from KumoCloud

dev:9972021-07-17 06:36:00.063 pm debugrefresh: Refresh process called

dev:9972021-07-17 06:34:59.375 pm debugsetTemperature: Temperature adjusted to 68.0 for Front room mini - FRONT ROOM

Thanks again for testing, at least it appears to be staying in the same scale, based on your description. My suspicion with the value changing on multiple refreshes maybe rounding within the conversion process, most likely within my control. I'll look through the logs more closely.

Actually I think I know what is happening.

Did you only try this once? If so, can you confirm that your min/max settings on the air conditioner child device are now in Fahrenheit? If so, could you try changing the set temp again?

Otherwise....

Would it be ok for you to setup your devices again? At least removing the child device(s) and hitting refresh on the parent device?

Always best to wait a while for me to respond, I do tend to bounce between a few ideas before landing on one....:slightly_smiling_face:

i tried it many times, I edit the code with new one, and save preference on both. I'll just redo them all together, and test.

1 Like

Readded the device, both apps show F. so thats good. I set 68 and temp, leave it for 5 min stays. I hit refresh auto goes to 87.5.

2021-07-17 08:49:00.509 pm debugadjustSetTemperature: No action taken, either no change in temperature or null temperature provided

dev:10252021-07-17 08:49:00.499 pm debugadjustSetTemperature: Temperature passed in was 87.8 which was parsed as 87.8, current set temperature is 87.8

dev:10252021-07-17 08:49:00.488 pm debugadjustRoomTemperature: updating room temperature from 71.6 to 71.6

dev:10252021-07-17 08:49:00.477 pm debugadjustRoomTemperature: Temperature provided = 71.6, Units = °F, Converted Value = 71.6

dev:10252021-07-17 08:49:00.467 pm debugapplyStatusUpdates: About to adjust temperatures...

dev:10252021-07-17 08:49:00.457 pm debugadjustThermostatOperatingState: Thermostat Mode passed in = 3, Power passed in 1, OperatingState: cooling

dev:10252021-07-17 08:49:00.447 pm debugadjustThermostatMode: Thermostat Mode provided 3, Power provided 1, parsed as Mode Description cool

dev:10252021-07-17 08:49:00.436 pm debugadjustThermostatMode: Adjust Thermostat Mode called

Hmmm, ok, that shouldn't happen. I suspect it is where I am trying to make sure the temperature sits within the limits (min and max) set for the device, but must have it not quite right.

1 Like

It would be useful to see the logs when you try to set the temperature. And exactly how you tried setting the temperature, was in through the device edit screen with the set cooling set point, or through a dashboard tile?

I did both, ill turn on all logs and see

1 Like

Parent always says this.

2021-07-17 09:23:25.610 pm errorjava.lang.NullPointerException: Cannot invoke method toFloat() on null object on line 537 (refresh)

2021-07-17 09:25:00.644 pm debugapplyResponseStatus: Status update complete

dev:10252021-07-17 09:25:00.632 pm debugadjustThermostatFanMode: No change to Fan Speed detected, no action taken

dev:10252021-07-17 09:25:00.623 pm debugadjustThermostatFanMode: No change to Fan Mode detected, no action taken

dev:10252021-07-17 09:25:00.606 pm debugadjustThermostatFanMode: MEL Fan Mode Key 0 parsed as HE Fan Mode Value Auto and HE Fan Speed auto

dev:10252021-07-17 09:25:00.595 pm infoThermostat Set Point adjusted to 87.8 for front Room Mini split - FRONT ROOM

dev:10252021-07-17 09:25:00.577 pm infoCooling Set Point adjusted to 87.8 for front Room Mini split - FRONT ROOM

dev:10252021-07-17 09:25:00.561 pm debugadjustCoolingSetpoint: Current coolingSetpoint 68.0, Current ThermostatSetpoint = 68.0, New coolingSetpoint = 87.8

I did through dashboard, Logs just show me clicking it down and down. refresh back to 87.5

Is there an entry in the log before the one at the bottom of your last post? So before the:

is there a debug log starting with "setCoolingSetpoint: Setting Cooling Set Point to..."