Kom et lite stykke videre på bedre integrering av ID-lock i HS i går. ? Dette har irritert meg en del, siden det fungerte fint med Futurehome da jeg testet det for 1 år siden og da burde virkelig HS3 klare det samme! Jeg har fortsatt ikke lært meg å scripte, men google og testing har gjort at jeg i hvert fall har fått noe mer til å fungere.
Fra tidligere har jeg en del eventer og noen virtuelle enheter for å kunne sette "autolås", som @psv021 tidligere har skrevet om.
En virtuell enhet logger endringer på låsen via en event og script jeg fant på HS-forumet. https://forums.homeseer.com/showpost.php?p=1156347&postcount=1
Loggen ser da slik ut:
Ikke særlig nyttig fordi jeg ikke har klart å skille RFID-brikker og koder enda, men scriptet har en del andre muligheter også.
I går fikk jeg til å også lese status på "autolås", parameter 1, via et script jeg fant på HS-forumet som jeg gjorde noen marginale endringer på. Scriptet lar deg velge node, en start parameter og slutt parameter som den forsøker å hente gjeldende verdier fra og opprinnelig skriver til loggen. Jeg har koblet ut den delen, men det er bare å fjerne ' eventuelt før de linjene. I tillegg la jeg til at statusen som hentes ut (for å sette autolås betinger det at man kun henter ut verdien for parameter 1, men scriptet kan sikkert utvides til å håndtere flere parametre samtidig), skrives til en virtuell enhet som dermed viser status.
Sub Main(Parms As Object)
Dim Parm() as string = Parms.Split(",")
'hs.WriteLog("Z-Wave", "Node No: " & Parm(0))
'hs.WriteLog("Z-Wave", "Start Parameter: " & Parm(1))
'hs.WriteLog("Z-Wave", "End Parameter: " & Parm(2))
'hs.WriteLog("Z-Wave", "Status: " & Parm(3))
Dim Reply As String = ""
Dim HomeID As String = "XXXXXXX" <- fyll inn din Z-wave HomeID
Dim NodeNum As Byte = Parm(0)
Dim ParamNum As Byte = 0
For ParamNum = Parm(1) To Parm(2)
Dim logDeviceRef As String = Parm(3)
Reply = ""
Reply = hs.PluginFunction("Z-Wave", "", "Configuration_Get", {HomeID, NodeNum, ParamNum})
hs.writelog("Z-Wave", "Node " & NodeNum & ", Parameter " & ParamNum & " is set to " & Reply)
hs.WaitSecs(2)
hs.SetDeviceValueByRef(logDeviceRef, Reply, True)
Next
End Sub
Parameter 1 har 4 forskjellige verdier, fra 0-3, her satt opp i en virtuell enhet som scriptet oppdaterer. Status-Control kan vel fint stå som 'status' ser jeg. Ikoner har jeg ikke funnet noe bra til foreløpig.
Scriptet kjøres fra en event slik:
Foreløpig har jeg satt scriptet til å kjøre en gang i timen + ved endring av Hjemme / Borte - status. Jeg endrer innstillingene via script ved sovemodus og morgen, så skal legge til det også. Hver time er også unødvendig om natten, ønsker ikke å tappe batteriet unødvendig.
For testing ser opprinnelig script slikt ut:
Sub Main(Parms As Object)
Dim Parm() as string = Parms.Split(",")
hs.WriteLog("Z-Wave", "Node No: " & Parm(0))
hs.WriteLog("Z-Wave", "Start Parameter: " & Parm(1))
hs.WriteLog("Z-Wave", "End Parameter: " & Parm(2))
Dim Reply As String = ""
Dim HomeID As String = "XXXXX"
Dim NodeNum As Byte = Parm(0)
Dim ParamNum As Byte = 0
For ParamNum = Parm(1) To Parm(2)
Reply = ""
Reply = hs.PluginFunction("Z-Wave", "", "Configuration_Get", {HomeID, NodeNum, ParamNum})
hs.writelog("Z-Wave", "Node " & NodeNum & ", Parameter " & ParamNum & " is set to " & Reply)
hs.WaitSecs(2)
Next
End Sub
Kjøres med uten den fjerde parameteren i eventen. Merk at ikke alle parametre gir noe resultat tilbake.
For parameter 2 gir den status 5, som iht. manualen er "Not In Progress. RFID Registration mode not inprogress". Er ikke hjemme i dag, så har ikke testet å kjøre scriptet mens man gjør noe med RFID.
Parameter 3 - slagretning - fungerer ikke.
Med "Log send and receive device information to the HomeSeer log " aktivert (under Z-wave parameter under plugins) blir det en rekke like log hendelser:
Parameter 10 ga meg en lengre tallrekke på 10 siffer. Det er vel da muligens RFID koden (desimal verdi) til den første registrerte RFID-brikken?
Ved å legge inn fra parameter 10 til 20, f.eks. så gir scriptet tilbake en verdi for hver av parametrene 10-15, også gir den -1 på resten. Jeg antar da betyr at det er registrert 5 RFID-brikker nå. Sammenlignet resultatene på begge mine ID-lock og de samme chippene er registrert, men lås nr 2 ga verdi 0 på de som ikke hadde noe registrert.
Spørsmålet er hvordan man skal klare å lese nødvendig informasjon fra Access Control (event parameter) for å skille mellom brikker og koder? Jeg ser nå at låsen faktisk ble offisielt godkjent 5.8.2017 http://products.z-wavealliance.org/products/2293, så da kan vi vel muligens gå på HomeSeer (@Moskus?) og få dem til å lese event parameter riktig? Og da bør de også kunne klare å fange opp om døren sender om den står i åpen eller lukket posisjon også forhåpentligvis?