-
Innlegg
16 882 -
Ble med
-
Besøkte siden sist
-
Dager vunnet
810
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Alt skrevet av Moskus
-
... den er to og et halvt år gammel. Men det går fint å bestille en alene, det gjorde jeg.
-
Hvordan sjekker dere om vaskemaskinen er ferdig?
Moskus svarte på ATWindsor sitt emne i Automasjonskaféen
Brukte vibrasjon først. Nå strømmåling (som er vesentlig mer stabilt). -
Det tror jeg muligens er en sannhet med modifikasjoner. De støtter nok litt forskjellig utstyr, det kan hende. (Og Z-wave-støtten i Home Assistant er fremdels kun OpenZwave).
-
Ja, men i praksis har du ikke bruk for den. Lite utstyr som går på 220V og snakker US-Zwave.
-
Prøv scriptet mitt som fikk egen post. Hvis det ikke virker så har vi større problemer, for det har jeg iallfall verifisert at virker med mine to låser.
-
.... okay? Du skal jo ikke lese scriptet selv, det er det jo PCen som gjør for deg. For meg ville det være en dealbreaker at man må innom en tredjeparts plugin for å sende en Z-wave kommando. Spesielt når det ikke virker... Nei, jeg kan ikke se noe galt med den. Men feilmeldingene tyder på at det f.eks. kan være noe rart med encodingen som er brukt til å lagre fila. Det er lagret med .vb endelse (ikke .txt eller andre ting)? Jeg skal innrømme at jeg ikke har testet akkurat dette scriptet, men det som er postet tidligere (dvs her) fungerer utmerket.
-
Det hadde jeg valgt.
-
Ja OK. Kan du sjekke selve .vb-filen at det ikke er noen merkelige tegn? Av og til skjer det noe spesielt når kode kopieres herfra.
-
Strengt tatt skal @toonwolf kunne bruke dette (gitt at device 707 inneholder en kode, og device 647 er root til en lås): Sub Main(ByVal inputArgs As String) hs.WriteLog("Add user", "Adding user...") Dim interfaceID As String = hs.GetINISetting("Interfaces", "IFace_0_Unique", "", "Z-Wave.ini") hs.WriteLog("Add user", "InterfaceID: " & interfaceID) Dim place As Integer = 79 Dim PINnumber As Integer = hs.DeviceValue(737) Dim PINstring As String = PINnumber.ToString("0000") Dim nodeNumber As String = ZwaveUtil_GetNodeIdByRef(647) Dim configResult = hs.PluginFunction("Z-Wave", "", "AddUserCodePin", {nodeNumber, place.ToString, PINstring, "TEST-user", interfaceID}) hs.WriteLog("Add user", "Done with result " & configResult.ToString) End Sub Public Function ZwaveUtil_GetNodeIdByRef(ByVal deviceId As Integer) As Integer Dim nodeId As Integer = -1 If (deviceId > 0) Then Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(deviceId) If (device IsNot Nothing) Then Dim pdata As HomeSeerAPI.PlugExtraData.clsPlugExtraData = device.PlugExtraData_Get(hs) If (pdata IsNot Nothing) Then nodeId = pdata.GetNamed("node_id") End If End If Else Throw New System.Exception("Device not found: " + deviceId) End If Return nodeId End Function
-
Igjen tror jeg du må ta opp BLlock-spesifikke spørsmål med Blade. Men: ¨ Du vet vel bedre enn andre at du må starte på plass 60 for 150-versjonen? Støtter i det hele tatt 101 flere brukere med Z-wave?
-
Skrev det ferdig for å kunne bruke det litt mer generelt:
-
Inspirert til å løse @toonwolf sitt problem. Se under: Sub Add(ByVal inputArgs As String) 'Input: RootReference;place;NewPin 'Example: 342;65;1234 hs.WriteLog("Add user", "Adding user...") Dim interfaceID As String = hs.GetINISetting("Interfaces", "IFace_0_Unique", "", "Z-Wave.ini") hs.WriteLog("Add user", "InterfaceID: " & interfaceID) Dim rootDeviceRef As Integer = inputArgs.Split(";")(0) Dim place As Integer = inputArgs.Split(";")(1) Dim PINnumber As Integer = inputArgs.Split(";")(2) Dim PINstring As String = PINnumber.ToString("0000") Dim nodeNumber As String = ZwaveUtil_GetNodeIdByRef(rootDeviceRef) hs.WriteLog("Removing user", "Node number: " & nodeNumber) Dim configResult = hs.PluginFunction("Z-Wave", "", "AddUserCodePin", {nodeNumber, place.ToString, PINstring, "TEST-user", interfaceID}) hs.WriteLog("Add user", "Done with result " & configResult.ToString) End Sub Sub Remove(ByVal inputArgs As String) 'Input: RootReference;place 'Example: 342;65 hs.WriteLog("Removing user", "Removing user...") Dim interfaceID As String = hs.GetINISetting("Interfaces", "IFace_0_Unique", "", "Z-Wave.ini") hs.WriteLog("Removing user", "InterfaceID: " & interfaceID) Dim rootDeviceRef As Integer = inputArgs.Split(";")(0) Dim place As Integer = inputArgs.Split(";")(1) Dim nodeNumber As String = ZwaveUtil_GetNodeIdByRef(rootDeviceRef) hs.WriteLog("Removing user", "Node number: " & nodeNumber) Dim ConfigResult = hs.PluginFunction("Z-Wave", "", "RemoveUserCodePin", {nodeNumber, place.ToString, interfaceID}) hs.WriteLog("Removing user", "Done with result " & ConfigResult.ToString) End Sub Public Function ZwaveUtil_GetNodeIdByRef(ByVal deviceId As Integer) As Integer Dim nodeId As Integer = -1 If (deviceId > 0) Then Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(deviceId) If (device IsNot Nothing) Then Dim pdata As HomeSeerAPI.PlugExtraData.clsPlugExtraData = device.PlugExtraData_Get(hs) If (pdata IsNot Nothing) Then nodeId = pdata.GetNamed("node_id") End If End If Else Throw New System.Exception("Device not found: " + deviceId) End If Return nodeId End Function
-
Here we go! Sub Main(ByVal inputArgs As String) hs.WriteLog("Add user", "Adding user...") Dim interfaceID As String = hs.GetINISetting("Interfaces", "IFace_0_Unique", "", "Z-Wave.ini") hs.WriteLog("Add user", "InterfaceID: " & interfaceID) Dim place As Integer = inputArgs.Split(";")(0) Dim PINnumber As Integer = CInt(inputArgs.Split(";")(1)) Dim PINstring As String = PINnumber.ToString("0000") Dim nodeNumber As String = ZwaveUtil_GetNodeIdByRef(3465) Dim configResult = hs.PluginFunction("Z-Wave", "", "AddUserCodePin", {nodeNumber, place.ToString, PINstring, "TEST-user", interfaceID}) hs.WriteLog("Add user", "Done with result " & configResult.ToString) End Sub Public Function ZwaveUtil_GetNodeIdByRef(ByVal deviceId As Integer) As Integer Dim nodeId As Integer = -1 If (deviceId > 0) Then Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(deviceId) If (device IsNot Nothing) Then Dim pdata As HomeSeerAPI.PlugExtraData.clsPlugExtraData = device.PlugExtraData_Get(hs) If (pdata IsNot Nothing) Then nodeId = pdata.GetNamed("node_id") End If End If Else Throw New System.Exception("Device not found: " + deviceId) End If Return nodeId End Function ... med dette: ... gav dette: .... og dette: gav dette: ... merk at lås-Root er hardkodet i eksempelet over (3465).
-
Det kan til og med være at du trenger "New Object()" foran {, men i teorien burde man ikke det. Kan også skrive det ut med fulle variabler... Sub Main (byval inputArgs as string) Dim PINnumber as Integer = hs.DeviceValue(707) Dim PINstring as String = PINnumber.ToString("0000") hs.PluginFunction("Z-Wave", "", "AddUserCodePin", New Object(){"647", "79", PINstring, "TEST", "955BFE54AEE6"}) End Sub
-
Det er vel sagt "i løpet av 2020". Men hvis vi skal trekke erfaringer fra HS2->HS3, så ble vel HS3 annonsert i 2010/2011, og sluppet i 2013... Jeg hadde håpet at de gikk over på .NET Core, men jeg er redd at Core ikke har alle biblioteker. Det er ikke bare-bare å konvertere et såpass komplisert prosjekt. Haha, nei faktisk ikke. Det er en konsekvens at at hvis jeg skulle trenge hjelp av proffer når jeg koder i jobb-sammenheng, så er det mye lettere hvis prosjektet er i C#.
-
Jeg kan nå begge deler. Nesten alt man kan i C# kan man i VB.net også, forskjellene er omtrent ikke-eksisterende nå. Men synes C# har noen fordeler med forenkling av syntax, spesielt når det gjelder lambda-funksjoner. Men ellers er VB.net mye enklere å lese: Det er som å skrive pseudo-kode og leselig for alle.
-
Jo, wops! Jeg har sagt det mange ganger at det er fint mulig å overloade funksjoner og rutiner i .NET, men har ikke vunnet fram så langt. Det var strengt tatt ikke mulig i VB5.0 så vidt jeg husker, men DET begynner å bli lenge siden. Kanskje verdt å ta kampen en gang til med HS4. Jo, men hvorfor trenger man to funksjoner? 24 og 24,0 er det samme tallet. Hvis man lagrer et heltall i devicen, så får man et heltall ut, desimaltall hvis ikke. Det ble gjort for å "lette overgangen" fra HS2, men siden overgangen var såpass stor uansett kunne man bare tatt 10 minutter ekstra for å gi en fornuftig struktur.
-
Nei, fordi SetDeviceValue-funksjonen finnes allerede. Strengt tatt burde det være mulig å bruke overrides (altså flere funksjoner med forskjellig input), men HS er merkelig nok ikke glad i det. F.eks. har de hs.DeviceValue for å hente device-verdien i heltall og hs.DeviceValueEX for å hente device-verdien som desimaltall. Det er ikke galt. Bare gammelt.
-
Og akkurat DER oppsummerte du det absolutt dummeste valget HomeSeer-folka gjorde i 2013. Ja, det er inkonsekvent og helt fjernt. Man kan ikke ødelegge APIens egen struktur slik. ... og nå er jeg redd det er for sent.
- 13 svar
-
- 1
-
-
... og der tror jeg du traff spikeren på hodet. Fordi det er ikke det som står her: Der er 0123 et tall siden det ikke står i gåseøyne og de blir trimmet til 123. Jeg hadde brukt dette: Dim PIN as String = hs.DeviceValue(dev_ref).ToString("0000") hs.PluginFunction("Z-Wave", "", "AddUserCodePin", {NodeId, LockLocationId, PIN, Username, InterfaceID})
-
Bare fordi en dings kan måle noe det betyr ikke at det måles riktig...
- 5 svar
-
- 1
-
-
Regnekraft og minnebruk er ikke nødvendigvis det samme... men det koster jo nesten ingenting å gjøre noe med det. 2GB er litt lite, selv med Win7.
- 1 svar
-
- hometroller s6
- win7
-
(og 2 andre)
Merket med: