Echter, mijn script werkt niet meer met de wave.me variant; de zwave.me dimmers lijken het actuele dimlevel te onthouden, en niet het gewenste dimlevel. Omdat ik de dimmer aanzet en direct uitschakel, is de lamp nog lang niet op het gewenste dimlevel. Doe je daarna de lamp aan, dan is deze sterk gedimmed, en zeker niet op het gewenste dimlevel. Erg ongemakkelijk dus.
Na wat stoeien met de scripts heb ik nu de volgende oplossing:
- Creeer een event met de naam 'POL_<housecode><deviceid>'
- Trigger op Device Status Change ' Changed to On' van het device <housecode><deviceid>
- Actions leeg laten; deze worden automatisch gevuld door het setPoweronlevel script
- Event kan gedisabled blijven
- het setPowerOnlevel script vult het gewenste dim level in het POL_ event in, en zal tevens het event enablen.
- De eerste keer dat de lamp aangaat, wordt het script ' POL_<housecode><deviceid> uitgevoerd, de lamp gaat naar het gewenste setpoint.
- het GH_disableevent.txt disabled direct het POL_ event, zodat deze maar 1 keer uitgevoerd wordt.
Aanroep van het script:
Code: Select all
setPoweronLevel.vb("main", "B2;75")
- 75 is het gewenste dim level.
Het setPoweronLevel script:
Code: Select all
Sub main(parm as Object)
Dim device As String
Dim dimlevel As String
Dim arrParm() As String
dim ev
Dim dvRef As long
' Extract parameters
arrParm = parm.ToString.Split(";")
device = arrParm(0)
dimlevel= arrParm(1)
' Look up Power On Level event for this device
ev = hs.GetEventEx("POL_" & device)
If not ev is nothing Then
' Clear all existing actions
hs.ClearActions(ev.evref)
'Add new action that sets current light level
'Add action to set request light level
dvRef = hs.GetDeviceRef(device)
hs.AddAction(ev.evref, 1, dvref, "DIM", dimlevel)
'Add action to disable this event
hs.AddAction(ev.evref, 5, "GH_disableevent.txt")
'Enable event
hs.EnableEvent(ev.name)
End If
End Sub
Code: Select all
sub Main
Dim ev
'Get the event that called us
ev = hs.GetLastEvent
'Disable this event
hs.DisableEvent ev
End Sub
Geert-Jan