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

Anbefalte innlegg

Skrevet (endret)

Hei

 

Etter disse postene 

Og hjelp av @Perri til å få hvilke data som blir sendt til og fra Sector så har jeg laget et lite script som jeg bruker. Det har vært lagt ut i overstående tråd også men da med litt rester etter kjapp testing ;) Har rensket det for undøvendig og feilnavngiving nå og tenkte å dele det med andre.

 

 ' Henter status fra Sector alarm
Public Sub Main(Parm As Object)

dim devicenumber as integer = 160 'Devicen som skal kontrolleres

dim debug as integer = 0 'Sett denne til 1 for å få data fra scriptet i loggen

    Dim sourcecode As String

    Dim sourceString As String = New System.Net.WebClient().DownloadString("https://panelapi.sectoralarm.net/MobileAppWS.svc/PanelStatus?userName=<BRUKERNAVN>&password=<PASSORD>&panel=<PANELID>")


        sourceString = replace(sourceString, "{", "")
        sourceString = replace(sourceString, "}", "")
        
        Dim arr1 As String() = sourceString.Split(New Char() {","c})
        Dim arr2 As String() = arr1(0).Split(New Char() {":"c})


        arr2(1) = Replace(arr2(1), chr(34), "")

        If arr2(1) = "disarmed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm av")
end if
            hs.SetDeviceValueByRef(devicenumber, 0, True)

        ElseIf arr2(1) = "armed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm på")
end if
            hs.SetDeviceValueByRef(devicenumber, 2, True)

        ElseIf arr2(1) = "partialarmed" Then
if debug = 1 then
            hs.WriteLog("Alarmstatus", "Skallsikring")
end if
            hs.SetDeviceValueByRef(devicenumber, 1, True)

        End If


End Sub

 

 

alarm.PNG

Endret av christofferraa
  • Like 5
  • 1 år senere...
Skrevet

Hei, 

Første-reis med hensyn på script, så "bare with me" :)

 

Kjører jeg https adressen i nettleseren min, med brukernavn, passord og panelID så fungerer det fint.
Men det ser ikke ut til at HS klarer å få inn info, så et eller annet sted gjør jeg feil.

Dette har jeg gjort:
1: Lagt "sector.txt" i /script-mappen. (Direkte kopi fra tråden her, kun endret device ID, brukernavn, passord og panelID

2: Laget en device i HS jeg har gitt navnet "alarm status", denne har device ID 126.

3: Lagt inn Value 0, 1 og 2 på Status Graphics

 

Så "noe" har jeg ikke fått til :) Noen som kan hjelpe meg videre? Mistenker det er noe innenfor "events" jeg ikke har/har gjort riktig?

5b267bda30bda_ScreenHunter124.thumb.png.801d53ef1fc83de05e7ddc9471f79d52.png

ScreenHunter-125.thumb.jpg.f4dd1d698a3c283fd83b8ffc50db816e.jpg

ScreenHunter-126.thumb.jpg.3e98d4282611b78d433d68ba0b5ef4f9.jpg

 

Testet med skallsikring, siden vi er hjemme :)

 

 

Skrevet
31 minutter siden, ZoRaC skrev:

Sier loggen noe?

Hvilket OS kjører serveren?

 

Kjører windows 7.

Fant dette i loggen, men skal lete om jeg finner noe mer.
Tror det var der jeg prøvde å kjøre en event manuelt, ut i fra en beskrivelse jeg fant et annet sted, men som ikke hjalp :)

5b26a1f685c6a_Skjermbilde2018-06-17kl_19_56_43.thumb.png.4c1e3435fd981e029e3a203d40819b23.png

Skrevet

Her er scriptet.

Tatt ut konto, passerd og panelID

Spoiler

' Henter status fra Sector alarm
Public Sub Main(Parm As Object)

dim devicenumber as integer = 126 'Devicen som skal kontrolleres

dim debug as integer = 0 'Sett denne til 1 for � f� data fra scriptet i loggen

    Dim sourcecode As String

    Dim sourceString As String = New System.Net.WebClient().DownloadString("https://panelapi.sectoralarm.net/MobileAppWS.svc/PanelStatus?userName=MIN-KONTO&password=MITT-PASSORD&panel=MIN-PANEL-ID")


        sourceString = replace(sourceString, "{", "")
        sourceString = replace(sourceString, "}", "")
        
        Dim arr1 As String() = sourceString.Split(New Char() {","c})
        Dim arr2 As String() = arr1(0).Split(New Char() {":"c})


        arr2(1) = Replace(arr2(1), chr(34), "")

        If arr2(1) = "disarmed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm av")
end if
            hs.SetDeviceValueByRef(devicenumber, 0, True)

        ElseIf arr2(1) = "armed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm på")
end if
            hs.SetDeviceValueByRef(devicenumber, 2, True)

        ElseIf arr2(1) = "partialarmed" Then
if debug = 1 then
            hs.WriteLog("Alarmstatus", "Skallsikring")
end if
            hs.SetDeviceValueByRef(devicenumber, 1, True)

        End If


End Sub

 

Skrevet

Mulig :)

Endret nå. Her er ny logg.

image.png.8502ea1265a1075628ddfbffe20f595d.png

 

Men tror fortsatt event-biten er feil. Vet egentlig ikke hva jeg skal gjøre der.. bare prøvd meg litt frem. Tenkte at det burde være noe der som leste av status :)

Så om noen som har dette oppe å kjører deler sin event-side blir jeg glad :) Her er min, ikke-fungerende..

 

image.png.befc3d6e5dff6672a4976316c240ab2b.png

 

Skrevet

Ok. Hvordan? Jeg beklager, men er helt grønn. 
Skal lage en "how-to" for neste grønne bruker når min fungerer :) 

Trykker jeg på pila for å kjøre scriptet manuelt, så står det i logg at den gjør det, men jeg får ikke opp noen ny dato/tid på device, så da antar jeg at den ikke har klart å oppdatere den?

 

Skrevet
Akkurat nå, Andreaz skrev:

Ok. Hvordan? Jeg beklager, men er helt grønn. 

 

Mener det heter «a recurring trigger» (en av de øverste). De kan du sette «run every 2 min». 

 

1 minutt siden, Andreaz skrev:

Trykker jeg på pila for å kjøre scriptet manuelt, så står det i logg at den gjør det, men jeg får ikke opp noen ny dato/tid på device, så da antar jeg at den ikke har klart å oppdatere den?

 

Det skyldes den nederste haken her :) 

3 timer siden, Andreaz skrev:

 

5b267bda30bda_ScreenHunter124.thumb.png.801d53ef1fc83de05e7ddc9471f79d52.png

 

Prøv å endre alarmen (slå av eller på skallsikring) og så bruk «run-knappen». Da skal devicen endre seg. :) 

Skrevet (endret)

Jaggu :) Nå ser det ut til å fungere bedre :)
Satt den på 2 minutter. Aner jo ikke hva sector har for trigger på for mange requests :)

 

MEN, det kan jo være en Sector "feature".. Slå på skallsikring (folk er hjemme her :) ) og slo av å ventet minst 2 minutter.
Sector appen oppdaterte seg, men ikke den direkte linken som scriptet bruker... den linken er ellers super-rask sammenlignet med hvor lang tid appen oppdaterer seg...

Ventet å ventet, men ikke før jeg låste opp døra inneifra fikk kona melding om at skallsikring var frakoblet og HST oppdaterte seg samtidig...

 

Tusen takk for hjelpen!

 

Så for viderekommende: Hvordan får jeg til å trykke på iconet i HST, få en popup som kjører "arm" og "disarm" :) 
Skjønner i teorien hva som må gjøres, at den knappen får en "ActionWhenReleased" "Screen: Show another screen on top..." for så å legge inn en ny "Alarm på/Alarm av" screen :)
 

Og for mer gøy, kanskje @Perri har klart å sniffe ut status-adressen til Yale Doorman for de som har Sector også? Den viser jo status i Sector appen :)

Endret av Andreaz
Skrevet

Prøvd følgende for å slå av alarm:

Knapp i HST som kjører denne kommandoen:

image.png.b3e72c076f5c654a05cd95b83671c267.png

 

og sector - AV.vb ser slik ut:

Spoiler

sub main()

dim page

page = hs.GetURL("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX","/",TRUE,80)
msgbox page

end sub

Etter å ha fulgt oppskrift på Homeseer.com

 

Får følgende feil i logg:

image.png.03e334c20dfe8ca082d8c4bc676f689d.png

 

Skrevet
6 minutter siden, Andreaz skrev:

og sector - AV.vb ser slik ut:

  Vis skjult innhold

sub main()

dim page

page = hs.GetURL("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX","/",TRUE,80)
msgbox page

end sub

Etter å ha fulgt oppskrift på Homeseer.com

 

Det bør nok bli noe slikt:

hs.GetURL("panelapi.sectoralarm.net", "/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX",TRUE,443)

 

eller

hs.URLAction("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX", "GET", "", "")
Skrevet
4 minutter siden, ZoRaC skrev:

 

Det bør nok bli noe slikt:

hs.GetURL("panelapi.sectoralarm.net", "/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX",TRUE,443)

 

eller


hs.URLAction("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX", "GET", "", "")

Kun den hs.GetURL linja, eller inne i det eksempel-scriptet jeg hadde med?

Skrevet
Akkurat nå, Andreaz skrev:

Kun den hs.GetURL linja, eller inne i det eksempel-scriptet jeg hadde med?

 

Sub Main()

hs.URLAction("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX", "GET", "", "")

End Sub

 

Tror jeg. :) 

Skrevet
3 minutter siden, ZoRaC skrev:

 

Sub Main()


hs.URLAction("https://panelapi.sectoralarm.net/MobileAppWS.svc/disarm?userName=XXXX&password=XXXX&panel=XXXX&disarmCode=XXXX", "GET", "", "")

End Sub

 

Tror jeg. :) 

Supert at du pøser på med forsøk :)
Får fortsatt feilmelding, men en ny. Kanskje det kan gi hint til løsning:

image.png.d6931aa7ef260548b644424239d6ee8f.png

Skrevet
1 minutt siden, Andreaz skrev:

Supert at du pøser på med forsøk :)
Får fortsatt feilmelding, men en ny. Kanskje det kan gi hint til løsning:

image.png.d6931aa7ef260548b644424239d6ee8f.png

 

Ser ut til at «page» fortsatt er nevnt i scriptet? Scriptet skal bare bestå av de 3 linjene jeg skrev over. :) 

Skrevet (endret)
10 minutter siden, ZoRaC skrev:

 

Ser ut til at «page» fortsatt er nevnt i scriptet? Scriptet skal bare bestå av de 3 linjene jeg skrev over. :) 

(Hvor er facepalm emojien ... :) )
Fjernet, tett etterfulgt av en ny feilmelding:

image.png.05c67d377567c0b761fb5fc76d63b163.png

Her er screenshot av scriptet, for å unngå flere skrivefeil....

image.thumb.png.f40ace2d39665ac0490659f08dd60bac.png

XXXX lagt inn for screenshot så klart :D:D 

 

Tror kanskje jeg må vente på at noen andre med sector sjekker linken.. for prøver jeg å legge den inn i nettleseren, fra https til og med disarmcode så får jeg feilmelding om "Failed to disarm"...  må kanskje klare meg med kun status inntil videre :) 

image.png.f0d6e0652faa89a94bab2d76346e5e86.png

Endret av Andreaz
Skrevet
8 minutter siden, Andreaz skrev:

Fjernet, tett etterfulgt av en ny feilmelding:

image.png.05c67d377567c0b761fb5fc76d63b163.png

 

Får du kjørt scriptet fra et Event? Bare for å utelukke om det er noe feil med oppsettet i HSTouch. :) 

Skrevet
12 minutter siden, Andreaz skrev:

5b26c7e8cef2f_Skjermbilde2018-06-17kl_22_42_00.thumb.png.4e1c987ff8c0bcc7bdc8fe09504209d6.png

 

 

Kanskje første linje må være:

Sub Main(ByVal params as Object) 

selv om jeg egentlig ikke trodde det skulle være nødvendig...

  • 3 måneder senere...
Skrevet
On 5/18/2017 at 12:25, Christoffer said:

Hei

 

Etter disse postene 

Og hjelp av @Perri til å få hvilke data som blir sendt til og fra Sector så har jeg laget et lite script som jeg bruker. Det har vært lagt ut i overstående tråd også men da med litt rester etter kjapp testing ;) Har rensket det for undøvendig og feilnavngiving nå og tenkte å dele det med andre.

 


 ' Henter status fra Sector alarm
Public Sub Main(Parm As Object)

dim devicenumber as integer = 160 'Devicen som skal kontrolleres

dim debug as integer = 0 'Sett denne til 1 for å få data fra scriptet i loggen

    Dim sourcecode As String

    Dim sourceString As String = New System.Net.WebClient().DownloadString("https://panelapi.sectoralarm.net/MobileAppWS.svc/PanelStatus?userName=<BRUKERNAVN>&password=<PASSORD>&panel=<PANELID>")


        sourceString = replace(sourceString, "{", "")
        sourceString = replace(sourceString, "}", "")
        
        Dim arr1 As String() = sourceString.Split(New Char() {","c})
        Dim arr2 As String() = arr1(0).Split(New Char() {":"c})


        arr2(1) = Replace(arr2(1), chr(34), "")

        If arr2(1) = "disarmed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm av")
end if
            hs.SetDeviceValueByRef(devicenumber, 0, True)

        ElseIf arr2(1) = "armed" Then
if debug = 1 then

            hs.WriteLog("Alarmstatus", "Alarm på")
end if
            hs.SetDeviceValueByRef(devicenumber, 2, True)

        ElseIf arr2(1) = "partialarmed" Then
if debug = 1 then
            hs.WriteLog("Alarmstatus", "Skallsikring")
end if
            hs.SetDeviceValueByRef(devicenumber, 1, True)

        End If


End Sub

 

 

alarm.PNG

 

Hvordan finner man sin PANELID? Eller devicenr? 

 

Rune

 

 

Skrevet
44 minutes ago, Kubegutt said:

 

Så hva med integeren som blir satt opp med Devicenumber? Hva er den? 

 

 

Beklager leste bare første delen av spørsmålet. Den finner du under "Advanced" på devicen du opprettet og er kalt "Reference ID".

  • Like 1

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.