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

SCRIPT: Administrere koder på Z-wave-låser med scripting


Moskus

Anbefalte innlegg

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

 

  • Like 1
  • Thanks 1
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.