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:
 
	
 
	 
 
	... enkelt kan forandres til dette (etter å ha også gitt dem nye etaskjer og rom):
 
	
 
	 
 
	... og dermed kan man med litt sjuling av "unødvendige enheter" ende opp med noe enklere:
 
	
 
	 
 
	 
 
	Det fungerer også på andre sensorer, bl.a. bevegelsessensorer og magnetbrytere.
 
	Før:
 
	
 
	 
 
	Etter:
 
	
 
	 
 
	 
 
	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".
 
	 
 
	
 
	 
 
	 
 
	 
 
	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