Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon! 🥇🥈🥉

Anbefalte innlegg

Skrevet

Med Jon00 sin Alexa Helper kan man gjøre mye morsomt. Samtidig har det irritert meg at ingen har fått ut fingeren og laget en Squeezebox-integrasjon for Alexa (eller Google Home). Men med alt integrert i HomeSeer så kan man likevel få til grunnleggende styring av musikk i flere rom! :)

 

Jeg kan nå si:

"Alexa, tell HomeSeer to press play in living room"

"Alexa tell HomeSeer to press next  in basement"

… etc.

 

Du kan velge mellom å si "push" og "press" (fordi jeg synes det var vanskelig å si "press play" uten at det ble "pless play") og du kan velge mellom "on" og "in". 

Disse to er med andre ord like:

"Alexa, tell HomeSeer to press play in bathroom"

"Alexa, tell HomeSeer to push play on bathroom"

 

HomeSeer kan altså styre denne devicen:

image.png

 

og denne:

image.png

 

… og alle knappene lar seg "trykke" på. :) 

 

Først selve scriptet: 

 

Alexa_SqueezeboxControl.vb

    Function Main(ByVal input As String)
        Dim statusDevices(,) As String = {{"living room", 202}, {"basement", 845}, {"kitchen", 294}, {"bathroom", 1601}, {"guest room", 1627}, {"bedroom", 271}}

        If input.StartsWith("push ") Then input = input.Replace("push ", "press ")
        If input.Contains(" on ") Then input = input.Replace(" on ", " in ")
        input = input.Trim
        input = input.Replace("press ", "").Replace("the ", "").Replace(" in ", "|")
        Dim command() As String = input.Split("|")

        Dim button As String = command(0)
        Dim devRef As Integer = 0

        For i As Integer = 0 To statusDevices.GetLength(0) - 1
            If command(1) = statusDevices(i, 0) Then
                devRef = statusDevices(i, 1)
                Exit For
            End If
        Next

        Select Case button
            Case "play", "pause", "stop"
                'do nothing
            Case Else
                devRef += 1
        End Select

        Dim cc As HomeSeerAPI.CAPIControl = hs.CAPIGetSingleControl(devRef, True, button, False, False)
        If cc IsNot Nothing Then
            hs.CAPIControlHandler(cc)
            Return "Done!"
        Else
            Dim msg As String = "The button '" & button & "' was not found on device " & devRef
            hs.WriteLog("Squeezebox", msg)
            Return msg
        End If

    End Function

Du må endre den første linja (etter Sub Main...) til å reflektere dine devicer og dine rom. Strukturen er {"romnavn", DEVICE_ID_TIL_SQUEEZEBOX_STATUS}.

Rom-navnet kan du velge selv.

Device IDen er nummeret til devicen hvor play, pause og stop er. Altså 931 i det øverste bildet i toppen av posten.

Alle disse er kommaseparerte inne i klammer {}.

 

Oppsettet i Jon00 sin Alexa helper kan du sette opp slik:

 

image.png

 

Dermed har du full kontroll på play/pause/stop, og next/previous. Og kan være fin inspirasjon til andre devicer man vil styre. :) 

Skrevet

Det finnes mange (strandede) prosjekter for å få integrert Alexa og Squeezebox, men jeg hadde ikke klart å finne noen som faktisk fungerte.

 

Og hva skal man med Home Assistant? :P 

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.