Just started looking at the dial on my devices linked to Zigbee2MQTT and Node Red. Appears there are a few different commands that can be sent when rotating the dial, so there may be equivalent messages in the event stream from the bridge. I'm wondering if @bertabcd1234 may only be receiving and/or parsing the step message.
This is not what it looks like via the Hue API, and I don't see a way to get the events that Z2M is apparently able to get from the "raw" Zigbee (that communication, of course, being entirely different) based on the Hue eventstream. I haven't looked at this lately but recall doing about the best I could with it last time given the oddities involved...
Has this happened to anyone?
I installed @andywebs driver, but any button I press the log says its button 4.
@rhodesda you seem to have had the same issue - how did you resolve yours?
(new to this whole experience XD)
What am i doing wrong?
At the time I used the CoCoHue driver but even then the volume control was poor. I use the IKEA sound remote V2 now instead
oh wonderful!
hows your experience using that?
Do I need to buy a hub for that or will it work out of the box with hubitat?
I'm looking to be able to sync my hue box to physical buttons (control volume, start/stop sync, lights etc....)
I recently got one of these, and wanted to follow up on this thread @andywebs , I am also getting this: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead on line 163 (method parse)
when turning the dial - directly paired
firmwareMT: 100B-0121-02003B13
thanks
UPDATE, decided to ask ChatGPT
anyway, it suggested this dirty fix in the device code:
void dial(number){
def dimmer = device.currentValue("level")
if (dimmer == null) {
dimmer = 0
}
if (level == null) {
level = 0
}
log.debug "${level} ${number} ${dimmer}"
if (dimmer != null) {
if (logEnable) log.debug "Dial Value from: ${dimmer} by ${number}"
// Assuming setLevel expects an Integer, you might need to convert dimmer to Integer explicitly
setLevel((dimmer as Integer) + number)
} else {
if (logEnable) log.warn "Current value of 'level' is null"
// You might want to handle this case according to your requirements
}
the end result is the "level" does seem to work where ROUGHLY a 90 degree clockwise turn takes it from 0 to 100 and 100 to 0 counterclockwise, I've looked here and not sure exactly how to implement this in rule machine beyond dimmer increase/decrease for my Sonos, but that does seem to work if I don't twist it in either direction past 90 degrees (since now the level doesn't "change")
Update: Using Button Controller I set one of the buttons to "Mute" by setting the dimmer level to 0 which works pretty well, it's def a bit sensitive twisting 1-100 but beyond that seems to work!
and using rule machine:
I
EDIT so obviously the 1-100 corresponds to 1-100 degree turn, playing around with it to more closely match a 360 degree turn
Another EDIT: so it seems it's def sensitive to how fast the dial is twisted, a very slow twist almost gets 0-100 while turning - fast gets 1-100 at 45 degrees tops.... WIP
I don't think that driver ever worked properly or is actively maintained, the only driver I know of that works is the CocoHue driver