In the last 30d, we’ve had lots of temperature problems. A few weeks back all our sensors (switchbot - internet linked) moved to return temps over 300F. Fans turned on alerts kept firing. It was all of them. I blamed the connection with that brand, so bought replacement zigbee sensors with edge support for all of them.
I’m trying to now recreate complex routines for all the rooms and the iOS app is limiting temp based routine entries to 70.4 and 71.1.
This range is…. Unusable.
I have other zigbee sensors so I’m thinking this bug must be new?
It also makes me wonder now if the temp conversion bugs have all been in smartthings.
Well at the moment I’m stuck with no smart home / smartthings support for anything temperature driven.
Anyone know how to fix or when?
This is a smartthings natively authored edge driver. Version 2024-10-10T18:17:50.956209329
In this example above specifically, I’m creating a refrigerator temperature alert. But the issue is showing for any temperature driven condition I’m trying to create right now.
Here’s a different device on a different edge driver showing some other specific temp driven examples I created months ago, but is what I’m having to recreate in different rooms after replacing switchbot. I’m now not sure if they’re working and don’t want to touch their definitions.
I don’t think it’s an OS issue, but certainly could be driver related. That screenshot is for a routine using a gen 2 Iris open/close sensor and ST’s standard Edge driver. As y’all can see the range selection is very wide.
Funny thing i noticed was that I can’t use a negative number. I can only select the decimal point and not the “-”. I admit i haven’t spent any time figuring out why that’s happening.
These are Maxcio Tuya-based sensors… which I had checked in advance can use one of the community tuya edge drivers.
But, the Samsung Native Edge driver worked straight away, so I hadn’t tried that yet. It’s on my list, but was surprised by this very narrow limitation.
Also yes, I have used this functionality on other devices / sensors before, so this is a very new scenario.
And Ugh – looks like this is it. (Image below – I marked as solution as well, since this seems the exact culprit.)
Thanks for the link to source! That means I can try to fork that driver and build my own that ignores the min and max. (I have 4 drivers already that I have written at home for our house.)
I remember reading something about this, but I can’t find where (I was looking in the community repository but perhaps it was in this forum). Certain devices, and I think it was Tuya, are misusing the Minimum and Maximum values. Instead of defining the valid range for the device they are being used for the Minimum and Maximum recorded temperatures. I can’t remember what the intended response to this was.
You can use my Zigbee Temp Sensor and Child Thermostat Mc driver fron this channel
You need install this driver in your hub
Uninstall device and reinstall with search nearby option for device configuration.
You don’t perform a driver change
Another solution is to put it in the freezer for half an hour until it reaches a minimum temperature that suits you.
Then you heat it with a heat hair dryer that sets the maximum temperature sufficient for your routine and the problem is solved with a wide temperature range if you uninstall device with app and reinstall it., new temperature range is saved by driver added life cycle function
I do use your driver (that specific one) for other devices I have. I have several other edge drivers of yours – many thanks – I also have learned my own edge development from your code as well, so many thanks for sharing what you know.
However, this specific zigbee sensor does not show as supported by that driver specifically. Could it be added later, and I need to uninstall / reinstall the driver because I have been using it already?
Since I know the drill by now… below is the output from your thing_mc driver.
As for the range, its ironically been in our refrigerator for days (its specifically for the refrigerator). That has not changed or impacted the reported range.
You could make it configurable in your modified driver, like this:
local function info_changed_handler(self, device, event, args)
local temp_scale = "C"
local oldmin = args.old_st_store.preferences.minTemperature
local oldmax = args.old_st_store.preferences.maxTemperature
local min = device.preferences.minTemperature
local max = device.preferences.maxTemperature
if (oldmin ~= min) or (oldmax ~= max) then
if min < max then
device:emit_event_for_endpoint(zb_rx.address_header.src_endpoint.value, capabilities.temperatureMeasurement.temperatureRange({ value = { minimum = min, maximum = max }, unit = temp_scale }))
else
log.warn("Min temperature is greater than max temperature")
end
end
end
[...]
lifecycle_handlers = {
[...]
infoChanged = info_changed_handler
[...]
},