ich hoffe auf Hilfe von Euch, da is über die Suche leider nichts passendes gefunden habe. Ich habe nach umstellung von OH2.5 auf OH4.3
mit der folgenden Rule, welche ich erfolgreich unter OH2.5 genutzt habe.
Es scheint mir, dass die Timer in OH4.3 anders konfiguriert werden müssen.
Code: Alles auswählen
var Number dimLevelMILD = 2
var Number Huelevel = 1
val int timeoutMills = 100
var Timer timerMILD = null
var Timer timerHue = null
rule MIA_LEDLicht_Remote
when
Channel "deconz:switch:00212E0764E9:847127fffe593232011000:buttonevent" triggered
then
dimLevelMILD = Shellyrgbw_mia_Color_VerstRkung.state as Number
switch(receivedEvent)
{
case "1002": // ON OFF
if (Shellyrgbw_mia_Control_Betrieb.state == OFF)
{ Shellyrgbw_mia_Control_Betrieb.sendCommand(ON)}
else
{ Shellyrgbw_mia_Control_Betrieb.sendCommand(OFF)}
case "2001": // dim brighter
if (timerMILD === null)
{
timerMILD = createTimer(now.plusSeconds(0), [ |
Shellyrgbw_mia_Color_VerstRkung.sendCommand(dimLevelMILD)
if (dimLevelMILD > 100) dimLevelMILD = 100
if (dimLevelMILD == 100) {
timerMILD = null
} else {
dimLevelMILD = dimLevelMILD + 2
timerMILD.reschedule(now.plusMillis(timeoutMills))
}
])
}
case "2003": // dim stop
{
timerMILD?.cancel
timerMILD = null
}
case "3001": // dim darker
if (timerMILD === null) {
timerMILD = createTimer(now.plusSeconds(0), [ |
Shellyrgbw_mia_Color_VerstRkung.sendCommand(dimLevelMILD)
if (dimLevelMILD < 2) dimLevelMILD = 2
if (dimLevelMILD == 2) {
timerMILD = null
} else {
dimLevelMILD = dimLevelMILD - 2
timerMILD.reschedule(now.plusMillis(timeoutMills))
}
])
}
case "3003": // dim stop
{
timerMILD?.cancel
timerMILD = null
}
case "5001": // color right
if (timerHue === null)
{
timerHue = createTimer(now.plusSeconds(0), [ |
Shellyrgbw_mia_Color_Farbe.sendCommand(Huelevel+",100,100")
if (Huelevel > 360) Huelevel = 360
if (Huelevel == 360) {
timerHue = null
} else {
Huelevel = Huelevel + 2
timerHue.reschedule(now.plusMillis(timeoutMills))
}
])
}
case "5003": // color stop
{
timerHue?.cancel
timerHue = null
}
case "4001": // color left
if (timerHue === null) {
timerHue = createTimer(now.plusSeconds(0), [ |
Shellyrgbw_mia_Color_Farbe.sendCommand(Huelevel+",100,100")
if (Huelevel < 0) Huelevel = 0
if (Huelevel == 0) {
timerHue = null
} else {
Huelevel = Huelevel - 2
timerHue.reschedule(now.plusMillis(timeoutMills))
}
])
}
case "4003": // color stop
{
timerHue?.cancel
timerHue = null
}
}
end
Habt Ihr eine Idee ?
Danke im Voraus.