NEWS
HUE Gruppen - Erkennung wenn eine Lampe an, dann Gruppe als an markieren
-
Hallo
Ich wollte mein VIS so gestalten das in der Übersicht der Raum als ein dargestellt wird wenn auch nur eine Lampe im Raum nur ein bisschen an ist. Dazu auch noch der "Alles" Schalter bereits von einer einzigen Lampe abhängig ist. Die originalen HUE Gruppen bieten meines Wissens diese Funktion nicht.
Daher habe ich mir ein Script gebaut welches diese Funktionalität für mich bietet. Es basiert auf ein Statecount Script aus der beispielsammlung. Meine Lampen in den Räumen haben immer als Anfang das Kürzel des Raumes: "WZ_Decke, WZ_Sofa etc." Dadurch kann ich die leicht erkennen. Ich bin noch recht frisch bei IOBroker, bitte verzeiht mir etwaige Unschärfen
An dem ermittelten Status kann man dan problemlos ein Button Widget anbinden, allerdings so konfigurieren das die tatsächliche HUE Gruppe dann geschaltet wird.
Malc
! ````
addHUE_State('ALL', $('[state.id=hue.0.Bridge_1..bri]'));
addHUE_State('Wohnzimmer', $('[state.id=hue.0.Bridge_1.WZ_.bri]'));
addHUE_State('Schlafzimmer', $('[state.id=hue.0.Bridge_1.SZ_.bri]'));
addHUE_State('Küche', $('[state.id=hue.0.Bridge_1.KU_.bri]'));
addHUE_State('Hangar', $('[state.id=hue.0.Bridge_1.HA_.bri]'));
addHUE_State('Susanne', $('[state.id=hue.0.Bridge_1.SU_.bri]'));
addHUE_State('Flur', $('[state.id=hue.0.Bridge_1.FL_.bri]'));
addHUE_State('Bad', $('[state.id=hue.0.Bridge_1.BA_.bri]'));
addHUE_State('WC', $('[state.id=hue.0.Bridge_1.WC_*.bri]'));
! function addHUE_State(name, selector) {
//log("addHUE_State.name " + name );var State_State = 'Lights.' + name + '.state'; createState(State_State,false); var State_Cnt = 'Lights.' + name + '.cnt'; createState(State_Cnt,0); function HUE_State(obj) { //log("HUE_State.Start"); var cntON = 0; selector.each(function(id,i) { var Object = getObject(id); var Role = Object.common.role; //var ParentChannelId = id.slice(id.lastIndexOf(".")); var ParentDevicelId = id.split(".").slice(0,-1).join("."); var ParentObject = getObject(ParentDevicelId); var ParentRole = ParentObject.common.role; if (ParentRole == "light.color" && getState(id).val > 0) { cntON++; log("HUE_State.ON id=" + id + " ParentRole=" + ParentRole + " Role=" + Role + " val=" + getState(id).val ); } }); setState(State_State, cntON > 0); setState(State_Cnt, cntON ); log("HUE_State.End"); } selector.on(function(obj) { HUE_State(obj); });
! //Re-evaluate each hour
//schedule("*/60 * * * ", countDevs);
schedule("/5 * * * *", HUE_State);//Evaluate for the first time HUE_State();
}
! ````
-
wenn ich mich recht entsinne dann wechselt der ".on" Datenpunkt einer Hue Gruppe auf true sobald auch nur eine der in der Gruppe enthaltenen lampen eingeschaltet wird. Bin nur gerade nicht in der nähe meines iobrokers um das nochmal zu prüfen aber falls ich recht habe dann wäre dein script garnicht notwendig.
-
wenn ich mich recht entsinne dann wechselt der ".on" Datenpunkt einer Hue Gruppe auf true sobald auch nur eine der in der Gruppe enthaltenen lampen eingeschaltet wird. Bin nur gerade nicht in der nähe meines iobrokers um das nochmal zu prüfen aber falls ich recht habe dann wäre dein script garnicht notwendig. `
Das war mein Problem, das eben die Gruppe nicht auf on geht wenn eine Lampe an ist. Es sei denn das ich das völlig übersehen habe. Ich prüfe das aber auch noch mal nach.
-
Ich habe das gerade noch mal getestet, bei mir geht die HUE Gruppe NICHT auf on wenn nur eine Lampe aus der Gruppe eingeschaltet ist. Erst wenn alle Lampen der Gruppe aktiv sind geht auch die Gruppe auf on.
Daher hilft mir mein Script da weiter. Es sei denn es gibt noch was das ich übersehen habe.
Malc