Gå til innhold
  • Bli medlem
Moskus

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

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

Del dette innlegget


Lenke til innlegg
Del på andre sider

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Fjern formatering

  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.


  • Lignende innhold

    • Av harelabb
      Jeg har en hytte hvor jeg nå kan slå to panelovner på (og av) med mobilen
      eller PC-en overaltfra.
      Det er implementert med etpar z-wave fjernstrømbrytere (slike som settes i
      stikkontakten), og Domoticz på en Raspberry Pi 3B med Razberry z-wave
      datterkort.
       
      I tillegg har jeg noen sensorer som også er koblet til Domotizc via en
      Tellstick Duo tranceiver, NodeRed og MQTT, eller bare NodeRed og MQTT.
      Pi-en er MQTT megler.
       
      Nå hadde jeg tenkt å få litt mer funksjonalitet, og trenger derfor råd fra
      dere om hva jeg skal gjøre, hvilke(t) system dere anbefaler for en lat
      hjemmeautomatiserer som meg.
       
      Såvidt jeg forstår, kan jeg bare ha ett system som kontrollerer z-wave fordi
      de trenger eksklusiv tilgang til USB-bussen. Derfor kan jeg ikke både ha
      zwave-node i NodeRed og z-wave-kontroller i Domoticz (vennligst korriger meg
      hvis jeg tar feil!).
       
      Så jeg tenkte kanskje det mest fleksible var å la NodeRed styre z-wave og la
      MQTT stå for all kommunikasjon med Domoticz?
       
      Eller kansjke jeg byrde bytte ut Domoticz med noe bedre?
      Jeg syns z-wave og Domoticz er en vrien kombinasjonn..
       
      Jeg har også noen ESP8266 microkontrollere med sensorer som bruker MQTT.
      Jeg skal bl.a. putte en inn i min Mitsubishi varmepumpe for å kunne styre den
      også fra mobil/PC.
       
      Jeg også litt annet utstyr som jeg tror jeg vil ha med:
      1. Fibaro Multisensor 6 (z-wave)
      2. Fibaro The Plug (z-wave)
      3. Keyfob remote controller (z-wave)
      5. Z-wave fjernstrømbryter for lys.
      6. RFXCOM - RFXtrx433 USB 433.92MHz tranceiver
      7. 433Mhz fjernstrømbryter (styres idag av en PIR sensor koblet til et
         breadboard med elektronikk.
         Se   https://www.instructables.com/id/PIR-Controlled-433MHz-Switch-Without-a-Micro-Contr/
       
      Kan dere hjelpe med litt synsing?
       
      Noen som har brukt NodeRed til å sette sammen et nett av z-wave noder og fått
      dem til å samarbeide?
       
    • Av fiLLLip
      Holder på med totalrenovering og påbygg av enebolig fra 1975, og skal i den forbindelse slenge meg på bølgen med sentralstyrt "alt". Foreløpig vil jeg egentlig ikke kalle det for automasjon, da ingenting er automagisk ennå, og boligen fortsatt er under renovering/oppføring.
       
      Det er likevel blitt tatt ett viktig valg, og det er å bruke LogicMachine som hjerne i systemet, kombinert med en server som alle data skal mates inn i på sikt. Jeg er systemutvikler av yrke, så jeg liker at det meste kan hackes på. Lys skal for det meste styres via DALI, og det som ikke går på DALI skal styres via KNX. For interface til brukere vil det mest sannsynlig anskaffes veggmonterte 10" tablets som kjører Android og er matet via PoE.
       
      Når det gjelder sensordata er det ekstremt mye å velge imellom, og her har jeg noen idéer. Til enkle sensorer, som temperatur som skal støpes ned, faller sikkert valget på 1-wire, da jeg spesifikt har sett på DS18B20. For alle rom hadde det vært interessant å ha røkvarslere, gjerne kombinert med temperatur, co2, bevegelse, lys, og fuktighet, men så langt har jeg ennå ikke funnet noen jeg synes ser lovende ut (og til en ok pris).
       
      EDIT: Skal også ha vannbåren varme i hele huset, og i tillegg elektriske varmekabler på bad (har blitt anbefalt som en slags backup). Dette skal også styres via hele systemet og baseres på sensordata.
       
      Skal på sikt få lagt ut litt plantegninger med hva som er tenkt av sensor, lys og kontrollpanel. Det må bare lages først  Som en teaser kan jeg legge ut blanke plantegninger.


    • Av Moskus
      Sub Main(ByVal parameters As Object) 'Moskus 2020 Dim devID As Integer = parameters.ToString Dim useHTMLtable As Boolean = True Dim url As String = "https://www.vg.no/spesial/2020/corona-viruset/data/norway-table-overview/" Dim source As String = "" Try Using client = New System.Net.WebClient Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Encoding = System.Text.Encoding.UTF8 source = client.DownloadString(url) End Using Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try If source = "" Then hs.WriteLog("CoronaScript", "Got no response from url: " & url) Exit Sub End If Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source) Dim output As String = "" Try Dim confirmed As Integer = json("totals")("confirmed") If useHTMLtable Then output &= "<table border=0 cellspacing=0 cellpadding=0>" output &= "<tr><td><b>Totalt</b></td><td align='right'>" & json("totals")("confirmed") & "</td><td align='right'>" & json("totals")("dead") & "</td><td align='right'>" & json("totals")("recovered") & "</td></tr>" For i As Integer = 0 To json("cases").Count - 1 output &= "<tr><td>" & json("cases")(i)("name") & "</td><td align='right'>" & json("cases")(i)("confirmed") & "</td><td align='right'>" & json("cases")(i)("dead") & "</td><td align='right'>" & json("cases")(i)("recovered") & "</td></tr>" Next output &= "</table>" Else output &= "<b>Totalt: " & json("totals")("confirmed") & " / " & json("totals")("dead") & " / " & json("totals")("recovered") & "</b><br>" For i As Integer = 0 To json("cases").Count - 1 output &= "• " & json("cases")(i)("name") & ": " & json("cases")(i)("confirmed") & " / " & json("cases")(i)("dead") & " / " & json("cases")(i)("recovered") & "<br>" Next End If hs.SetDeviceString(devID, output, False) hs.SetDeviceValueByRef(devID, confirmed, True) Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try End Sub  
      Trigger: Kjøres hvert 5. minutt
      Parameter: DeviceIDen til en virtuell device som skal holde verdien.
      Du kan endre variabelen "useHTMLtable" til False hvis du vil ha det i HStouch, for HStouch viser ikke pene HTML-tabeller...
       

       
       
       
      Oppdatert med data fra RapidAPI siden jeg ble lei av at VG er så dårlig på å oppdatere tallene sine:
      Sub Main(ByVal parameters As Object) 'Moskus 2020 Dim devID As Integer = parameters.ToString Dim url As String = "https://covid-193.p.rapidapi.com/statistics?country=Norway" Dim source As String = "" Try Using client = New System.Net.WebClient 'TLS1.2 and encoding (UTF8) Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Encoding = System.Text.Encoding.UTF8 'Headers client.Headers.Set("x-rapidapi-host", "covid-193.p.rapidapi.com") client.Headers.Set("x-rapidapi-key", "DIN_RAPIDAPI_KEY_HER") 'GET the url source = client.DownloadString(url) End Using Catch ex As Exception hs.WriteLog("CoronaScript", "Net Feil: " & ex.Message) End Try If source = "" Then hs.WriteLog("CoronaScript", "Got no response from url: " & url) Exit Sub End If Try Dim json = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(source) Dim confirmed As Integer = json("response")(0)("cases")("total") Dim output As String = "" output &= "<b>Aktive: " & json("response")(0)("cases")("active") & " (" & json("response")(0)("cases")("new") & ") " & "</b><br>" output &= "Totalt: " & json("response")(0)("cases")("total") & "<br>" output &= "Dødsfall: " & json("response")(0)("deaths")("total") & " (" & IIf(json("response")(0)("deaths")("new").ToString = "", "0", json("response")(0)("deaths")("new")) & ") " & "<br>" output &= "Testede: " & json("response")(0)("tests")("total") & "<br>" output &= "<i>Sist oppdatert: " & json("response")(0)("time") & "</i><br>" hs.SetDeviceString(devID, output, False) hs.SetDeviceValueByRef(devID, confirmed, True) Catch ex As Exception hs.WriteLog("CoronaScript Error", "Parsefeil: " & ex.Message) End Try End Sub  
      Kjøres nå hver time, jeg vet ikke begrensningene hos RapidAPI.

       
       
    • Av exxon
      Hei,
       
      Jeg har nettopp flyttet inn i en nyoppusset leilighet med Simon 100 iO enheter (dimmere og termostater).
      Bruker Home Assistant og Z-Stick Gen. 5.
       
      Dimmerne fungerer utmerket. Kan slå de på og av, justere lysstyrken og ser også effektforbruket. Trykker jeg på dimmeren oppdateres HA med status.
       
      Termostatene derimot... Termostatene har to sensorer, temperatur og luftfuktighet.
      Luftfuktighet fungerer utmerket og jeg ser, real time, i HA at verdiene øker når jeg peser litt på termostaten. Jeg får også opp temperatur, men den oppdateres ikke i HA når temperaturen som vises på termostaten forandrer seg.
      Jeg kan slå termostatene av og på, sette i feriemodus og i øko, men jeg kan ikke sette ønsket temperatur i HA.
       
      Skal sies at jeg ikke har gjort noen forandringer i noen yaml-filer. Alt vedrørende Z-Wave har dukket opp av seg selv når nodene har blitt lagt til.
       
      Er det noen som har erfaring med disse Simon-enhetene? Simon har god dokumentasjon på hvordan disse enhetene fungerer... det er bare det at jeg ikke skjønner all verdens av det. Har lagt ved dokumentasjon på termostaten, og på nest siste side står det en masse beskrevet. Noen som forstår?
       
      Fortsatt god helg.
      10000810-13x Termostato.pdf
    • Av GauteG
      Hei.
      Her er det så godt som ingenting i hus annet enn noen få Nexa stikkontakter, men jeg må få satt opp en openHAB eller HomeSeer etterhvert.
      For å sikre et godt "backbone" på kommunikasjonssiden - Vil ikke innkjøp av:
      Aeotec Z-stick gen5 USB-adapter 
      Conbee II Zigbee-kontroller for USB
      RFXtrx433XL USB-kontroller
      gi meg et godt utgangspunkt til å kunne styre det meste etterhvert som det blir kjøpt inn?
       
×
×
  • Opprett ny...