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:
og denne:
… 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:
Dermed har du full kontroll på play/pause/stop, og next/previous. Og kan være fin inspirasjon til andre devicer man vil styre.