Ich habe mir die RGBW Led Streifen Zigbee vom Lidl gekauft. Diese kann man wunderbar in der Hue bridge einbinden und damit auch in Openhab.
Ich habe folgendes vor:
Wenn TV an (also Power über 10Watt) und Rollo Wohnzimmer unten ist dann soll die Sockelbeleuchtung der Küche angehen und ein Automatischer Farbwechsel über die HSB Farben stattfinden.
Ich habe noch zusätzlich einer Trigger Item "Automatischer_Farbwechsel_Kueche_Sockel" angelegt so dass ich den Farbwechsel auch manuell starten kann ohne die Bedingung Fernseher und Rollo
Wenn Fernseher aus dann soll die Beleuchtung und der Farbwechsel stoppen.
Ich habe mir versucht aus anderen Ideen ein Script und eine Ruel dazu zusammen zu bauen aber komme nicht so ganz weiter.
Das Script soll in der Rule aller 2 Sekunden aufgerufenwerden und eine neue Farbe generieren.
Das Script funktioniert auch aber die Rule zickt.
hue_fade_kueche_sockel.script
Code: Alles auswählen
var hsb = KuecheSockelZone_Farbe.state as HSBType
var DecimalType hue = new DecimalType(hsb.hue.intValue % 359 + 1)
var PercentType sat = new PercentType(hsb.saturation.intValue)
var brightValue = 65;
if (KuecheSockelZone_Helligkeit.state == ON) {
brightValue = 30;
}
var PercentType bright = new PercentType(brightValue)
var HSBType newHsb = new HSBType(hue, sat, bright)
sendCommand(KuecheSockelZone_Farbe, newHsb);
//sendCommand(item_buero_buero_hinter_monitoren_color, newHsb);
//sendCommand(item_buero_buero_lampe_decke_color, newHsb);
//sendCommand(item_buero_buero_unter_tisch_color, newHsb);
//sendCommand(item_buero_buero_unter_regal_color, newHsb);
// ...
und hier noch die Rule dazu
Automatischer_Farbwechsel_Kueche_ Sockel.rules
Code: Alles auswählen
rule "Automatischer_Farbwechsel_Kueche_Sockel"
when
Time cron "*/2 * * * * ?"
then
if (Automatischer_Farbwechsel_Kueche_Sockel.state == ON)
if (EnergieTVWohnzimmer_Power.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if ((EnergieTVWohnzimmer_Power.state as Number).floatValue <= 10) // kleiner oder gleich 10?
if(RolloWohnzimmerrechts_Level.state instanceof Number)
if((RolloWohnzimmerrechts_Level.state as Number).floatValue <= 90) // kleiner oder gleich 10?
//return;
{
callScript("hue_fade_kueche_sockel");
}
end