Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

SCRIPT: CheckDoorsAndWindows.vb


Moskus

Anbefalte innlegg

Et script jeg bruker til å sjekke om hvilke dører eller vinduer som er åpne, og sender en email/push-melding med den beskjeden på egnede tidspunkter (som f.eks. når alarmen blir skrudd på eller huset går over i natt-modus).

 

Du må endre (minst) tre linjer, og det er hhv. "Dim rfxcom() as Integer..." og "Dim zwave() as integer..." og nederst "hs.SendEmail...". Jeg sender push-meldinger til Pushalot og/eller PushSafer (hvor sistnevnte snart får en plugin).

 

 

CheckDoorsAndWindows.vb

Sub Main(ByVal input As Object)
        Dim lst As New System.Collections.Generic.List(Of String)
        Dim closedStatus As Integer = 100

        'RFXCOM devices
        Dim rfxcom() As Integer = {41, 1188, DINE RFXCOM-SENSORER HER KOMMASEPARERT}
        closedStatus = 2
        For Each d As Integer In rfxcom
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        'Zwave devices
        Dim zwave() As Integer = {450, 545, DINE Z-WAVE-SENSORER HER KOMMASEPARERT}
        closedStatus = 255
        For Each d As Integer In zwave
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        If lst.Count > 0 Then
            Dim msg As String = "Følgende vinduer er åpne: " & vbNewLine
            msg &= String.Join(vbNewLine, lst)

            hs.SendEmail("TIL_HVEM@epost.com", "FRA_HS#@epost.com", "", "", "HS3: Åpne vinduer/dører!", msg, "")
        Else
            hs.WriteLog("Vindu/dører", "Alle er lukket")
        End If

    End Sub

 

  • Like 1
Lenke til kommentar
Del på andre sider

  • 1 måned senere...
Sub Main(ByVal input As Object)
        Dim lst As New System.Collections.Generic.List(Of String)
        Dim closedStatus As Integer = 100

        'RFXCOM devices
        Dim rfxcom() As Integer = {}
        closedStatus = 2
        For Each d As Integer In rfxcom
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        'Zwave devices
        Dim zwave() As Integer = {454,878,885,896}
        closedStatus = 255
        For Each d As Integer In zwave
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        If lst.Count > 0 Then
            Dim msg As String = "Følgende vinduer er åpne: " & vbNewLine
            msg &= String.Join(vbNewLine, lst)

            hs.plugin("Pushover (3P)").PushMessage("HS3: Åpne vinduer/dører!", msg, "")
        Else
            hs.WriteLog("Vindu/dører", "Alle er lukket")
        End If

    End Sub

Får feilmelding 

Running script C:\Program Files (x86)\HomeSeer HS3\scripts\CheckDoorsAndWindows.vb :Målet forårsaket et unntak under aktivering.Finner ikke "Public"-medlem plugin på typen hsapplication.

ved kjøring av script.

Lagt inn Pushover-plugin og sjekket at den fungerer ved å lage en event.

Skjønner at det er feil i pushover-kommandoen, bare ikke hva jeg skal gjøre:) 

Snervei til Pushover 3P-Tråd, call-kommando i første post.https://forums.homeseer.com/showthread.php?t=160996

Alle har 0 Off-Closed-No Motion og 255 On-Open-Motion

Lenke til kommentar
Del på andre sider

Jeg bruker Pushover fra script slik:

Sitat

Dim pushArr(7) As Object
        pushArr(0) = identifier
        pushArr(1) = message
        pushArr(2) = "HomeSeer"
        pushArr(3) = pri
        pushArr(4) = Nothing
        pushArr(5) = Nothing
        pushArr(6) = Nothing
        pushArr(7) = Nothing
        hs.PluginFunction("Pushover 3P", "", "Pushscript", pushArr)

 

Lenke til kommentar
Del på andre sider

Skjønner ikke bæra(men setter stor pris på hjelpen så langt), teskjemetoden må til her.


mai-04 00.17.05	 	Error 1	Running script C:\Program Files (x86)\HomeSeer HS3\scripts\CheckDoorsAndWindows.vb :Målet forårsaket et unntak under aktivering.Overbelastningsoppløsning mislyktes fordi ingen tilgjengelig PluginFunction godtar dette antallet argumenter.
Sub Main(ByVal input As Object)
        Dim lst As New System.Collections.Generic.List(Of String)
        Dim closedStatus As Integer = 100

        'RFXCOM devices
        Dim rfxcom() As Integer = {}
        closedStatus = 2
        For Each d As Integer In rfxcom
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        'Zwave devices
        Dim zwave() As Integer = {454,878,885,896}
        closedStatus = 255
        For Each d As Integer In zwave
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        If lst.Count > 0 Then
            Dim msg As String = "Følgende vinduer er åpne: " & vbNewLine
            msg &= String.Join(vbNewLine, lst)

            hs.PluginFunction("Pushover 3P", "", "HS3: Åpne vinduer/dører!", msg, "")
        Else
            hs.WriteLog("Vindu/dører", "Alle er lukket")
        End If

    End Sub

Prøve å sette inn Dim pushArr... delen her og der og, men fikk bare flere feilmeldinger.

Lenke til kommentar
Del på andre sider

Hvor har du dette fra:

hs.plugin("Pushover (3P)").PushMessage("HS3: Åpne vinduer/dører!", msg, "")

Det fungerer ikke slik i HS3. Dette er HS2

 

 

Prøv å erstatt denne linjen:

hs.PluginFunction("Pushover 3P", "", "HS3: Åpne vinduer/dører!", msg, "")

Med dette:

Dim pushArr(7) As Object
pushArr(0) = identifier DENNE MÅ DU FINNE UT AV 
pushArr(1) = msg
pushArr(2) = "HomeSeer"
pushArr(3) = pri DENNE MÅ DU FINNE UT AV
pushArr(4) = Nothing
pushArr(5) = Nothing
pushArr(6) = Nothing
pushArr(7) = Nothing
hs.PluginFunction("Pushover 3P", "", "Pushscript", pushArr)

 

Lenke til kommentar
Del på andre sider

Takk for hjelpen!

Da ble det slik(endre closed-status til 0 siden alle dør/vindussensorene mine har 0 Off-Closed-No Motion)

Sub Main(ByVal input As Object)
        Dim lst As New System.Collections.Generic.List(Of String)
        Dim closedStatus As Integer = 100

        'RFXCOM devices
        Dim rfxcom() As Integer = {}
        closedStatus = 2
        For Each d As Integer In rfxcom
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        'Zwave devices
        Dim zwave() As Integer = {454,878,885,896,903}
        closedStatus = 0
        For Each d As Integer In zwave
            If hs.DeviceValue(d) <> closedStatus Then
                Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
                lst.Add(dev.Location2(hs) & " " & dev.Location(hs) & " " & dev.Name(hs))
            End If
        Next

        If lst.Count > 0 Then
            Dim msg As String = "Følgende vinduer er åpne: " & vbNewLine
            msg &= String.Join(vbNewLine, lst)

            Dim pushArr(7) As Object
            pushArr(0) = "All Clients" 
            pushArr(1) = msg
            pushArr(2) = "HomeSeer"
            pushArr(3) = Nothing
            pushArr(4) = Nothing
            pushArr(5) = Nothing
            pushArr(6) = Nothing
            pushArr(7) = Nothing
            hs.PluginFunction("Pushover 3P", "", "Pushscript", pushArr)
        Else
            hs.WriteLog("Vindu/dører", "Alle er lukket")
        End If

    End Sub

Poster senere omskrevet for vann/røyksensorene jeg har, hovedsakelig pga. vannsensorene jeg begynte med galskapen her:P

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.