I recently got some custom ZigBee USB switches. I have them paired with my hub. However, using the stock ZigBee Switch edge driver means that “off” results in the switch being on, and “on” results in the switch being off. Are there any drivers that allow you to reverse how it shows in the app?
Not sure if there is a driver to help with your situation. To explore this further, it would help to know a bit more about your device such as mfg, model, clusters supported, etc. I would suggest that you install the Zigbee Thing Driver from @Mariano_Colmenarejo by subscribing to his channel here and switching your device to it using the 3 dot menu on the device card. Once you switch it, take a screenshot of the info in the device card and post it either in this topic or in the Zigbee Edge Driver Request topic.
Inverting the value emitted by a switch in the App without matching the value sent by the device is problematic.
When you press on or off, the App waits for a specific response from the device and if it does not match, it will keep spinning and give a network error.
On the other hand, it will periodically send the current status on or off and could become desynchronized.
I don’t know what relay model yours is, but these USB relays usually have a relay with NO (Normally Open) or NC (Normally Closed) outputs. Simply changing the output connection from one contact to the other may solve the problem.
Others also usually have a switch on the board that inverts the NC and NO states of the relay.
If you can’t get a hardware solution or a modified driver, you could always create a virtual switch and sync the inverted on/off state with routines. Not the ideal solution but you can at least set it up immediately.
I dont think its a traditional relay with NO and NC outputs. Here is the github for the device, a lot of it is over my head. GitHub - xyzroe/ZigUSB: Zigbee USB power monitor and switch
Sounds like an error from the design/manufacturing side then; maybe you can ask them to correct it in the firmware.
From looking at the documentation on the referenced repo, it looks like there might be an option to invert the behavior in the firmware configuration tool. @rsexton I would contact the author of that repo to see if there is a solution.