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

SCRIPT: RenameDevices.vb - Navngi devicer riktig, automatisk


Moskus

Anbefalte innlegg

De som har lest HomeSeer-skolen vet at jeg er veldig opptatt av å holde orden i systemet sitt. Det er fordi da er det så mye enklere å finne frem når man skal automatisere. Det er lett å huske hva "Node 11 Switch Multilevel 1" er når man bare har 11 noder, men når man har mange er det selvfølgelig helt umulig.

 

I HomeSeer er det lett å tilordne rom og etasje til enhetene dine, men det er tungvindt å gi selve devicene noe mer fornuftig valg. Jeg navngir enheter med "Enhet, device_type", slik at det f.eks. er "Taklys, Switch Multilevel 1" eller "Taklys, Power", og det har jeg frem til nå gjort manuelt fordi jeg legger til en og en node.

 

Men tidligere i vår satte jeg opp et helt hus på et par dager, på over 60 noder. Da tar det altfor lang tid å gjøre det manuelt, og et script var på sin plass.

 

Scriptet gjør at dette:

image.png

 

... enkelt kan forandres til dette (etter å ha også gitt dem nye etaskjer og rom):

image.png

 

... og dermed kan man med litt sjuling av "unødvendige enheter" ende opp med noe enklere:

image.png

 

 

Det fungerer også på andre sensorer, bl.a. bevegelsessensorer og magnetbrytere.

Før:

image.png

 

Etter:

image.png

 

 

Bruk

Måten det gjøres på er at root-devicen navngis med navnet du har tenkt å bruke og med et komma og Root bak, f.eks. "Taklys, Root (123)" (jeg har også begynt å sette nodenummeret i parentes bak Root).

Så kjøres scriptet med Root Device ID som parameter, sub/function må settes til "RenameDevices".

 

image.png

 

 

 

RenameDevices.vb

    Sub RenameDevices(input As String)
       'Moskus 2019
        Dim rootRef As Integer = input
        Dim rootDevice As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(rootRef)
        rootDevice.MISC_Set(hs, HomeSeerAPI.Enums.dvMISC.NO_LOG)
        If Not rootDevice.Name(hs).Contains("Switch") Then rootDevice.MISC_Clear(hs, HomeSeerAPI.Enums.dvMISC.AUTO_VOICE_COMMAND)

        Dim rootName As String = rootDevice.Name(hs)
        Dim prefix As String = rootName.Substring(0, rootName.IndexOf(",")).Trim
        hs.WriteLog("RenameDevices", "Starting with prefix: " & prefix)

        Dim i As Integer
        'For i = (rootRef + 1) To endRef
        For Each i In rootDevice.AssociatedDevices(hs)
            Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(i)
            device.Name(hs) = prefix + ", " + device.Name(hs)
            device.MISC_Set(hs, HomeSeerAPI.Enums.dvMISC.NO_LOG)

            If Not device.Name(hs).Contains("Switch") Then device.MISC_Clear(hs, HomeSeerAPI.Enums.dvMISC.AUTO_VOICE_COMMAND)
        Next

        hs.SaveEventsDevices()
        hs.WriteLog("RenameDevices", "Done renaming " & prefix)

    End Sub

 

 

  • Like 4
  • Thanks 4
Lenke til kommentar
Del på andre sider

Det er bra, men jeg foreslår å endre teksten slik, så en kan sortere på Name:

empty.png
nostatus.gif No Status
Hus Stue 10 Taklys TV stoler           
empty.png
statuswasreset.png Status Was Reset
Node 10 Z-Wave Application Status            Reset Application Status
empty.png
electricity.gif 40,030 kW Hours
Node 10 Z-Wave kW Hours Today
21:32:40
Reset Accumulated Values
empty.png
electricity.gif 3,5 W
Hus Stue Strømforbruk taklys TV stoler Today
21:55:51
empty.png
dim-20.gif 20%
Hus Stue Taklys TV stoler Today
20:55:30
Off On On Last Level
      
 
    
Start Dimming Stop Start Brightening
empty.png
electricity.gif 0 Watts
Node 10 Z-Wave Watts 1 09.05.2019
08:12:14
 
empty.png
nostatus.gif No Status
Hus Stue 12 Taklys spisebord           
empty.png
statuswasreset.png Status Was Reset
Node 12 Z-Wave Application Status            Reset Application Status
empty.png
electricity.gif 129,880 kW Hours
Node 12 Z-Wave kW Hours Today
22:14:35
Reset Accumulated Values
empty.png
electricity.gif 8,3 W
Hus Stue Strømforbruk taklys spisebord Today
21:55:37
empty.png
dim-20.gif 25%
Hus Stue Taklys spisebord Today
20:55:29
Off On On Last Level
      
 
    
Start Dimming Stop Start Brightening
empty.png
electricity.gif 8,700 Watts
Node 12 Z-Wave Watts 1 21.05.2019
11:21:56

 

Lenke til kommentar
Del på andre sider

16 timer siden, myrene skrev:

Det er bra, men jeg foreslår å endre teksten slik, så en kan sortere på Name:

Det gjør man jo alltid uansett....?

"Taklys spisebord" skal komme før "Taklys TV stoler". ;)

Hva er nummeret før navnet?

 

 

Men det er du selv som må sette opp din logikk. Hvis det er smart for deg, så gjør du det. :) 

Lenke til kommentar
Del på andre sider

4 timer siden, myrene skrev:

Nummeret før er Z-Wave ID nummeret. Det forsvinner jo når man gir Floor og Room

 

OK, de har man vanligvis ikke bruk for, så derfor anbefaler jeg å legge dem til slutt.

 

Og som du poengterer selv: De ødelegger for sortering på navn.

Det er vesentlig enklere å finne "Taklys spisebord" i en lang liste av enheter, når du slipper å huske at det er node 12.

 

Som sagt, det er hele bakgrunnen for å skrive scriptet. Jeg har 124 noder, og det er umulig å huske hva node 34 eller 79 er for noe.

  • Like 1
Lenke til kommentar
Del på andre sider

Tja, jeg har bare halvparten av det du har på hver plass (hytta og hjemme), men de nodene som jeg følger med på, synes jeg det er greit å huske nummeret på, og så finne de ved å liste opp på Name. Det er selvfølgelig en smakssak, og jeg har forsøkt med mange forskjellige måter å sortere på, og ha kommet til at dette passer bedre for meg. Jeg har bare drevet med dette 7-8 år, så jeg kan ikke si at jeg er noen veteran, men noe erfaring har jeg fått.

Lenke til kommentar
Del på andre sider

7-8 år er vel å regne som veteran innen hjemmeautomasjon, og man skal ikke argumentere mot personlig smak. Og du står fritt til å endre scriptet slik det passer for deg, det er derfor jeg legger ut hele koden. :) 

 

Jeg har prøvd mange ulike systemer for sortering, og har kommet frem til at alfabetisk sortering er det som fungerer best for folk flest. Og da anbefaler jeg "etasje", "rom", "enhetsnavn" + "funksjon", i den rekkefølgen. Så lenge enhetene dine har fornuftige navn klarer alle å finne dem igjen. Jeg pleier å tenke at det ikke bare er jeg som skal bruke automasjonen, men andre også.

 

Når jeg setter opp systemer for andre, så har de jo ingen forhold til Z-wave sitt nodenummer, så da fjerner jeg det helt.

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.