Moskus Skrevet 27. mars 2017 Skrevet 27. mars 2017 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("[email protected]", "FRA_HS#@epost.com", "", "", "HS3: Åpne vinduer/dører!", msg, "") Else hs.WriteLog("Vindu/dører", "Alle er lukket") End If End Sub 1 Siter
gullfrode Skrevet 3. mai 2017 Skrevet 3. mai 2017 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 Siter
ZoRaC Skrevet 3. mai 2017 Skrevet 3. mai 2017 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) Siter
gullfrode Skrevet 3. mai 2017 Skrevet 3. mai 2017 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. Siter
Moskus Skrevet 4. mai 2017 Forfatter Skrevet 4. mai 2017 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) Siter
ZoRaC Skrevet 4. mai 2017 Skrevet 4. mai 2017 Ser jeg var litt kjapp til å poste, så ikke at det var et par variabler der... identifier = enheten som skal motta varslet pri = low, normal, high, emergency (og et par til) msg = meldingen Siter
gullfrode Skrevet 4. mai 2017 Skrevet 4. mai 2017 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 Siter
Anbefalte innlegg
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.