Jeg ønsker å få til en virtuell device for alle vinduer, og en for dørene. Denne skal oppdateres med hvilke vinduer/dører som er åpne til en hver tid. Eventuelt om alle er lukket.
 
	Scripting er jeg ganske fersk med, så det har blitt litt copy paste fra her inne samt homeseer forumet.
 
	Fant et script som skal gjøre akkurat det jeg trenger, men jeg får warning i loggen :
 
	VB.Net script exception(0), re-starting: Object reference not set to an instance of an object
 
	 
 
	Noen som har noen tips, er det noe åpenbart jeg har misset her?
 
	Til info så har jeg oppdatert scriptet med mine devicer 
 
	Jeg kjører forøvrig HS3 på Raspbian.
 
' these are the virtual devices to be updated by the script
'423    Windows
'424    Doors
'Use the reference ID of the door or window sensor devices in the arrays below
Public Sub Main(ByVal Parms as Object)
   Dim array_windows() as string = {"221", "217", "215", "213", "211"}
   Dim array_doors() as string = {"219", "209"}
   Dim windows_count as integer = 0
   Dim window_name as string = ""
   Dim wstr as string = ""
   Dim doors_count as integer = 0
   Dim door_name as String = ""
   Dim dstr as string = ""
   Dim dv as Object
End Sub
'Using 2 subs, one for doors and the other for windows
'WINDOWS
Sub windows(ByVal Parms as Object)
Try
windows_count = 0
window_name = ""
wstr = ""
for each devw as string in array_windows
       'hs.writelog("Array", "Window " & window_name & " | Value " & hs.DeviceValue(devw))
    if hs.DeviceValue(devw) = 1 then
                windows_count = windows_count + 1
        dv = hs.GetDeviceByRef(devw)
        window_name =  dv.Name(hs)
               wstr = wstr & window_name & ",<br>"
    hs.writelog("DoorWindow", window_name & " Open")
       'hs.writelog("DoorWindow", array_windows)
        end if
next
    If windows_count > 0 then
        hs.SetDeviceValueByRef(423,100,true)
        hs.SetDeviceString(423, wstr,true)
    Else
        hs.SetDeviceValueByRef(423,0,true)
        hs.SetDeviceString(423, "Alle vinduer lukket",true)
    End If
    hs.writelog("DoorWindow", "Window Count: " & windows_count)
Catch ex As Exception
hs.WriteLog ("DoorWindow", "Error: " & ex.Message)
End Try
End Sub
'DOORS
Sub doors(ByVal Parms as Object)
Try
doors_count = 0
door_name = ""
dstr = ""
for each devd as string in array_doors
       'hs.writelog("Array", "Door " & door_name & " | Value " & hs.DeviceValue(devd))
    if hs.DeviceValue(devd) = 1 then
        dv = hs.GetDeviceByRef(devd)
        door_name =  dv.Name(hs)
        doors_count = doors_count + 1
        dstr = dstr & door_name & ",<br>"
    hs.writelog("DoorWindow", door_name & " Open")
        end if
next
    If doors_count > 0 then
        hs.SetDeviceValueByRef(424,100,true)
        hs.SetDeviceString(424, dstr,true)
    Else
        hs.SetDeviceValueByRef(424,0,true)
        hs.SetDeviceString(424, "Alle dører lukket",true)
    End If
    hs.writelog("DoorWindow", "Door Count: " & doors_count)
Catch ex As Exception
hs.WriteLog ("DoorWindow", "Error: " & ex.Message)
End Try
End Sub