Ich habe mal testweise versucht, meine zeitkritischsten Rules von openHAB nach Node-Blue umzusetzen.
Es geht um nichts weiteres, als eine simple Bewegungsmelder-Licht-Steuerung. Sobald Bewegung gemeldet wird, soll das Licht angehen und x Minuten nach der letzten Bewegung wieder ausgehen. Es sind zwei Homematic-Bewegungsmelder, 1 Xiaomi (via zigbee2mqtt) und eine Hue-Lampe mit von der Partie.
Es fehlen noch ein paar Details, dass das Licht erst ab einer gewissen Dunkelheit angehen soll, die werde ich aber auch noch hinbekommen. DafĂĽr muss ich aber erst ein paar virtuelle items aus openHAB nach mqtt transformieren, damit ich ĂĽber Homegear Zugriff bekommen.
Zur Referenz ist hier die Regel in openHAB.
rule "F1MD_MOTION"
when
Item F1MD_MOTION changed from OFF to ON or
Item F1MD2_MOTION changed from OFF to ON or
Item F1MD3_MOTION changed from OFF to ON
then
var Number schwelle = LS_MD_XIAOMI.state
var boolean lightOn = DayPhase.state.toString != "DAYLIGHT" && DayPhase.state.toString != "NOON"
lightOn = lightOn || F1DL_TOGGLE.state != OFF
lightOn = lightOn || F1MD3_BRIGHTNESS.state < schwelle
if (!lightOn)
{
logInfo(logger,F1DL_TOGGLE.state.toString + " / " + DayPhase.state.toString + " / " + F1MD3_BRIGHTNESS.state + " > " + schwelle.toString)
return
}
if (F1DL_TOGGLE.state != ON)
{
var Number DIM = MOTION_BRIGHTNESS.state
F1DL_TOGGLE.sendCommand(ON)
F1DL_DIMM.sendCommand(DIM)
}
else
{
F1DL_TOGGLE.sendCommand(ON)
}
end
Kurze Frage zur LightNode. Wie kann ich denn bei einer Hue-Lampe gleichzeitig einschalten, die Helligkeit und die Farbtemperatur bestimmen. Brauche ich dafĂĽr 2 oder 3 Knoten?
Dafuer brauchst du mehr als nur die “Light”-Node, da die IIRC nur die Datenpunkte STATE und LEVEL (als Dimmer) anspricht.
Ich weiss aus’m Kopf jetzt auch nicht, ob man bei Hue die Einstellungen in beliebiger Reihenfolge setzen kann (also erst Temperatur, dann Helligkeit und dann “an”), aber generell waere das glaube ich ein guter Fall fuer die “synchronous”-Node
Ähh. Ich bin ja ahnungslos was Node-Blue angeht, kannst Du mal einen solchen Flow hier reinkopieren? Ich kann ja bei einer Light-Node immer nur einen Wert setzen. Was muss ich denn erzeugen, damit eine Lampe eingeschaltet wird und auf volle Helligkeit geht?
$hg->putParamset($device_id, 1, “VALUES”, array(“BRIGHTNESS” => EINWERT, “HUE” =>NOCHEINWERT);
Die Liste kann um State, et erweitert werden.
Ich meine die Reihenfolge für das Setzen der Variablen war nicht egal. Du kannst alternativ eine “synchronous”-Node nehmen und daran mehrere Ausgangsvariablen hängen. Diese werden dann immer in der angegebenen Reihenfolge geschaltet. Der Ansatz von @trilu ist aber ebenfalls ein guter Trick, welcher das gleiche bewirkt.