Dank je voor de voorbeelden, die had ik vanmiddag inderdaad gevonden na de hints in dit draadje.
Hij start mn script nu inderdaad als er waardes veranderen.
Alleen heel raar: als ik beneden door de kamer loop en homeseer beweging detecteert, start hij het script wel, maar als de waardes van het verbruik van de wasmachine of wasdroger wijzigen, start hij het script weer niet.
Hier wat regels uit mijn log, waaruit blijkt dat de device update wel aankomt bij Homeseer en dat homeseer netjes mn script start (wat ik voor nu gewoon nog ff leeg heb gehouden):
10/16/2012 9:17:26 PM Device Update Device: Z-Wave Woonkamer Woonkamer lichtsterkte value set to 4 (400/%)
10/16/2012 9:17:27 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:17:27 PM Event Running script in background: status_update.txt
10/16/2012 9:17:27 PM Device Update Device: Begane grond Woonkamer Woonkamer temperatuur value set to 17.8333333333333 (1783/C)
10/16/2012 9:17:28 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:17:28 PM Event Running script in background: status_update.txt
10/16/2012 9:19:28 PM Device Update Device: Begane grond Woonkamer Woonkamer beweging value set to 255 ()
10/16/2012 9:19:29 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:19:29 PM Event Running script in background: status_update.txt
10/16/2012 9:20:06 PM Device Update Device: Begane grond Keuken Dimmer keuken Status set to OFF
10/16/2012 9:20:06 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:20:06 PM Event Running script in background: status_update.txt
10/16/2012 9:20:12 PM Device Update Device: Begane grond Woonkamer Root Device 7 Status set to OFF
10/16/2012 9:20:13 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:20:13 PM Event Running script in background: status_update.txt
10/16/2012 9:20:49 PM Device Update Device: Begane grond Woonkamer Dimmer woonkamer Status set to OFF
10/16/2012 9:20:50 PM Event Event Trigger "Status devices updaten"
10/16/2012 9:20:50 PM Event Running script in background: status_update.txt
maar hetzelfde gaat niet op voor de wasmachine en wasdroger:
10/16/2012 9:14:27 PM Device Update Device: Verbruik Washok Wasmachine Verbruik value set to 200 (2 Watts)
10/16/2012 9:14:28 PM Device Update Device: Verbruik Washok Wasdroger actueel value set to 200 (2 Watts)
10/16/2012 9:14:37 PM Device Update Device: Verbruik Washok Wasmachine Verbruik value set to 100 (1 Watts)
10/16/2012 9:14:39 PM Device Update Device: Verbruik Washok Wasdroger actueel value set to 100 (1 Watts)
10/16/2012 9:14:59 PM Device Update Device: Verbruik Washok Wasmachine Verbruik value set to 0 (0 Watts)
10/16/2012 9:15:01 PM Device Update Device: Verbruik Washok Wasdroger actueel value set to 0 (0 Watts)
waarom de een wel en de ander niet?! pfff...
Waarom start mn script niet?
Re: Waarom start mn script niet?
ik begin de moed op te geven, zeker als ik dit lees:
http://www.domoticaforum.eu/viewtopic.php?f=50&t=5853
het zal wel aan die everspring module liggen dat het me niet lukt.
de aangedragen oplossing om met een status=only device te werken, lukt ook niet.
dan maar een niet-charmante oplossing: gewoon elke 30 seconden mn wasmachinescript draaien
http://www.domoticaforum.eu/viewtopic.php?f=50&t=5853
het zal wel aan die everspring module liggen dat het me niet lukt.
de aangedragen oplossing om met een status=only device te werken, lukt ook niet.
dan maar een niet-charmante oplossing: gewoon elke 30 seconden mn wasmachinescript draaien

Re: Waarom start mn script niet?
om te blijven bij voorbeeld 1 hierboven je hebt een case wasmachine en wasdroger in je script staan ?AshaiRey wrote:Ik weet niet of dit je gaat helpen dus gooi ik het bot maar voor je op
Hier een voorbeeld van het gebruik van hs.RegisterStatusChangeCB
http://board.homeseer.com/showthread.php?t=88496
Hier een wat recenter bericht met een eenvoudiger script
http://board.homeseer.com/showpost.php? ... ostcount=6
en kun je die dan posten ?
Re: Waarom start mn script niet?
ik heb voorbeeld 1 gebruikt en uitgekleed om te testen.
het scriptje heb ik hieronder geplaatst, met de opmerking dat het me er in de test alleen om te doen is om te zien of het script inderdaad gestart wordt.
Ik kan uit mn logfile opmaken dat het script inderdaad wordt gestart bij elke valuechange, behalve.... bij de everspring tussenstekkers. Die blijken (zie twee posts hierboven) geen events op basis van een value change te kunnen aantrappen
Ik heb nu een recurring event die om de minuut mn wasmachinescript draait.
inhoud script:
'q14 = actueel verbruik van de wasmachine
'v11 = virtual devive met fake verbruik voor testdoeleinden
'v10 = virtual device met wasmachine status
sub main(parms)
'X10 status the device changed to: 2=ON 3=OFF 4=DIM
'The device ID is the device reference number as stored in the device class.
'When using hs.GetDevice, this is the .ref property. It can be used to
'iterate through all the devices to find the exact device that changed status
'and get its name, location, etc.
'The housecode and devicecode are the X10 codes of the device that changed
'status.
'parms(0) ' housecode
'parms(1) ' device code
'parms(2) ' status
'parms(3) ' device ID
'2 = ON
'3 = OFF
'4 = DIM
'17 = UNKNOWN
Dim strDeviceCode, strDeviceName, strDeviceString
Dim iStatus
strDeviceCode = uCase(Trim(uCase(parms(0) & parms(1))))
strDeviceName = GetDeviceName(strDeviceCode)
iStatus = parms(2)
if len(strDeviceCode) > 1 then
select case strDeviceCode
case "q14"
'Wasmachine
hs.WriteLog "TEST", "Wasmachine is veranderd"
end select
'Write it to the log
if strDeviceString <> "" then
hs.SetDeviceString strDeviceCode, strDeviceString
hs.WriteLog "State Change", strDeviceName & " - " & strDeviceString
else
hs.WriteLog "Status_Change Error", "Device string not found for " & strDeviceCode
end if
else
hs.WriteLog "Status_Change Error", "Improper device code of zero length."
end if
end sub
function GetDeviceName(strDeviceCode)
dim iDeviceCount, iIndex, objDevice
' Get total number of devices
iDeviceCount = hs.DeviceCount
for iIndex = 1 to iDeviceCount
set objDevice = hs.GetDevice(iIndex)
if lCase(strDeviceCode) = lCase(objDevice.hc & objDevice.dc) then
GetDeviceName = strDeviceCode & " (" & objDevice.Name & ": " & objDevice.Location & ")"
exit function
end if
next
GetDeviceName = ""
set objDevice = Nothing
end function
het scriptje heb ik hieronder geplaatst, met de opmerking dat het me er in de test alleen om te doen is om te zien of het script inderdaad gestart wordt.
Ik kan uit mn logfile opmaken dat het script inderdaad wordt gestart bij elke valuechange, behalve.... bij de everspring tussenstekkers. Die blijken (zie twee posts hierboven) geen events op basis van een value change te kunnen aantrappen

Ik heb nu een recurring event die om de minuut mn wasmachinescript draait.
inhoud script:
'q14 = actueel verbruik van de wasmachine
'v11 = virtual devive met fake verbruik voor testdoeleinden
'v10 = virtual device met wasmachine status
sub main(parms)
'X10 status the device changed to: 2=ON 3=OFF 4=DIM
'The device ID is the device reference number as stored in the device class.
'When using hs.GetDevice, this is the .ref property. It can be used to
'iterate through all the devices to find the exact device that changed status
'and get its name, location, etc.
'The housecode and devicecode are the X10 codes of the device that changed
'status.
'parms(0) ' housecode
'parms(1) ' device code
'parms(2) ' status
'parms(3) ' device ID
'2 = ON
'3 = OFF
'4 = DIM
'17 = UNKNOWN
Dim strDeviceCode, strDeviceName, strDeviceString
Dim iStatus
strDeviceCode = uCase(Trim(uCase(parms(0) & parms(1))))
strDeviceName = GetDeviceName(strDeviceCode)
iStatus = parms(2)
if len(strDeviceCode) > 1 then
select case strDeviceCode
case "q14"
'Wasmachine
hs.WriteLog "TEST", "Wasmachine is veranderd"
end select
'Write it to the log
if strDeviceString <> "" then
hs.SetDeviceString strDeviceCode, strDeviceString
hs.WriteLog "State Change", strDeviceName & " - " & strDeviceString
else
hs.WriteLog "Status_Change Error", "Device string not found for " & strDeviceCode
end if
else
hs.WriteLog "Status_Change Error", "Improper device code of zero length."
end if
end sub
function GetDeviceName(strDeviceCode)
dim iDeviceCount, iIndex, objDevice
' Get total number of devices
iDeviceCount = hs.DeviceCount
for iIndex = 1 to iDeviceCount
set objDevice = hs.GetDevice(iIndex)
if lCase(strDeviceCode) = lCase(objDevice.hc & objDevice.dc) then
GetDeviceName = strDeviceCode & " (" & objDevice.Name & ": " & objDevice.Location & ")"
exit function
end if
next
GetDeviceName = ""
set objDevice = Nothing
end function