Skip to content

VMBELO - Send raw bytes function #30

@fredericdepuydt

Description

@fredericdepuydt

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:

  1. I'd need to create a function that allows to send the Write Memory Block command with an array of raw bytes as content.
  2. 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.
  3. Then I could create a wrapper for the command that takes a channel and color as input
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions