Topic is How to convert HSB color ( as it comes from Alexa or ColorPicker) Toe a RGB Value which is undersoud by zigbee2mqtt for my ikea and tint Blubs.
Second was the idee to use a group of collor lamps instad a a rule for each lamp.
items:
Group gZBColor "Color"
Group gZBColorRGB "ColorRGB"
Group Bulbhansolo "hansolo" {alexa="Endpoint.Light"}
Dimmer ZB_Lampe_007__LevelControl "helligkeit" (Bulbhansolo) {alexa="BrightnessController.brightness,PowerController.powerState",channel="mqtt:topic:blub_Color1_thg:dimmer"}
Dimmer ZB_Lampe_007_Colortemp "farbtemp" (Bulbhansolo) {alexa="ColorTemperatureController.colorTemperatureInKelvin",channel="mqtt:topic:blub_Color1_thg:colortemp"}
String ZB_Lampe_007_colorRGB_String "farbe" (Bulbhansolo,gZBColorRGB) {channel="mqtt:topic:blub_Color1_thg:lampcolor"}
Color ZB_Lampe_007__color "farbe" (Bulbhansolo,gZBColor) {alexa="ColorController.color"}
Number ZB_Lampe_007__Linkquality "Linkquality" (gZBLinkQuality) {channel="mqtt:topic:blub_Color1_thg:linkquality"}
Group BulbChewbacca "Chewbacca" {alexa="Endpoint.Light"}
Dimmer ZB_Lampe_008_LevelControl "helligkeit" (BulbChewbacca) {alexa="BrightnessController.brightness,PowerController.powerState",channel="mqtt:topic:blub_Color2_thg:dimmer"}
Dimmer ZB_Lampe_008_Colortemp "farbtemp" (BulbChewbacca) {alexa="ColorTemperatureController.colorTemperatureInKelvin",channel="mqtt:topic:blub_Color2_thg:colortemp"}
String ZB_Lampe_008_colorRGB_String "farbe" (BulbChewbacca,gZBColorRGB) {channel="mqtt:topic:blub_Color2_thg:lampcolor"}
Color ZB_Lampe_008_color "farbe" (BulbChewbacca,gZBColor) {alexa="ColorController.color"}
Number ZB_Lampe_008_Linkquality "Linkquality" (gZBLinkQuality) {channel="mqtt:topic:blub_Color2_thg:linkquality"}
Rules:
rule "ZB_gruppe HSB -> RGB"
when
Member of gZBColor received command
then
logInfo("GroupTest.rules", "Command received: " + receivedCommand)
logInfo("GroupTest", "Member "+ triggeringItem.name +" to " + triggeringItem.state )
val RGBItem= gZBColorRGB.members.findFirst[ t | t.name == triggeringItem.name+"RGB_String" ] as StringItem
var r = ((triggeringItem.state as HSBType).getRed * 255 / 100).intValue
var g = ((triggeringItem.state as HSBType).getGreen * 255 / 100).intValue
var b = ((triggeringItem.state as HSBType).getBlue * 255 / 100).intValue
//logInfo("lampcolor.rules", "Output Conversion: r" + r + " g" + g + " b" + b)
var rgb = "{\"rgb\": \""+r+","+g+","+b+"\"}"
//logInfo("lampcolor.rules", "Output Conversion: Member "+ RGBItem.name + " to" + rgb)
RGBItem.sendCommand(rgb)
end
Feel free to give hints…