-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Hi,
I'd like to control the feedback leds of my VMBELO, but also be able to change the colors on the fly based on a specific rule.
I've reverse engineered the communication between the VMBELO and the VelbusLink software while setting a specific feedback color for a specific channel.
Changing the feedback led color during operation would require a Write Memory Block (CA) command to be sent to the VMBELO. So the first question that arrises: is this bad practice?
This CA command for example sets the colors of CH1 - 4 to "16:Blue" (0x1F) for the Continuous mode (0x30):
Write Memory Block(CA) Raw bytes: 05 30 1F 1F 1F 1F
I'm willing to dive into the code to add this functionality myself, but I'd like to discuss this idea here first.
How I would approach this:
- I'd need to create a function that allows to send the Write Memory Block command with an array of raw bytes as content.
- The command should be callable from a rules file (probably using the Thing, as it doesn't apply to a specific channel)
If these two steps work, the hard work is done. - Then I could create a wrapper for the command that takes a channel and color as input
- Additionally the function can wait for the response of the VMBELO to check whether the color is actually applied correctly
How would I go about step 1 and 2? Can a Thing function be called from within a rule?
Would love to hear your thoughts.
For those questionning my reasons for willing to implement this:
I'd like to be able to set specific colors on the VMBELO based on specific events. I could use channels from multiple pages but most of the time the VMBELO will be in screensaver mode, in that case only the feedback of the Startup Page (CH1-4 for me) can be shown, limiting me to a single color per led.
EDIT:
An alternative way of achieving this, is by using the 1806 command "Set continious feedback color", but as I want OpenHAB to be the initiator I don't see a possibility to call/reach this function. Unless again I can manually sent a raw command that fakes the initiator?
Kind regards,
Frederic Depuydt