I’m trying to get 3 sliders to work with some colored lights.
So far I’ve tried to use another rule and adapt it for my use. It only need to go one way.
So in HABPanel i have 3 sliders with 3 seperate items behind them.
The rule i’m trying to adapt is this:
import org.openhab.core.library.types.*
var HSBType hsbValue
var String redValue
var String greenValue
var String blueValue
rule "Set RGB value"
when
Item Color1RED changed or
Item Color1GREEN changed or
Item Color1BLUE changed
then
hsbValue = Color1.state as HSBType
redValue = hsbValue.red.intValue.toString
greenValue = hsbValue.green.intValue.toString
blueValue = hsbValue.blue.intValue.toString
sendCommand(Color1)
end
A little update here.
As far as i can tell this should work as i want:
import org.openhab.core.library.types.*
import java.awt.Color
rule "Set RGB value"
when
Item Color1RED changed or
Item Color1GREEN changed or
Item Color1BLUE changed
then
val color = Color1RED + Color1GREEN + Color1BLUE
sendCommand(Color1, color)
end
BUT i get an error (of course):
2020-05-06 14:55:25.569 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Set RGB value': An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.ObjectExtensions.operator_plus(java.lang.Object,java.lang.String) on instance: null
MDAR
(Stuart Hanlon, UK importer of Velbus hardware)
3
There’s some confusion going on there.
What type of command are you trying to send to this color Item?
What value ranges are your three color items offering?
If
Red = 50
Green = 50
Blue = 50
Then the command RED + GREEN + BLUE would give 150
Unless they are converted to strings (or are strings already)
RED.toString + GREEN.toString + BLUE.toString
Would give 505050
But a HSL value should be
Hue as a ° (0 to 359)
Saturation as a %
Luminescence as a %
If
RED = 50
GREEN = 50
BLUE = null
Then the maths will result in a null error
Does that help you?
FYI
Explanations of the different ways colours can be expressed are explained here
I had a look at it, along with a whole lot of other posts, and i don’t have a DMX bridge at hand (yet?).
So at first i would like to get the basic part done. I’m trying to get this to work: Link
But a follow up on your link. Will i get the ability to expose Zigbee light to a DMX control?
MDAR
(Stuart Hanlon, UK importer of Velbus hardware)
7
I’ve beaten my head against a wall trying to work that out too.
Which is why I ended up cheating by leveraging the amazing DMX Binding.
Good luck with your hunt for a DSL based solution.
Not exactly.
It’s more about getting a DMX Color Picker to do the heavy lifting of converting the 3 x levels in to a HSL value, then linking the same Item to both the Color Picker of the DMX Color Thing AND the Color channel of your Zigbee Thing.
As I say, it is a cheat and by no means is it a clever or “normal” solution.