Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rgbgenie #2531

Open
wants to merge 267 commits into
base: master
Choose a base branch
from
Open

Rgbgenie #2531

wants to merge 267 commits into from

Conversation

UpDryTwist
Copy link

Added support for RGBGenie switch (which should also improve support for other Sunricher switches, and maybe others). The RGBGenie is a rebranded Sunricher switch. It's wall-mounted, and offers a variety of controls for controlling RGB lights, including color setting, dimming, transition speed, and setting scenes. The version I have (ZW-3004) allows setting groups of devices, as well as three global scenes.

"Normal" mode for this switch would be to associate with your Z-Wave devices, and send them commands. It's supposed to be pretty quick and good at this. I wanted to use it to control a bunch of wifi lights, however, which meant I needed to receive its commands. I'm using python-openzwave + open-zwave.

The prior code expected to be SENDING commands to lights (and multi-association devices), so I needed to extend a bunch of the command classes so that they'd anticipate RECEIVING commands for color, etc.

I had to add a new configuration option -- MultiChannelSenderOnly -- to allow the code to behave properly when we have a device that will send us multi-channel commands, but does not expect to receive them.

I made three associated bug fixes or enhancements along the way:

  • In Manager.cpp, I was getting a bunch of errors in an attempt to get a floating point precision from non-float types (e.g., strings and integers) (this was before I made any other code changes, so not as a result of extensions for this device, per se). I didn't trace this all the way down to source, but it didn't seem to be adding value to raise the exception, and it was causing initialization errors, so I converted this to logging an error.
  • Color::decodeColor() had a bug where it was using the member array to do the decode, not the array passed in. This was probably just an oversight that hadn't been picked up elsewhere (probably because no one was using the method to decode any array other than the member).
  • I added another (optional) configuration parameter, LogFilePath, to allow putting the log file somewhere else. Needed this in a Raspberry Pi to ensure that logging is happening in /var/log (which is sitting on a RAM disk), rather than hitting the twitchy SD card.

I'll be separately adding a pull request to python-openwave to support these changes there.

@UpDryTwist
Copy link
Author

FYI, failing as I'm honestly not sure what to do about the sequence number in manufacturer_specific.xml, given that I'm far behind the main on this one. Just need to update that to whatever it's supposed to be (?).

@l3arcf
Copy link
Contributor

l3arcf commented Jan 10, 2021

Wouldn't you change the revision number to 133? Excuse my brevity here, I'm just wondering. It's certainly not my area of expertise.

@UpDryTwist
Copy link
Author

I guess. But 133 was used previously in the master (which is now on something like 154), so I wasn't sure the proper number to use ... Anyhow, the XML compiles fine, it's just this one check, that I guess should be set to whatever the final master # is if this is accepted, + 1. (?).

@l3arcf
Copy link
Contributor

l3arcf commented Jan 11, 2021

Well, a clean slate on the check will get faster/better attention than a failing one. Good luck!

nechry and others added 30 commits May 28, 2021 17:03
…io_dimmer_10002020_13X

Added new product ID 0000 for Simon S100 10002020 dimmer.
Add Hank smartplug so08 configuration
…hermostat

Use supervision to set thermostat setpoint
…n_thermostat_mode

Making use of the Supervision CC to set the thermostat mode.
…n_Switch_Binary

Supervision CC support for SwitchBinary
…n_Switch_MultiLevel

Supervision CC support for SwitchMultiLevel
Added support for Heatit ZM Single Relay 16A
new device fibaro/fgwceu201 - Fibaro Walli Controller
Second fix of lifeline group 1.1 receives no update.
Tested and works as expected
Removed name
add notice
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.