NEWS
HUE Lampen sollen beim Einschalten alten zustand einnehmen
-
Hallo
ich bin grade neu in ioBroker eingestiegen (komme von Fhem) und möchte erst mal nur meine Hue lampen schalten.
Das Ein- und Ausschalten klappt zwar aber ich möchte gerne das die Lampen beim Einschalten den vorherigen zustand wieder einnehmen.
Momentan behalten die Lampen beim einschalten zwar die Farbe aber sie gehen direkt auf 100% Helligkeit.
Hoffentlich hat jemand einen tipp dazu.
Gruß
Bam Bam
-
@Bam Bam:Hallo
ich bin grade neu in ioBroker eingestiegen (komme von Fhem) und möchte erst mal nur meine Hue lampen schalten.
Das Ein- und Ausschalten klappt zwar aber ich möchte gerne das die Lampen beim Einschalten den vorherigen zustand wieder einnehmen.
Momentan behalten die Lampen beim einschalten zwar die Farbe aber sie gehen direkt auf 100% Helligkeit.
Hoffentlich hat jemand einen tipp dazu.
Gruß
Bam Bam `
Objekt für die Helligkeit erstellen und den Wert bei Änderung da ablegen
bei einschalten diesen auslesen
fettich
-
Ich habe bei mir das mit den HUE_Lampen so gelöst, daß ich
sie sowohl per VIS, als auch CUXD-Switch, also auch HM-Fernbedienung anschalten kann.
!
// Konstanten deklarieren const lastLevelStateName = 'hue.lastLevel.Lampe'; const hueLampChannel = 'hue.0.hue-bridge.Lampe'; const cuxdSwitchId = 'hm-rpc.2.CUX4000010.2.STATE'; const remoteChannel = 'hm-rpc.0.ABC1234567.1'; ! // Datenpunkt anlegen createState(lastLevelStateName, 100, {type: 'number', min: 0, max: 100, unit: '%'}); ! // CCU2-Schalter betätigt on(cuxdSwitchId, function (obj) { var cuxdState = obj.state.val; var level = getState(hueLampChannel+'.level').val; if (cuxdState && level <= 0) { var lastLevel = getState(lastLevelStateName).val; setState(hueLampChannel+'.on', true, true); setState(hueLampChannel+'.level', lastLevel); } else if (!cuxdState && level > 0) { setStateIfChanged(hueLampChannel+'.on', false); } }); ! // Fernbedienung on({id: [remoteChannel+'.PRESS_SHORT',remoteChannel+'.PRESS_LONG'], val: true}, function() { var level = getState(hueLampChannel+".level").val; if (level <= 0) { var lastLevel = getState(lastLevelStateName).val; setState(hueLampChannel+'.on', true, true); setState(hueLampChannel+'.level', lastLevel); } else { setStateIfChanged(hueLampChannel+'.on', false); } }); ! // Letzte Helligkeit speichern on(hueLampChannel+'.level', function (obj) { if (obj.state.val > 0 ) { setStateIfChanged(lastLevelStateName, obj.state.val, true); } }); ! // HUE-Lampe geschaltet on(hueLampChannel+'.on', function (obj) { setStateDelayed(cuxdSwitchId, obj.state.val, 500); }); !
IM Endeffekt brauchst Du wohl nicht alles, aber die Funktionalität ist gegeben.
Sogar, wenn über die HUE-App die Helligkeit geändert wird, dann
wird im ioBroker die letzte Helligkeit gespeichert.
Die Methode "setStateIfChanged" liegt bei mir in einem globalen Script StateUtils und sieht so aus.
!
function setStateIfChanged(id, state, ack, callback) { if (getState(id).val != state) { setState(id, state, ack, callback); } } !
Damit wird der Wert nur dann verändert, wenn sich etwas geändert hat.Man kann aber natürlich auch setStateIfChanged durch setState ersetzen.
-
Ich bin auch ein neuling im iobroker und würde das script gerne nutzen.es läuft soweit auch aber wie definiere ich meine lampe damit bzw wie trage ich diese ein.