C8 hub.
Dimming from app works for other brands of dimmers.
If I manually set the dimming value at the switch and then check the app, it shows the correct dimming value.
But if I move the slider nothing happens.
This is for zooz zen72, but I think this affects all zoom dimmers.
Please provide your hub model (C7, C8, etc.) and its platform version from Settings>Hub Details.
Check out the following post for help troubleshooting problems and gathering details that will help others to identify and solve the problem you are experiencing: ‼ READ FIRST - Before Posting in Get Help
GO to the device page and set the level from there using the command.
Also, What type/driver are you using?
Try this driver: [DRIVER] Zooz ZEN Switches Advanced (and Dimmers)
Okay, using the set level from the device page works!
Using the built in device that was picked during inclusion.
Where are you dimming from in the app? The device page or a dashboard?
What app version do you have? (especially need to know if its old or new 2.x app)
App is 2.0.2
I cannot dim from the device page in the app using the slider. The slider does nothing.
If I go to remote monitoring and find the device and set the level by entering a number it works
Ok getting back to this, sorry I was out of town.
@ProfessorDave can you please confirm the exact Driver (listed as Type on the device page) that you have the devices set to?
I tested it using my driver and I get this error in the logs:
@bcopeland / @bertabcd1234 Also tested using the system ZEN72 driver and get a similar error:
@bobbyD @moncho1138 This is clearly a bug on the device page of the iOS (maybe Android also) mobile app 2.x. It is sending the level as a string value. The docs define the level value as a number.
![image](https://community.hubitat.com/uploads/default/original/3X/3/6/36b24c97fd47770d3a38a3952d63120213be5f39.png)
Here is the code from my custom driver:
String setLevel(Number level, Number duration=null) {
logDebug "setLevel($level, $duration)..."
turningOn[device.id] = (new Date()).time + 1000
return getSetLevelCmds(level, duration)
}
I could change my driver to have level by untyped but then I would also need to assume it may not be a number and attempt to convert to an Number every time so the rest of my code would work.
Asked about this, and there isn't a consensus right now... but we are thinking, at least for now, you should play it safe and to be able to handle (at least) a string anywhere you'd expect a number in the driver when it comes to user-supplied data. There are lots of ways data can come in, including the device detail page, mobile app, different dashboards, and Maker API or other HTTP endpoints; and not all may handle conversion of numbers to actual Number
subclasses for you automatically.
Yes, this means there are a few built-in drivers that will be updated, this being one of them. ![:slight_smile: :slight_smile:](https://community.hubitat.com/images/emoji/apple/slight_smile.png?v=12)
1 Like
I have at least 5, in 5 different HPM packages that use setLevel ![:frowning: :frowning:](https://community.hubitat.com/images/emoji/apple/frowning.png?v=12)
IMO this is a breaking change from the HE app.
Ran into this same issue a while back with the "pushed" function, the old dashboard sends the button number as a string. Should have learned my lesson I guess.
1 Like
Is this a bug that I should submit to hubitat?
Or is this a know issue?
This is already fixed in Hubitat platform 2.3.9.166 for all stock drivers. Custom drivers are outside the hub's control and may need updates if they would have previously thrown an error on string input.
1 Like
Yes just retested and seems to work