var ON = true, OFF = false;
var hue_id = {
"Gang:Deckenlampe":"hue.0.Philips hue.Gang",
"Büro:Schreibtisch":"hue.0.Philips hue.Schreibtisch",
"Büro:Deckenlampe":"hue.0.Philips hue.Büro",
"Büro:Leselampe":"hue.0.Philips hue.Leselampe",
"Schlafzimmer:Bett":"hue.0.Philips hue.Schlafzimmer"
};
var hue_group = {
"Gang":{ "bulbs":[ [hue_id['Gang:Deckenlampe'],0] ], "preset":0 },
"Büro":{ "bulbs":[ [hue_id['Büro:Deckenlampe'],0], [hue_id['Büro:Schreibtisch'],-64] ], "preset":0 },
"Leselampe":{ "bulbs":[ [hue_id['Büro:Leselampe'],0] ], "preset":0 },
"Schlafzimmer":{ "bulbs":[ [hue_id['Schlafzimmer:Bett'],0] ], "preset":0 }
};
var hue_preset = {
"72deg 100%":{"bri":254,"colormode":"hs","hue":13122,"sat":212},
"72deg 75%":{"bri":192,"colormode":"hs","hue":13653,"sat":212},
"Antique":{"bri":190,"colormode":"ct","ct":497},
"Beruhigen":{"bri":145,"colormode":"ct","ct":463},
"Fluorescent":{"bri":254,"colormode":"ct","ct":153},
"Halogen":{"bri":254,"colormode":"ct","ct":299},
"Konzentrieren":{"bri":254,"colormode":"ct","ct":234},
"Lesegeschwindigkeit":{"bri":241,"colormode":"ct","ct":343},
"Nacht 50%":{"bri":127,"colormode":"hs","hue":65535,"sat":254},
"Nacht 75%":{"bri":192,"colormode":"hs","hue":65535,"sat":254},
"Regenerieren":{"bri":204,"colormode":"ct","ct":153},
"Schwarzlicht":{"bri":50,"colormode":"hs","hue":48000,"sat":254},
"Standard 100%":{"bri":254,"colormode":"hs","hue":14922,"sat":145},
"Standard 75%":{"bri":192,"colormode":"hs","hue":14922,"sat":145}
};
function setHuePreset(preset, group) {
for (var n = 0; n < group.bulbs.length; n++) {
var id_bulb = group.bulbs[n][0];
var level = preset["bri"] + group.bulbs[n][1];
if (level < 0) {
level = 0;
}
if (level > 254) {
level = 254;
}
setState(id_bulb+'.on', ON);
setState(id_bulb+'.bri', level);
switch(preset.colormode) {
case "hs":
setState(id_bulb+'.colormode', 'hs');
setState(id_bulb+'.hue', preset.hue);
setState(id_bulb+'.sat', preset.sat);
break;
case "ct":
setState(id_bulb+'.colormode', 'ct');
setState(id_bulb+'.ct', preset.ct);
break;
default:
setState(id_bulb+'.colormode', 'xy');
// TODO: Colormode from xy array
}
}
}
Dies ist der Code den ich per eval in mehrere Skripte einbinde da ich, wie vorher schon geschrieben, Geräte-/Funktionsgruppen zur besseren Übersicht voneinander trenne.
hue_id dient nur der Vereinfachung.
hue_group entstand eigentlich nur da ich in meinem Büro eine Deckenlampe und eine Schreibtischlampe habe und diese in der Regel gleich eingestellt werden, aber die Schreibtischlampe 25% dunkler sein muss, damit beide gleich hell wirken.
hue_preset enthält die Werte die ich direkt von der Bridge per Paw (Mac Applikation) auslese und in einzelnen Dateien speichere. Damit kann ich Einstellungen die ich mit diversen Apps mache und mir gefallen, dauerhaft sichern. Darüber lasse ich ein Ruby Skript laufen welches alle Dateien ausliest, den kompletten Hash ausgibt und dabei nicht benötigtes weglässt.
Es funktioniert alles so wie ich es möchte, allerdings habe ich einen kleinen Haken bei dem Hue-Adapter festgestellt. Dazu werde ich aber die Frage im passenden Adapter-Bereich des Forums stellen um nicht vom Thema abzuschweifen.