Gå til innhold
  • Bli medlem
Moskus

SCRIPT: RenameSqueezeboxDevices

Anbefalte innlegg

Se neste post for oppdatert versjon.


 

Spoiler

 

Ble lei av å gi nytt navn til alle devicer squeezebox-pluginen oppretter, så jeg lagde et kjapt script for det. Parameter er IDen til root devicen for en spiller.

 

Scriptet henter navnet på root'en, og erstatter "Player NN" med dette for root og alle child devicer. Dermed blir f.eks. "Player 7 Name" hetende "Stue Name", etc...

 


    Sub Main(parm As Object)
        'Moskus 2018
        Dim rootID As Integer = parm.ToString

        Dim root As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(rootID)
        Dim originaBase = root.Name(hs).Replace(" Name", "")
        Dim newBase As String = hs.DeviceString(rootID).Substring(hs.DeviceString(rootID).LastIndexOf(">") + 1).Replace(" ", "").Trim()

        hs.WriteLog("Rename", "Original base: '" & originaBase & "'")
        hs.WriteLog("Rename", "New base: '" & newBase & "'")

        'Renaming devices
        root.Name(hs) = root.Name(hs).Replace(originaBase, newBase)

        Dim children() As Integer = root.AssociatedDevices(hs)
        For Each c As Integer In children
            Dim child As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(c)
            If child.Name(hs).Contains(originaBase) Then child.Name(hs) = child.Name(hs).Replace(originaBase, newBase)
        Next
    End Sub


 

 

  • Like 2

Del dette innlegget


Lenke til innlegg
Del på andre sider

Oppdatert og bedre versjon av dette scriptet. Den gjør bl.a. dette:

image.png

 

... om til dette:

image.png

 

 

... og scriptet takler nå at noen er ferdig navngitt og andre ikke er, og kan brukes selv hvis du bytter navn på Squeezebox'en. :)

 

Input er IDen til Name-devicen. :) 

 

RenameSqueezeboxDevices.vb:

    Sub Main(Byval input As Object)
        Dim rootRef As Integer = input.ToString
        Dim rootDevice As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(rootRef)

        Dim name As String = StripTags(hs.DeviceString(rootRef)).Replace(" ", " ").Trim

        hs.WriteLog("RenameDevices", "Starting with player name: " & name)
        rootDevice.Name(hs) = name + ", " + GetPostFix(rootDevice.Name(hs))

        Dim i As Integer
        For Each i In rootDevice.AssociatedDevices(hs)
            Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(i)
            device.Name(hs) = name + ", " + GetPostFix(device.Name(hs))

        Next

        hs.SaveEventsDevices()
        hs.WriteLog("RenameDevices", "Done renaming " & name)
    End Sub
    Function GetPostFix(ByVal input As String) As String
        Dim ret As String = ""

        If input.StartsWith("Player") Then
            Dim substring As String = input.Substring(8)
            Dim startIndex As Integer = substring.IndexOf(" ", 0)

            ret = substring.Substring(startIndex).Trim

        ElseIf input.Contains(",") Then
            Dim startIndex As Integer = input.IndexOf(",")
            ret = input.Substring(startIndex + 1).Trim
        End If

        Return ret
    End Function
    Function StripTags(ByVal html As String) As String
        ' Remove HTML tags.
        Return System.Text.RegularExpressions.Regex.Replace(html, "<.*?>", "")
    End Function

 

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 Guahtdim
      Link til siste versjon
      AutomowerConnectSeer 0.0.0.3
       
      NB: Kun testet i Windows 10
       
      Hva plugin gjør:
      Plugin for oppkobling mot Automower Connect API som gjør at man kan få info om og styre Husqvarna Autmower (robotgressklipper) gitt at denne er på nett og du kan bruke en app (AMC i android) for å kontakte den).
       
      I tillegg til å få devicer i HomerSeer med data om gressklipperen status så er det også følgende actions til bruk i events:
      Endre poll tid (hvor ofte man spør Automower Connect API om data) Park Resume Schedule Pause Start Park until further notice Park until next schedule  
      Hva gjør jeg for å installere?
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt c:\program files (x86)\Homeseer HS3) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_AutomowerConnectSeer.exe og HSPI_AutomowerConnectSeer.exe.config, mens du i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog -  AutomowerConnectSeer - med 28 filer) og under html\images katalogen skal du ha fått en AutomowerConnectSeer katalog med 24 filer   Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på RFLinkSeer  
       
      For å få dette til å virke må du inn og registrere deg på nettsiden (bruk samme epost og passord som på AMC app)
      https://developer.1689.cloud/
      Der må du også lage din egen applikasjon (etter at du har fått logget inn)
       
      Epost, passord og applikasjonsid må du registrere i plugin

       
      Når du har gjort dette (hvis du har fått det til riktig) så vil du få oversikt over din(e) klipper(e) i hoved konfigurasjonen

      Rask forklaring:
      Time between check of cloud service  -  periode mellom oppkobling mot skytjenesten for å hente data
      Default number of minutes to mow when using Start button - Antall minutter klipperen klipper når du trykker på Start i HomeSeer
      Default number of minutes to park when using Park button - Antall minutter som klipperen står parkert når du trykker på Park i HomeSeer
      Log level - hvilket nivå med logging som gjøres til HomeSeer (og eventuelt fil)
      Number of calls this month - antall kall mot skytjenesten så langt denne måneden (NB NB det er opplyst om at max er 10 000 kall i måneden)
      Og oversikt over klipper(e).
      Trykk Add på de du ønsker å ha inn i HomeSeer. Trykk Delete hvis du vil fjerne de (events vil ikke bli fjernet). Fix devices er en knapp for å prøve å rette opp hvis du f.eks. har slettet noe du ikke skulle.
       
      Oversikt i HomeSeer 3

       
      Rask forklaring:
      Connected - Status på om klipper er koblet til skytjeneste. 3 typer: Disconnected=-1, connected=0, connected error =1-99999.
      Battery - prosent av batteri igjen
      Mode - "MAIN_AREA"=gjør noe i definert hovedområde,  "SECONDARY_AREA"gjør noe i definert sekundærområde, "HOME"=er hjemme (ladestasjon), "DEMO"=kjører rundt uten å ha blader igang,  "UNKNOWN" =Ukjent status
      Activity - "UNKNOWN" =Ukjent status, "NOT_APPLICABLE"=Ingen verdi, "MOWING"=Klipper, "GOING_HOME"=kjører hjem, "CHARGING"=lader, "LEAVING"=kjører ut av ladestasjon,  "PARKED_IN_CS"=Parkert i ladestasjon, "STOPPED_IN_GARDEN"=stoppet i hagen
      State - "UNKNOWN" =Ukjent status, "NOT_APPLICABLE"=Ingen verdi, "PAUSED"=pauset, "IN_OPERATION"=går som normalt/står i lader, "WAIT_UPDATING"=oppdaterer software, "WAIT_POWER_UP"=Slår seg på, "RESTRICTED"=begrenset på grunn av oppsett i kalender,  "OFF"=av,  "STOPPED"=stoppet opp, "ERROR"/"FATAL_ERROR"/"ERROR_AT_POWER_UP"=Feilsituasjoner
      Command - Viser om siste kommando ble oversendt ok og hva den var
      Error - Feilmelding hvis det er rapportert en feil
      Last Connected - Tidspunkt for når klipperen var sistt tilkoblet
      Next Start - Neste start av klipperen
       
      Eksempler på actions i events
       

      Park brukes for å få klipper(e) til å parkere for en gitt periode. Start vil se nesten helt lik ut, men der er perioden du oppgir hvor lenge den skal klippe.
       

      Resume schedule, Pause, Park until further notice, Park until next Schedule ser veldig like ut og du kan der bestemme hvilke klipper som skal få tilsendt action.
       

      Set cloud poll interval gjør at du kan via events endre hvor ofte du henter ned data fra skytjenesten.
       
      Endringslogg:
      0.0.0.3 - Fikset sjekk på manglende verdier slik at det ikke kræsjer før man har lagt inn applikasjons id, epost og passord 
      0.0.0.2 - Fikset statusverdier slik at det blir enklere å lage events. Fikset noen Copy&Paste feil
      0.0.0.1 - Første versjon. Sikkert endel mangler som dukker opp
       
      Problemer/utfordringer/videreutvikling
      Må kunne sette Poll interval tilbake til default ved f.eks. omstart  
       
       
    • Av Rune L
      Jeg ønsker å måle volt 0-50 volt å få lest det av i Homeseer.
      Hvordan kan det gjøres? Arduino? z-wave ?
    • Av Moskus
      Dette scriptet lar deg hente inn trafikkinformasjon fra EnTur.  
       
      Finne reiseruter, IDer for "StopPlace" og "Quay"
      Å bruke scriptet er ikke så vanskelig. Det vanskelige er å finne IDene til stasjonene du vil spore. 
       
      La oss si at jeg vil finne alle busser som går fra "Tasta Senter" (og mot Stavanger sentrum, men det kommer vi tilbake til)
      Gå til en-tur.no Tast inn stoppesteder til og fra Kopier URL'en fra nettleseren etter søket (f.eks. som denne) inn URLdecoder.org for å gjøre den lettere å lese. Finn "startID" og kopier ut strengen som begynner med "NSR:". For Tasta Senter er denne "NSR:StopPlace:28163"  
      Oppdatering: Etter tips fra @Odd Are er det enklere å gå hit med brukernavn/passord guest/guest og hente QuayIDer og StopPlaceIDer derfra.
       

       
      Vel og bra!  Nå vet vi at busstoppet ved Tasta Senter heter "NSR:StopPlace:28163". Men et busstopp kan faktisk ha flere plattformer, f.eks. en på hver side av veien. Det heter visst "Quay" på engelsk.
       
      Jeg er ikke interessert i begge sider av veien for kun en av dem har vanligvis trafikk mot sentrum. For å finne Quay, må vi bruke GraphQL-exploreren til EnTur (som dessverre ikke er like forseggjort som Tibber sin). Vi er interessert i denne spørringen som finner alle avganger for et stoppested, og vi må endre id: "NSR:StopPlace:28163" og avgangstiden (startTime:"2018-06-19T09:00:00+0200") til det riktige. I skrivende stund ser min spørring slik ut. 
       
      Så går vi gjennom resultatene, vi skal prøve å finne riktig "Quay".
       
      Det første treffet er inneholder denne teksten:
      "destinationDisplay": { "frontText": "Tasta - Vardeneset" }, "quay": { "id": "NSR:Quay:48450" }, ... men en buss med "Tasta - Vardeneset" tar meg i feil retning! Ergo er "NSR:Quay:48450" ikke riktig.
       
      Det neste treffet inneholder dette:
      "destinationDisplay": { "frontText": "Stavanger" }, "quay": { "id": "NSR:Quay:48449" }, Jepp! Riktig! Altså kan vi filtrere på "NSR:Quay:48449" for å finne avganger fra "NSR:StopPlace:28163" som kun går mot Stavanger.
       
       
       
      Installasjon
      Du trenger en referanse til Newtonsoft.Json.dll for at scriptet skal fungere. Json er mye i bruk i dag, og siden jeg har oppdaget at Webclient nå er innebygget i HS3 (og superenkel å bruke), så er det bare å legge inn Json-støtte for scripting også.
       
      Lukk HS3. Åpne settings.ini Finn linjen som begynner med ScriptingReference= Vanligvis står det kun System.Core;System.Core.dll. Vi skal legge til Newtonsoft bak der. Hos meg (på Windows) skal linjen da se slik ut:  
      ScriptingReferences=System.Core;System.Core.dll,Newtonsoft.Json;C:\Program Files (x86)\HomeSeer HS3\Bin\homeseer\Newtonsoft.Json.dll Lagre og start HS3 igjen. For Linux skal den muligens se slik ut, men du må sjekke plasseringen på /bin/homeseer/Newtonsoft.Json.dll selv.
      ScriptingReferences=System.Core;System.Core.dll,Newtonsoft.Json;/usr/local/HomeSeer/bin/homeseer/Newtonsoft.Json.dll  
       
      Kopier scriptet under og lagre det som EnTur.vb. Etter massiv testing fra @Tor-Erik er vi ganske sikre på at det også kjører på Linux.  
       
      EnTur.vb:
       
       
      Du må også lage deg noen devicer selv for å faktisk vise data. Dette gjør foreløpig ikke scriptet for deg. Den trenger ingen status values, men kanskje en enkel status Graphics for å ha et ikon (istedenfor Off/Dim/On-ikoner)
        

       

       
       
       
      Så trenger vi et event for å oppdatere teksten. Dette kan f.eks. kjøre hvert minutt.
      Parametre for funksjonen "CallsFromStopplace" er deviceID, stopplaceID, quayID (optional), antall_avganger (optional).
       

       
      Du kan ha flere script-kall i et event, hvis du har flere stopp, avganger, etc du vil kontrollere.  
       

       
       
      Parametre for funksjonen "TripsBetweenStops" er deviceID, stopplaceID (fra), stopplaceID (til), antall_avganger (optional). Det er et enkelt ruteoppslag, fint fra større stasjoner (f.eks. "Stavanger") til et bestemt stoppested.
       
      DeviceValue i hver device er antall minutter til neste avgang. Kan brukes til automasjon.  
       

       
       
      EDIT:
      Oppdatert juli 2019 pga. flytting av URL for EnTur APIet. Gjeldene URL er nå: https://api.entur.io/journey-planner/v2/graphql
      Oppdatert januar 2020 pga. bruk av TSL12.
       
    • Av Olamann1
      HS3 PRO Lisens selges
       
      kr 2000,- 
       

      25$ til Homeseer for å omregistrere lisensen over til ny bruker.
    • Av Guahtdim
      Dette er en plugin for å kunne styre Daikin varmepumpe med wifi-modul
       
      Link til siste versjon
      DakinSeer 0.0.1.3
      (NB: Kun testet i Windows )
      Hvis du allerede har installert tidligere versjoner så slett alle enheter og opprett på nytt
       
      Hva denne plugin gjør:
      Gir deg en oversikt over forskjellige status

      Gir deg mulighet til å styre varmepumpen fra "oversiktbildet"
      eller 
      legge det inn som en action i en (eller flere) events

       

       
      Hvordan sette opp :
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt "c:\program files (x86)\Homeseer HS3" for Windows) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_DaikinSeer.exe og HSPI_DaikinSeer.exe.config, mens du i katalogen Homeseer HS3\bin og Homeseer HS3\html\images skal ha fått en ny underkatalog - DaikinSeer)   Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på DaikinSeer  
      Hvordan å legge inn en varmepumpe
      For å kunne legge inn en varmepumpe så må du vite ip adressen til den.  Dette kan du finne i f.eks. routeren din. 
       
       
      General Settings
      I "General Settings" vil du kunne sette opp hvor lang tid det skal gå mellom hver gang det hentes info fra varmepumpen (der er det en copy&paste bug ja). Time between triggering if true skal egentlig være "Time between heat pump check" eller noe.
      Du kan sette loggnivå.
      Og du får opp antall varmepumper tilknyttet (Number of heat pumps to check)

       
      Sette temperatur offset for alle varmepumper som kjøres av plugin

      Ved å sette noe annet enn 0 grader på heat point offset så vil temperaturene du ser i HomeSeer være justert i forhold til offset. Si at du setter det til -2,5 grader. Da vil du se 24 grader i HomeSeer på Heat point, men plugin vil ha fått inn 26,5 grader. Det samme vil også gjelde hvis du endrer temperatur. Hvis du endrer fra 24 til 23 grader så sendes 25,5 grader til varmepumpen.
      NB: Dette gjelder kun for plugin så hvis noen begynner å endre med fjernkontroll eller app på telefonen så vil ikke offset gjelde fra disse. Fjernkontroll vil heller ikke få med seg endringer sendt til varmepumpen.
       
      Streamer mode, Power mode og Econo mode

      Ved å velge en ip adresse fra dropdown som sier "Choose ip address for adding power and streamer" så vil det gjøres en test på om denne enheten har en eller flere av disse mulighetene. Hvis det blir testet ok så legges dette til i HomeSeer for gjeldende enhet.
       
       
      Endringslogg
      0.0.1.3 - Oppdatert slik at Connected vil endre seg til verdier over 0 hvis det er feil. I tillegg lagt til nytt ikon og ekstra tekst når det kommer feil tilbake fra Daikin varmepumpe
      0.0.1.1 - Lagt inn mulighet for å legge inn offsetverdi på temperatur. Denne vil gjelde for alle varmepumper som du kjører. I tillegg gitt mulighet til å legge til EconoMode, PowerMode og StreamerMode (hvis du har det på din varmepumpe). Disse tre modes må legges til ved å velge dette fra dropdown i Ip-config.
      0.0.0.9 - Fikset feil nummer brukt når man skulle skifte til FAN mode. Også oppdatert slik at plugin husker siste temperatur hvis man skifter mellom modes og en av de er FAN siden FAN ikke rapporterer temperatur tilbake (Dette forutsetter at plugin har fått en temperatur før man skifter til FAN mode. Hvis man starter i FAN mode vil default temperatur være 18 grader for kjøling og 10 grader for oppvarming). Takk til @Kenneth for å ha funnet denne.
      0.0.0.8 - Fikset håndtering av tall med desimaler fra Wifi adapter når man ikke kjører US oppsett.
      0.0.0.6 - Endret bygging av temperatur dropdown for å unngå feil ved desimal verdier0.0.0.7 - Fikset visning av temperatur ikoner + ekstra sjekk når man lager enhet slik at man ikke kan ha mer enn en varmepumpe per Ip
      0.0.0.5 - endret shum tilbake, men sørget for us-formatering av temperatur sendt til varmepumpe fra HomeSeer
      0.0.0.4 - endret shum i til å ikke ha verdi (fra shum=0&.. til shum=&..)
      0.0.0.3 - Fikset flere upper/lower case  i image-path
      0.0.0.2 - Lagt på litt mer debug logging og fikset noen upper/lower case i image-path
      0.0.0.1 - Første versjon
       
       
      Problemer/utfordringer/videreutvikling
      Få inn PowerMode, Streamer og EcoMode for de enheter som støtter dette. Automagisk legge dette inn i oppstart. Individuelt oppsett av offset for de som har mer enn en varmepumpe. Gjenopprette devicer tilbake til standard hvis man f.eks. har slettet eller gjort endringer på enhetene sine. Prøve å beholde deviceId hvis denne finnes. Få til en oppdatering av allerede eksisterende enheter hvis man har gjort rettelser på de. Kunne selv velge default temperatur hvis plugin ikke har noen temperatur å gå ut ifra Legge inn mulighet for å kjøre en offset på ønsket temperatur Kunne sende Streamer on/off og Powerful on/off for de som har dette Det skal ikke være mulig å lage mer enn en enhet/samling med devicer per ip. Hvis den allerede eksisterer så skal man få opp en advarsel. Hvordan få satt en drop-down til å ha korrekt formatering i forhold til hva HomeSeer forventer.
×
×
  • Opprett ny...