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.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login