Smartthings iOS app requires VERY narrow range for temperature alerts (70.4-71.1)

Hi.

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. :frowning:

Anyone know how to fix or when?
This is a smartthings natively authored edge driver. Version 2024-10-10T18:17:50.956209329

Thanks.


What are you trying to accomplish. Can you post one automation

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.

brand/model of the replacement sensors? tried a different Edge driver?

1 Like

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.

Login here:

https://my.smartthings.com/advanced/devices

Select your sensor and check this:

That’s what the device is reporting, according to this:

1 Like

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.

2 Likes

I was able to use the - on both iPhone and iPad. On the iPhone, the . and - were barely visible on the screen.

1 Like

Thank you!

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.)

2 Likes

Maybe, yes.

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.

3 Likes

There’s also a recent discussion about supportedValues

2 Likes

This is the thread

@jpstewart

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

3 Likes

Thank you.

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.

Thanks!

Manufacturer: _TZ3000_cx6atb9s
Model: TS0201
FingerPrinted_EndPoint.Id: 0x01
App Version: Unknown
ZCL Version: Unknown
Network ID: 0x2D10
Zigbee EUI: A4C138B2E4CF6EAD
Device ID: 0d1d04bf-bc27-4e20-b5d4-bfff2c27861c

Server Cluster:
Ep: 0x01={ 0001,0003,0402,0405,0000 }

Client Clusters:
Ep: 0x01={ 0003,0019,000A }

1 Like

Fun fact: the min/max temperature handler was added only 4 months ago!

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
  [...]
},

And in the profile:

preferences:
  - preferenceId: tempOffset
    explicit: true
  - preferenceId: humidityOffset
    explicit: true
  - name: "minTemperature"
    title: "Min Temperature"
    description: "Bla"
    required: false
    preferenceType: integer
    definition:
      minimum: 10
      maximum: 123
      default: 30
  - name: "maxTemperature"
    title: "Max Temperature"
    description: "Bla"
    required: false
    preferenceType: integer
    definition:
      minimum: 50
      maximum: 234
      default: 60

Something like that. Not tested, just an idea.

2 Likes

Hi @jpstewart

Added to these drivers

For a valid device configuration you need uninstall device and reinstall with one of these drivers

─────────────────────────────────────────────────────────       
 Name         Zigbee Temp Sensor and Child Thermostat Mc 
 Version      2024-12-08T09:17:49.856239054
─────────────────────────────────────────────────────────
- id: "_TZ3000_cx6atb9s/TS0201"
    deviceLabel: Tuya TS0201
    manufacturer: _TZ3000_cx6atb9s
    model: TS0201
    deviceProfileName: temp-humid-battery

────────────────────────────────────────────────────
 Name         Zigbee Temp Sensor with Thermostat Mc
 Version      2024-12-08T09:16:11.200335534
────────────────────────────────────────────────────
- id: "_TZ3000_cx6atb9s/TS0201"
    deviceLabel: Tuya TS0201
    manufacturer: _TZ3000_cx6atb9s
    model: TS0201
    deviceProfileName: temp-humid-therm-battery-05
3 Likes

Success on all accounts! Thank you that worked.

Updated thread solution.


4 Likes