Discussion:
[SlimDevices: SqueezeCenter] Alexa and LMS - new lease of life?
castalla
2016-09-18 15:54:08 UTC
Permalink
Alexa Echo and Dot will be available in the UK and Germany next month.


I notice that there has been one github project to control LMS which
seems to have faltered ( https://github.com/lordpengwin/muzak ).

I wonder whether the wider availability of the Alexa devices might
promote more interest in developing a skill to control LMS?



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-09-22 08:52:31 UTC
Permalink
.. and could the release of Google Home offer further options for LMS
voice control?

Sonos and Bose have annuunced voice integration for 2017.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Michael Herger
2016-09-22 09:06:48 UTC
Permalink
A few questions:

- what kind of control would you want to see implemented in a voice
controlled setup?

- should the system be an always on, always listening system, or on
demand (eg. key press) only?

- would you like the system to interrupt playback to talk back to you in
case it didn't understand you?

- what would you expect it to do if you asked it to "play kiss".
Prince's track Kiss or Carly Rae Jepsen's album Kiss or the band Kiss'
most popular tracks? Or, I forgot your playlist of the same name :-)

Unfortunately(?) I don't have access to any of Amazon's offerings to
experience how it works there. And Siri only has about two albums to
chose from when I talk to here :-)

--

Michael
castalla
2016-09-22 09:37:37 UTC
Permalink
mherger wrote:
> A few questions:
>
> - what kind of control would you want to see implemented in a voice
> controlled setup?
>
> - should the system be an always on, always listening system, or on
> demand (eg. key press) only?
>
> - would you like the system to interrupt playback to talk back to you in
>
> case it didn't understand you?
>
> - what would you expect it to do if you asked it to "play kiss".
> Prince's track Kiss or Carly Rae Jepsen's album Kiss or the band Kiss'
> most popular tracks? Or, I forgot your playlist of the same name :-)
>
> Unfortunately(?) I don't have access to any of Amazon's offerings to
> experience how it works there. And Siri only has about two albums to
> chose from when I talk to here :-)
>
> --
>
> Michael

Details of the forthcoming Alexa (and G Home?) controls are scant.

What I've seen suggests a fairly restricted set of commands, eg. select
a player, play a Tunein station, volume control, mute, etc.

I imagine a system with voice control for radio, and limited music
playback, would be a boon for visually-impaired users.

Details on Google Home are also few and far between, but it seems likely
it will be based on the existing chromecast tech.. Alexa Echo/Dot only
offers bluetooth functions.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
cdmackay
2016-09-23 01:00:19 UTC
Permalink
mherger wrote:
> A few questions:
>
> - should the system be an always on, always listening system, or on
> demand (eg. key press) only?
>
>

Amazon's offering is always-on/listening; whether that's a good thing or
not, I can't decide…


------------------------------------------------------------------------
cdmackay's Profile: http://forums.slimdevices.com/member.php?userid=24816
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-09-23 01:05:14 UTC
Permalink
cdmackay wrote:
> Amazon's offering is always-on/listening; whether that's a good thing or
> not, I can't decide…

Given in our shack we speak 3 different languages in various dialects, I
guess there isn't much to worry about ...



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
digisam
2016-10-27 17:22:21 UTC
Permalink
cdmackay wrote:
> Amazon's offering is always-on/listening; whether that's a good thing or
> not, I can't decide…

True, but it is only listening locally for the trigger word (alexa, echo
or amazon). It doesn't touch the network at all unless you activate it.


------------------------------------------------------------------------
digisam's Profile: http://forums.slimdevices.com/member.php?userid=65778
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Julf
2016-10-28 10:16:49 UTC
Permalink
digisam wrote:
> True, but it is only listening locally for the trigger word (alexa, echo
> or amazon). It doesn't touch the network at all unless you activate it.

That is how it is programmed to work by default. If we are lucky, there
are no back doors (intended or unintended) to change that...



"To try to judge the real from the false will always be hard. In this
fast-growing art of 'high fidelity' the quackery will bear a solid gilt
edge that will fool many people" - Paul W Klipsch, 1953
------------------------------------------------------------------------
Julf's Profile: http://forums.slimdevices.com/member.php?userid=42050
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
earthbased
2016-10-28 17:08:40 UTC
Permalink
I have an Amazon Echo V2 and have learned to really like voice control.
You don't have to have a computing device nearby, just use your voice.
This is the future.


------------------------------------------------------------------------
earthbased's Profile: http://forums.slimdevices.com/member.php?userid=334
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-10-30 16:57:26 UTC
Permalink
I have an Echo and it is proving to be quite a hit in our house and is
beginning to replace the Squeezebox for background music. It will, on
command, play from my music library which it seems to have catalogued
and any TuneIn Radio station we request. Sound quality is OK but that is
trumped by convenience. An Alexa skill or deeper integration (preferred
option) would be a fantastic addition. So we can use:

Alexa play Bruce Springsteen
Alexa shuffle my music
Alexa volume up/down
Alexa next track/last track
Alexa pause
Alexa play TuneIn 'Offshore Music Radio'
Alexa shut up (switches off)

Those commands are pretty much all that would be required and
integration would mean we could issue commands to the Echo or Dot and
Squeezebox would play via the hi-fi, Boom or Radio.


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Michael Herger
2016-10-30 17:02:20 UTC
Permalink
> Alexa play Bruce Springsteen

How good is it at recognizing artists vs. albums vs. track names etc.?

--

Michael
EricBergan
2016-10-30 18:24:04 UTC
Permalink
mherger wrote:
> > Alexa play Bruce Springsteen
>
> How good is it at recognizing artists vs. albums vs. track names etc.?
>
> --
>
> Michael

Haven't experimented alot, but it looks like it passes it along to the
service (Amazon Music, Pandora, TuneIn, etc.) and lets them parse it. I
tend to always explicitly say the service, and
artist/album/genre/station/etc.


------------------------------------------------------------------------
EricBergan's Profile: http://forums.slimdevices.com/member.php?userid=4746
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
rojikewl
2016-10-31 06:17:48 UTC
Permalink
mherger wrote:
> > Alexa play Bruce Springsteen
>
> How good is it at recognizing artists vs. albums vs. track names etc.?
>
> --
>
> Michael

I find it to be quite good. You can say "Alexa, play the song xxx by
xxx" or "...the song xxx from the album xxx" and she usually gets it
right and the music starts playing very quickly. When she doesn't get
something you help her out by using the Alexa app.

I have one of the original Echo devices, which can only connect to other
systems via Bluetooth. The newer Echo Dot has both Bluetooth and a line
out.

I really like the Echo for listening to news, asking for the weather,
setting timers and alarms, etc., but I much prefer to use my Squeezebox
system for music, because it is connected to the sound systems I want to
use, because of the synchronization and now because of Tidal.

I have often wished that Alexa could play through LMS! The original
Kindle software was based on software from a company called Mobipocket,
and Kindle e-books are still Mobipocket-compatible. It has occurred to
me many times that Amazon should use LMS for synchronization between
Alexa and Squeezebox devices.


------------------------------------------------------------------------
rojikewl's Profile: http://forums.slimdevices.com/member.php?userid=62055
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-10-27 19:01:07 UTC
Permalink
cdmackay wrote:
> Amazon's offering is always-on/listening; whether that's a good thing or
> not, I can't decide…

You can play a Sonos favourite if you combine Alexa with Yonomi (which
can control Sonos players). So, 'Turn On Sonos Favorite One' starts the
Sonos playing the favourite.

Basic - but interesting. It has to get better ....



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
rojikewl
2016-10-31 06:33:56 UTC
Permalink
mherger wrote:
>
>
> - should the system be an always on, always listening system, or on
> demand (eg. key press) only?
>
> - would you like the system to interrupt playback to talk back to you in
>
> case it didn't understand you?
>
> - what would you expect it to do if you asked it to "play kiss".
> Prince's track Kiss or Carly Rae Jepsen's album Kiss or the band Kiss'
> most popular tracks? Or, I forgot your playlist of the same name :-)
>

Alexa is always listening, but she does have a button that turns off her
microphones.

She always temporarily mutes playback when you say the wake word. Unless
of course you have turned her up so loud that she can't hear you over
what she is playing.

With your question about "play kiss" I can say that she rarely asks for
clarification. Usually she'll just go with her best guess, and you have
to try again if she's wrong. Sometimes she will say "You want to hear
xxx by xxx, right?"

Amazon is pushing its new Amazon Music Unlimited service big time right
now. I got an e-mail talking about Alexa's "song of the day" feature.
Apparently it used to be called "Song of the Day for Prime Members," but
when I tried to check it out today Alexa played a rather long and
annoying ad for Amazon Music Unlimited. The Song of the Day is now only
available to Music Unlimited subscribers.


------------------------------------------------------------------------
rojikewl's Profile: http://forums.slimdevices.com/member.php?userid=62055
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-10-31 11:15:55 UTC
Permalink
As an aside Logitech Harmony remotes are now integrated with Amazon
Echo/Dot so if anyone has contacts in that department it could be a
quick path to development:
https://support.myharmony.com/en-us/harmony-experience-with-amazon-alexa

If you ask Alexa for a specific song it will ask for confirmation if
there are duplicates. The service is learning as it goes along, Amazon
is constantly improving it and the forthcoming release of Google Home is
going to really push AI into greater use with competing products. Amazon
has a two year start though and some 3,000 skills you can select. They
have also released the API so that equipment manufacturers can build
Alexa into their products - by this time next year almost every hi-fi
and TV system will have it built in.


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-02 12:30:28 UTC
Permalink
There's an alexa skill to control JRiver media server. Looks very
interesting.

https://yabb.jriver.com/interact/index.php/topic,102709.0.html

Surely, if Jriver is possible, then some guru could get LMS working?
No?

(I don't underestimate the effort probably needed!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
bpa
2016-11-02 13:18:03 UTC
Permalink
castalla wrote:
> Surely, if Jriver is possible, then some guru could get LMS working?
> No?
>
> (I don't underestimate the effort probably needed!

Just from looking at the documentation. Effort is part of the issue.
There is also a possible issued that an "LMS Skill Set" has to be a web
service somewhere so either user will have to create their own
webservice or somebody will have to host a webservice for all LMS users.
There may also be a security issues - AFAICT Alexa has to be able to
access the LMS server - which means opening LMS to internet (given that
users have been woken up in the might this is not a good idea) so I
think there may need to be an intermediary somehting like a Squeezy CLI
process to provide some isolation.

From a user point of view I suspect it may be better to create "skill
set" for specific parts of LMS or rather a single generic one as it
would make control easier (fewer words to say).

To understand the issues a bit better I have ordered a Dot but I will
have to overcome "unsupported country" issues before even getting near
LMS skill sets.


------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-02 13:28:01 UTC
Permalink
bpa wrote:
> Just from looking at the documentation. Effort is part of the issue.
> There is also a possible issued that an "LMS Skill Set" has to be a web
> service somewhere so either user will have to create their own
> webservice or somebody will have to host a webservice for all LMS users.
> There may also be a security issues - AFAICT Alexa has to be able to
> access the LMS server - which means opening LMS to internet (given that
> users have been woken up in the might this is not a good idea) so I
> think there may need to be an intermediary somehting like a Squeezy CLI
> process to provide some isolation.
>
> From a user point of view I suspect it may be better to create "skill
> set" for specific parts of LMS or rather a single generic one as it
> would make control easier (fewer words to say).
>
> To understand the issues a bit better I have ordered a Dot but I will
> have to overcome "unsupported country" issues before even getting near
> LMS skill sets.

I found Jriver too complicated to set up, so fell at the first post.
Then I see that House Band is a USA-only skill. So no go there either.

Yononi has a limited set of Sonos commands - eg. play selected
favourites. Needs yononi running on android/iphone on same network as
the sonos speaker.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-03 17:37:47 UTC
Permalink
bpa wrote:
> Just from looking at the documentation. Effort is part of the issue.
> There is also a possible issued that an "LMS Skill Set" has to be a web
> service somewhere so either user will have to create their own
> webservice or somebody will have to host a webservice for all LMS users.
> There may also be a security issues - AFAICT Alexa has to be able to
> access the LMS server - which means opening LMS to internet (given that
> users have been woken up in the might this is not a good idea) so I
> think there may need to be an intermediary somehting like a Squeezy CLI
> process to provide some isolation.
>
> From a user point of view I suspect it may be better to create "skill
> set" for specific parts of LMS or rather a single generic one as it
> would make control easier (fewer words to say).
>
> To understand the issues a bit better I have ordered a Dot but I will
> have to overcome "unsupported country" issues before even getting near
> LMS skill sets.

Hi bpa.

Also in Ireland and got my dot last week. Skilling up on skills as we
speak and am also considering ways to integrate with Squeezbox
ecosystem. I run my skills on my home server in Node-RED so have direct
access to all devices etc. but your point is a good one - for anything
more than a custom implementation, there needs to be a mechanism for a
cloud-hosted skill to access a local LMS.

The solution might be in MySqueezeBox.com? According to this post it
supports most of the CLI of the LMS;

http://forums.slimdevices.com/showthread.php?104851-Rest-API-for-MySqueezebox-com-any-guidance

The documentation is poor enough but if one could figure out user
authentication with MSB and find an easy way of configuring the skill
with user credentials, it should be straightforward enough to implement
the basic API calls. Also with the new suppprt in ASK for audio streams,
I could even envision turning the echo itself into squeezebox node.

I feel a project coming on....


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
bpa
2016-11-03 17:41:57 UTC
Permalink
meep wrote:
> The solution might be in MySqueezeBox.com? According to this post it
> supports most of the CLI of the LMS;

I'm not sure what you're think but a local LMS is essential as mysb.com
won't work with transcoding and/or plugins so really not a solution.
mysb.com as a web service host is a complex answer and make users more
reliant on Logitech which they are unlikely to want


------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-03 17:47:14 UTC
Permalink
bpa wrote:
> I'm not sure what you're think but a local LMS is essential as mysb.com
> won't work with transcoding and/or plugins so really not a solution.
> mysb.com as a web service host is a complex answer and make users more
> reliant on Logitech which they are unlikely to want

Not saying no local LMS, just thinking that MSB is a potential way to
get around the issue of users needing to configure their router for
direct access to home LMS/Players from wherever the skill is hosted. I
need to read up a little more on mysqueezebox as I don't use it myself
but if that public (authenticated) API can be used to control a users
local player, it solves a few problems. But probably raises some more
concerns as you point out.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
earthbased
2016-11-04 16:30:26 UTC
Permalink
One thing I have noticed with Unlimited Music and Alexa is she is picky
about naming albums. For example, if I say "Alexa, play Steve Miller
Band Greatest Hits" she cannot find it. If I say "Alexa, play Steve
Miller Band Greatest Hits 1974-1978" she plays that. Alexa should
respond to first query with "Would you like me to play SMB GH
1974-1978".


------------------------------------------------------------------------
earthbased's Profile: http://forums.slimdevices.com/member.php?userid=334
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-04 16:50:13 UTC
Permalink
meep wrote:
> Not saying no local LMS, just thinking that MSB is a potential way to
> get around the issue of users needing to configure their router for
> direct access to home LMS/Players from wherever the skill is hosted. I
> need to read up a little more on mysqueezebox as I don't use it myself
> but if that public (authenticated) API can be used to control a users
> local player, it solves a few problems. But probably raises some more
> concerns as you point out.

Have you come across the House Band skill for JRiver server? Looks
very comprehensive. Might offer some insights?



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
fordpickup
2016-11-06 14:12:12 UTC
Permalink
castalla wrote:
> Alexa Echo and Dot will be available in the UK and Germany next month.
>
>
> I notice that there has been one github project to control LMS which
> seems to have faltered
>
> I wonder whether the wider availability of the Alexa devices might
> promote more interest in developing a skill to control LMS?

That skill is written like stereo instructions. Have you gotten this to
work at all? I get stuck at the part to "execute 'npm install'. The file
doesn't exist in the directory.

As much as I love my SB2 and Slimserver, this might be the tipping
point to jump ship to Sonos. Having used the Echo to control lights and
whatnot it feels -wrong- to not use it to control my music collection.


------------------------------------------------------------------------
fordpickup's Profile: http://forums.slimdevices.com/member.php?userid=66225
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-06 14:24:27 UTC
Permalink
fordpickup wrote:
> That skill is written like stereo instructions. Have you gotten this to
> work at all? I get stuck at the part to "execute 'npm install'. The file
> doesn't exist in the directory.
>
> As much as I love my SB2 and Slimserver, this might be the tipping
> point to jump ship to Sonos. Having used the Echo to control lights and
> whatnot it feels -wrong- to not use it to control my music collection.

I'm still waiting for my Dot.

I've set up the Yononi routines to connect with Sonos - limited to Sonos
favourites, however.. It will be interesting to see what the official
Sonos implementation does.

The best skill so far is House Band - looks very comprehensive - for the
JRiver server. Sadly it's only available for the US The author told me
a UK/DE version would require a complete rewrite.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-11 16:08:49 UTC
Permalink
I've got the bones of an Alexa skill and companion LMS plug-in up and
running. Hopefully I'll get to record a video demo over the weekend and
people can let me know if they think it's worth progressing.


Right now, it only supports the following commands;

Alexa, tell Squeeze Server to register*
-Registers the user in the skill database

Alexa, ask Squeeze Server for my User ID
-Sends your Amazon skill user ID as a card to the Alexa App. You need to
enter this in the companion LMS plug-in to connect everything up.

Alexa, ask Squeeze Server to list devices
-Returns an enumerated list of of players currently connected to your
LMS

Alexa, tell Squeeze Server to select device (by number or by name)
-Gets the skill to tag one device as selected. Future commands will be
carried out on that device so it's not necessary to specify the player
each time

Alexa, tell Squeeze Server to play (device number / device name)
-Causes the previously selected or nominated device to play

Alexa, ask Squeeze Server to pause (device number / device name)
-Causes the previously selected or nominated device to pause



*To allow Alexa access your LMS, there are a few requirements;

-There must be access to your LMS port 9000 from the internet. This will
likely be achieved via port forwarding on your router
-I've written an LMS plug-in that allows you specify your public IP
address and port which the skill can use to access your LMS
-This information is saved in a skill-specific database, associated with
your Amazon User ID for the skill. You must also register your UID via
the plug-in
-I appreciate people might have concerns about sharing this info. That's
why I'd like to share at this early stage. However, note that the amazon
UID is unique to the specific skill and cannot be used to identify users
either across skills or in a general sense.
-For those that don't have a fixed IP address, the plug-in supports
dynamic IPs as well :-)



A typical set-up and getting started process would be as follows;

-Add the Skill to your echo
-say "Alexa, ask Squeeze Server to register"
-say "Alexa, assk Squeeze Server for my user ID"
-Retrieve the user ID from the ALexa app
-Install the Alexa plug-in in the LMS
-Enter your publicly accessible IP address and port number in the
plug-in along with your user ID, retrieved above

Provided that the specified port is mapped to your LMS port 9000, you're
now ready to go.

-say "Alexa, tell Squueze Server to list my devices"
----alexa responds with something like "There are 3 players: Player 1,
'Kitchen' is connected. Player 2, 'Squeezebox Touch' is connected.
Player 3, 'Squeezebox Radio' is connected."
-say "Alexa, tell Squeeze Server to select player 1"
----alexa responds with something like "Player Kitchen is now selected"

-say "Alexa, tell Squeeze Server to play"
----alexa will cause the currently selected player (Kitchen) to play
-say "Alexa, tell Squeeze Server to play on the Touch"
----this will cause Alexa to start the Touch playing, and store it as
the currently selected player
-say "Alexa, tell Squeeze Server to pause"
----this will cause the touch (as the currently selected player) to
pause.

This is fairly rudimentary right now but it's intended as a proof of
concept and an attempt to see how accessible the CLI might be.


A few queries & comments;

What's the best name for the skill? Amazon guidelines dictate that it
cannot be one word. 'Alexa, ask LMS to...' is a bit clunky. Suggestions
appreciated.

Once something is playing, it will hopefully be possible to bypass the
'ask squeeze server' for commands such as Pause, Resume, Next, Previous,
ShuffleOn, ShuffleOff as the skill implements the audio player
interface.

The way Alexa works, it's not possible to specify a free-form element
for selecting a device by name. I've implemented the enumerated device
approach so it would be possible to issue commands like 'Alexa, tell
Squeeze Server to play device one'. I have implemented a fuzzy text
search using levenshtein distance to determine the match scoring. This
works surprisingly well and the skill will do a good job of matching
what the users says to a player name for the list. (she tends to select
something rather than nothing). To make this work better, I've toyed
with the idea of automatically collecting skill user device names and
storing them to add to future versions of the skill to help improve
accuracy. (this would be enabled/disabled by users in the plugin). I was
wondering what people would think of this idea?

What would be the top priority commands people would like to see? The
current proof of concept uses the LMS http interface via JSON and
therefore has access to the full set of CLI commands. However, there's a
good deal of time required to implement, debug, test and polish each one
so if I'm moving ahead with this, I'd like to start with a useful
sub-set and build from there.

Up to 10 enumerated devices are currently supported. Is this enough?

If anyone is interested, I'd be happy to havve a few testers. As it's a
skill in development at the moment, you'd need to have an amazon
developer account. I can associate up to 5 (I think) accounts with my
own which would allow the skill to be shared. Let me know.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-11 16:25:24 UTC
Permalink
Sounds amazing! Is the skill limited to US only ?

But - a major need is to be able to call for a particular stream, eg.
from Favourites or Playlists.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-11 16:30:23 UTC
Permalink
castalla wrote:
> Sounds amazing! Is the skill limited to US only ?
>
> But - a major need is to be able to call for a particular stream, eg.
> from Favourites or Playlists.

I'm developing it on a UK account but it should work everywhere, as far
as I know. My first real skill, (and LMS plugin - that was a baptism of
fire, I can tell you!) so I'm learning as I go along.

Can you elaborate a little on that need? Maybe post a few phrases you'd
imagine saying to Alexa to achieve what you have in mind?

Cheers


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-11 16:45:46 UTC
Permalink
meep wrote:
> I'm developing it on a UK account but it should work everywhere, as far
> as I know. My first real skill, (and LMS plugin - that was a baptism of
> fire, I can tell you!) so I'm learning as I go along.
>
> Can you elaborate a little on that need? Maybe post a few phrases you'd
> imagine saying to Alexa to achieve what you have in mind?
>
> Cheers

My Dot seems to have gone AWOL in the post - so can't actively help or
test.

House Band has some naturally sounding commands - may serve as an
example?

https://www.alexaskillstore.com/House-Band/751



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
bpa
2016-11-11 16:59:23 UTC
Permalink
castalla wrote:
> My Dot seems to have gone AWOL in the post - so can't actively help or
> test.

My Dot arrived but I find it only wakes up for about 1 go in 3 and
almost impossible to stop it once it starts. I probably need more time
to find the right tone but not a good first impression.


------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
murkle
2016-11-11 20:48:07 UTC
Permalink
Make 'squeezebox' the keyword! It's officially two words and rolls
better than squeeze server, slim server, logitech media sever

This is amazing work.


------------------------------------------------------------------------
murkle's Profile: http://forums.slimdevices.com/member.php?userid=40710
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
usc95
2016-11-11 20:48:22 UTC
Permalink
This would be awesome to get running. It would be great to tell Alexa
to "play favorite 1" or "play favorite KCRW" or "play dinner music
playlist". Play "squeeze server" does seem clunky and the controls
indicated in the House Band skill mentioned earlier look to be more
natural sounding. I would hope not to have to indicate the name of the
squeezebox by number but maybe by a list of standardized names you could
require? Names like "kitchen", "lounge", "living room", "bathroom",
"bedroom" etc. instead of "squeezebox 1" or "squeezebox 2". While I
could remember the numbers of the particular squeezeboxes I am sure my
family members would not.


------------------------------------------------------------------------
usc95's Profile: http://forums.slimdevices.com/member.php?userid=59694
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
usc95
2016-11-11 20:57:31 UTC
Permalink
I agree that "squeeze box" is a better keyword than "squeeze server".


------------------------------------------------------------------------
usc95's Profile: http://forums.slimdevices.com/member.php?userid=59694
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-12 00:42:39 UTC
Permalink
Thanks for the feedback. I'll make it "Alexa, tell squeeze box to..."
For now. I just hope I don't run into any trademark issues when getting
the skill certified by Amazon.

I agree that addressing devices by name is preferred and I actually have
that working pretty well at the moment. I implemented the selection by
number as well as that's 100% accurate. The more real world names and I
can gather and embed in the skill will help.

hoping to get a demo done soon.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-12 01:18:02 UTC
Permalink
meep wrote:
> Thanks for the feedback. I'll make it "Alexa, tell squeeze box to..."
> For now. I just hope I don't run into any trademark issues when getting
> the skill certified by Amazon.
>
> I agree that addressing devices by name is preferred and I actually have
> that working pretty well at the moment. I implemented the selection by
> number as well as that's 100% accurate. The more real world names and I
> can gather and embed in the skill will help.
>
> hoping to get a demo done soon.

Real world names ... you'll have a very long list! I name my devices
usually after the model (others use location, etc), eg:

Radio White
Radio Black
Touch

then various squeezelite-based devices, such as:

Chromecast
Libratone
Jongo
Loewe

etc.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-11 16:34:25 UTC
Permalink
castalla wrote:
> Sounds amazing! Is the skill limited to US only ?
> .

I imagine that the reason the developer indicated that the US skill
would need to be re-written is that it likely uses Literal types for
slots. These are being phased out this month and are not supported in UK
skills at all. Happily, I'm not using them!


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
crewxp
2016-11-13 07:51:12 UTC
Permalink
meep wrote:
> I've got the bones of an Alexa skill and companion LMS plug-in up and
> running. Hopefully I'll get to record a video demo over the weekend and
> people can let me know if they think it's worth progressing.
>
>
> Right now, it only supports the following commands;
>
> Alexa, tell Squeeze Server to register*
> -Registers the user in the skill database
>
> Alexa, ask Squeeze Server for my User ID
> -Sends your Amazon skill user ID as a card to the Alexa App. You need to
> enter this in the companion LMS plug-in to connect everything up.
>
> Alexa, ask Squeeze Server to list devices
> -Returns an enumerated list of of players currently connected to your
> LMS
>
> Alexa, tell Squeeze Server to select device (by number or by name)
> -Gets the skill to tag one device as selected. Future commands will be
> carried out on that device so it's not necessary to specify the player
> each time
>
> Alexa, tell Squeeze Server to play (device number / device name)
> -Causes the previously selected or nominated device to play
>
> Alexa, ask Squeeze Server to pause (device number / device name)
> -Causes the previously selected or nominated device to pause
>
>
>
> *To allow Alexa access your LMS, there are a few requirements;
>
> -There must be access to your LMS port 9000 from the internet. This will
> likely be achieved via port forwarding on your router
> -I've written an LMS plug-in that allows you specify your public IP
> address and port which the skill can use to access your LMS
> -This information is saved in a skill-specific database, associated with
> your Amazon User ID for the skill. You must also register your UID via
> the plug-in
> -I appreciate people might have concerns about sharing this info. That's
> why I'd like to share at this early stage. However, note that the amazon
> UID is unique to the specific skill and cannot be used to identify users
> either across skills or in a general sense.
> -For those that don't have a fixed IP address, the plug-in supports
> dynamic IPs as well :-)
>
>
>
> A typical set-up and getting started process would be as follows;
>
> -Add the Skill to your echo
> -say "Alexa, ask Squeeze Server to register"
> -say "Alexa, assk Squeeze Server for my user ID"
> -Retrieve the user ID from the ALexa app
> -Install the Alexa plug-in in the LMS
> -Enter your publicly accessible IP address and port number in the
> plug-in along with your user ID, retrieved above
>
> Provided that the specified port is mapped to your LMS port 9000, you're
> now ready to go.
>
> -say "Alexa, tell Squueze Server to list my devices"
> ----alexa responds with something like "There are 3 players: Player 1,
> 'Kitchen' is connected. Player 2, 'Squeezebox Touch' is connected.
> Player 3, 'Squeezebox Radio' is connected."
> -say "Alexa, tell Squeeze Server to select player 1"
> ----alexa responds with something like "Player Kitchen is now selected"
>
> -say "Alexa, tell Squeeze Server to play"
> ----alexa will cause the currently selected player (Kitchen) to play
> -say "Alexa, tell Squeeze Server to play on the Touch"
> ----this will cause Alexa to start the Touch playing, and store it as
> the currently selected player
> -say "Alexa, tell Squeeze Server to pause"
> ----this will cause the touch (as the currently selected player) to
> pause.
>
> This is fairly rudimentary right now but it's intended as a proof of
> concept and an attempt to see how accessible the CLI might be.
>
>
> A few queries & comments;
>
> What's the best name for the skill? Amazon guidelines dictate that it
> cannot be one word. 'Alexa, ask LMS to...' is a bit clunky. Suggestions
> appreciated.
>
> Once something is playing, it will hopefully be possible to bypass the
> 'ask squeeze server' for commands such as Pause, Resume, Next, Previous,
> ShuffleOn, ShuffleOff as the skill implements the audio player
> interface.
>
> The way Alexa works, it's not possible to specify a free-form element
> for selecting a device by name. I've implemented the enumerated device
> approach so it would be possible to issue commands like 'Alexa, tell
> Squeeze Server to play device one'. I have implemented a fuzzy text
> search using levenshtein distance to determine the match scoring. This
> works surprisingly well and the skill will do a good job of matching
> what the users says to a player name for the list. (she tends to select
> something rather than nothing). To make this work better, I've toyed
> with the idea of automatically collecting skill user device names and
> storing them to add to future versions of the skill to help improve
> accuracy. (this would be enabled/disabled by users in the plugin). I was
> wondering what people would think of this idea?
>
> What would be the top priority commands people would like to see? The
> current proof of concept uses the LMS http interface via JSON and
> therefore has access to the full set of CLI commands. However, there's a
> good deal of time required to implement, debug, test and polish each one
> so if I'm moving ahead with this, I'd like to start with a useful
> sub-set and build from there.
>
> Up to 10 enumerated devices are currently supported. Is this enough?
>
> If anyone is interested, I'd be happy to havve a few testers. As it's a
> skill in development at the moment, you'd need to have an amazon
> developer account. I can associate up to 5 (I think) accounts with my
> own which would allow the skill to be shared. Let me know.

I'm down to test. I was actually going to start planning this exact
thing. Finally got my home automation setup minimally. Have programming
knowledge and dev account to go with of course my email is my
***@gmail.com


------------------------------------------------------------------------
crewxp's Profile: http://forums.slimdevices.com/member.php?userid=39943
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-13 11:59:42 UTC
Permalink
Fantastic work! Commands we would use most (just checked with the wife!)
would be play Favourites (e.g xxx radio station), play my music, shuffle
my music (random play), next track, volume up/down, pause.


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Midnight
2016-11-13 18:59:01 UTC
Permalink
Good luck with this project. I for one would really like this to work
and would be happy to test when my echo dot arrives tomorrow :)


------------------------------------------------------------------------
Midnight's Profile: http://forums.slimdevices.com/member.php?userid=33287
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
sota
2016-11-13 19:20:32 UTC
Permalink
Has anyone looked at this - http://bwssystems.com/#/habridge It's an
application that emulates the Philips Hue API for other home automation
devices. I'm using it to control my Vera Z-Wave HA controller and my
Harmony Hub remote with Alexa. So I can say "Alexa, turn on the
television" and it will run that activity on the Harmony, or "Alexa, dim
the reading lights to 50%" will pass that to the Vera controller. It's
been very reliable and, as it's written in Java, can run on most
platforms.

But it can also do a lot more. From the web site "the Bridge supports
custom calls as well using http/https/udp and tcp such as the
LimitlessLED/MiLight bulbs using the UDP protocol. Binary data is
supported with UDP/TCP." Perhaps this could be used to pass calls from
Alexa to LMS?

With regard to the keywork, can I suggest "squeeze". My experience with
the Echo and with creating command words with the HA Bridge app tells me
that shorter and simpler names work best.

Looking forward to testing this!

Pat


------------------------------------------------------------------------
sota's Profile: http://forums.slimdevices.com/member.php?userid=65703
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-13 23:08:42 UTC
Permalink
sota wrote:
> Has anyone looked at this - http://bwssystems.com/#/habridge It's an
> application that emulates the Philips Hue API for other home automation
> devices. I'm using it to control my Vera Z-Wave HA controller and my
> Harmony Hub remote with Alexa. So I can say "Alexa, turn on the
> television" and it will run that activity on the Harmony, or "Alexa, dim
> the reading lights to 50%" will pass that to the Vera controller. It's
> been very reliable and, as it's written in Java, can run on most
> platforms.
>
> But it can also do a lot more. From the web site "the Bridge supports
> custom calls as well using http/https/udp and tcp such as the
> LimitlessLED/MiLight bulbs using the UDP protocol. Binary data is
> supported with UDP/TCP." Perhaps this could be used to pass calls from
> Alexa to LMS?
>
> With regard to the keywork, can I suggest "squeeze". My experience with
> the Echo and with creating command words with the HA Bridge app tells me
> that shorter and simpler names work best.
>
> Looking forward to testing this!
>
> Pat

Hi Pat

Looks like there's a good selection of people from Ireland in this
thread!

I haven't looked at habridge. Anything I'd read about the emulation
approach indicated that the function set was limited to what you could
do with a light (on, off, dim etc.) and not that suitable for more
complex applications. Might be worth looking into the extended commands
you mention.

In other news, I've now got the basic skill up and running and pretty
much debugged. Will only pause and play a SB right now but it's the
proof on concept I was looking for.

There's a wrinkle with the invocation name though. I'd like to aim for
this being a certified, published skill some day so I need take account
of the Amazon certification requirements.

Unfortunately, "Squeeze' won't work as they don't allow single-word
names

Also, "Squeeze Box" looks like a non-runner for two reasons;

-They don't allow names that breach trademarks or trade names which I
suspect this would
-You can't use an invocation name and then use it later in the command.
So "Alexa, tell squeeze box to play Adele on squeezebox radio" won't
work. As a lot of SBs have the word 'squeezebox' in their name from the
factory, this is a challenge.

I can see why the JRiver skill doesn't have JRiver in the title.

I'll get the video of this skill up shortly, then if there's general
interest, we can start a dedicated thread and take it from there.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-13 23:26:34 UTC
Permalink
meep wrote:
> Hi Pat
>
> Looks like there's a good selection of people from Ireland in this
> thread!
>
> I haven't looked at habridge. Anything I'd read about the emulation
> approach indicated that the function set was limited to what you could
> do with a light (on, off, dim etc.) and not that suitable for more
> complex applications. Might be worth looking into the extended commands
> you mention.
>
> In other news, I've now got the basic skill up and running and pretty
> much debugged. Will only pause and play a SB right now but it's the
> proof on concept I was looking for.
>
> There's a wrinkle with the invocation name though. I'd like to aim for
> this being a certified, published skill some day so I need take account
> of the Amazon certification requirements.
>
> Unfortunately, "Squeeze' won't work as they don't allow single-word
> names
>
> Also, "Squeeze Box" looks like a non-runner for two reasons;
>
> -They don't allow names that breach trademarks or trade names which I
> suspect this would
> -You can't use an invocation name and then use it later in the command.
> So "Alexa, tell squeeze box to play Adele on squeezebox radio" won't
> work. As a lot of SBs have the word 'squeezebox' in their name from the
> factory, this is a challenge.
>
> I can see why the JRiver skill doesn't have JRiver in the title.
>
> I'll get the video of this skill up shortly, then if there's general
> interest, we can start a dedicated thread and take it from there.


How about Squeeze System as the name? Allhough squeeze box is less
sibilant! Ask Michael for his advice?



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-14 11:09:17 UTC
Permalink
meep wrote:
> Unfortunately, "Squeeze' won't work as they don't allow single-word
> names

They allow 'Hive', 'Nest' and 'Tunein' so it seems odd they won't allow
'Squeeze'. How about 'My Squeeze'?


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
sota
2016-11-14 13:10:42 UTC
Permalink
If it has to be two words and unique, perhaps Squeeze Player?


------------------------------------------------------------------------
sota's Profile: http://forums.slimdevices.com/member.php?userid=65703
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Girth
2016-11-14 14:24:10 UTC
Permalink
I say M Herger... who else would you ask to do something cool on your
squeezebox.

"M Herger play pandora jams"


------------------------------------------------------------------------
Girth's Profile: http://forums.slimdevices.com/member.php?userid=62640
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-14 14:43:24 UTC
Permalink
sota wrote:
> If it has to be two words and unique, perhaps Squeeze Player?


A good suggestion, except that the word 'player' is fairly important in
command connecting words so can't be used on that basis. For example,
you can't have;

'Alexa, ask squeeze player to play Adele on player Squeezebox One'
(where 'Squeezebox One' is the actual name of the SB device).

You could get around this with;

'Alexa, ask squeeze player to play Adele on Squeezebox One'
'Alexa, ask squeeze player to play Adele on device Squeezebox One'

But in constructing command phrases, you need to consider lots of
alternatives for natural language and I feel people would be inclined to
use the term 'player' when wanting to refer to discreet devices, zones
and the like,

Remember as well, technically, we're asking Alexa to ask
SqueezeServer/LMS to ask a Squeezebox device to do something. (Chinese
whispers, anyone?). I'd like to retain that logical flow however, as I
feel it makes sense to the user.


This is a great discussion. Does anyone know the protocol for setting up
an announce thread on here, in particular for pre-production/beta
plug-ins? I think we could usefully move the discussion to a dedicated
thread.

Another point I want to discuss is this: I think I've figured out a way
to short-circuit a lot of this and just say things like "Alexa, play
Adele" or "Alexa , Pause". Provided the user has preciously invoked the
<whatever it ends up being called Squeezebox skill>, that should just
work and issue the commands to the previously selected squeezebox
device. It's a bit of a hack though and I'm wondering about expending
effort on something that might get rejected at certification.

Also, and not to raise too many hopes, but I _think_ I've also figured
out a way to turn an echo into a squeezebox. While that's some way off
in terms of planning and development effort, imagine what you could do
with a few echos connected to your LMS as players! New lease of life
indeed!


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-14 14:58:47 UTC
Permalink
meep wrote:
>
> Another point I want to discuss is this: I think I've figured out a way
> to short-circuit a lot of this and just say things like "Alexa, play
> Adele" or "Alexa , Pause". Provided the user has preciously invoked the
> <whatever it ends up being called Squeezebox skill>, that should just
> work and issue the commands to the previously selected squeezebox
> device. It's a bit of a hack though and I'm wondering about expending
> effort on something that might get rejected at certification.
>
TuneIn Radio already works that way on the Echo. If I ask 'Alexa, play
Offshore Music Radio on Tunein' (although getting it to recognise the
word offshore is a bit of a struggle!) it plays. Later I can go back and
say 'Alex, play Tunein' and it responds 'Playing the last Tunein station
David asked for - Offshore Music Radio'. So it does indeed remember what
particular skill was invoked. 'Alexa, ask Hive to turn on living room
light' can be followed with 'Alexa, dim living room light' or 'Turn off
living room light' - no need to mention the Hive invocation word.


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-14 15:16:00 UTC
Permalink
Heuer wrote:
> TuneIn Radio already works that way on the Echo. If I ask 'Alexa, play
> Offshore Music Radio on Tunein' (although getting it to recognise the
> word offshore is a bit of a struggle!) it plays. Later I can go back and
> say 'Alex, play Tunein' and it responds 'Playing the last Tunein station
> David asked for - Offshore Music Radio'. So it does indeed remember what
> particular skill was invoked. 'Alexa, ask Hive to turn on living room
> light' can be followed with 'Alexa, dim living room light' or 'Turn off
> living room light' - no need to mention the Hive invocation word.

Ah yes, but TuneIn (Along with Spotify and Amazon music) are special
cases. (You can set them as your default music service via the Alexa
App). Hive could be similar, though I'm note sure.

Once I have the proof of concept video published, I think I'll focus on
this next - getting support for simplified commands. It can easily be
removed and I need to see if it supports slots. (eg 'Alexa, play Adele
on squeezebox Touch' rather than the full 'Alexa, ask <skill name> to
play Adele on Squeezebox Touch'). I'm not sure it does.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-14 15:33:00 UTC
Permalink
meep wrote:
> Ah yes, but TuneIn (Along with Spotify and Amazon music) are special
> cases. (You can set them as your default music service via the Alexa
> App). Hive could be similar, though I'm note sure.
Hive is just a skill you have to set it up via the Amazon app. Tunein is
baked in to Echo.


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-15 00:07:47 UTC
Permalink
So I finally got the video demo made. Popped it up on my blog for want
of a better place;

http://mediaserver8.blogspot.ie/2016/11/alexa-meet-squeezebox.html

So it works!


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-15 01:24:10 UTC
Permalink
meep wrote:
> So I finally got the video demo made. Popped it up on my blog for want
> of a better place;
>
> http://mediaserver8.blogspot.ie/2016/11/alexa-meet-squeezebox.html
>
> So it works!

Impressive!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Michael Herger
2016-11-15 04:28:25 UTC
Permalink
> So I finally got the video demo made. Popped it up on my blog for want
> of a better place;

I must say this is looking pretty impressive.

Unfortunately I wouldn't want to expose my LMS to the public. You might
want to have some obfuscation in place at least. There have been several
reports of users who got woken up in the middle of the night because
somebody had fun playing music at full volume on their exposed LMS...
You might want to plan to build in some additional security like eg. a
proxy server in front of it which would block anything but Alexa's
requests or the like.

--

Michael
NeilT
2016-11-15 08:26:06 UTC
Permalink
That looks really promising - but does it really only have 31%
confidence in picking one player out of three? :D


------------------------------------------------------------------------
NeilT's Profile: http://forums.slimdevices.com/member.php?userid=24306
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-15 09:15:31 UTC
Permalink
NeilT wrote:
> That looks really promising - but does it really only have 31%
> confidence in picking one player out of three? :D

The reason for 31% confidence is easily explained.

The name of the device in settings is 'Squeezebox Radio'. I requested
'Alexa, tell Squeeze Server to play Radio'.

The low confidence rating is due to the fact that I omitted the
'Squeezebox' from my command. Thus the check is "Squeezebox Radio =
Radio" which is a 31% match. I'm actually impressed that it found the
correct device with a whole word of the name missing!

The matching actually works pretty well. Maybe too well in fact.
Sometimes, in testing, I threw in nonsense to see what would happen. The
skill often found a match with 5% confidence and selected the player.
This is actually the reason I added the confidence reporting, just to
see what was happening.

I think I might add a confidence threshold and not allow a match under
10% or similar. Testing required.

I'm also thinking of adding a setting to allow users chose the level of
verbosity Alexa responds with;

Minimal - just critical command failures
Normal - at an acknowledgment of every command, even just an 'OK'
Chatty - some additional info such as the confidence level tagged on


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-15 09:08:20 UTC
Permalink
mherger wrote:
> > So I finally got the video demo made. Popped it up on my blog for
> want
> > of a better place;
>
> I must say this is looking pretty impressive.
>
> Unfortunately I wouldn't want to expose my LMS to the public. You might
>
> want to have some obfuscation in place at least. There have been several
>
> reports of users who got woken up in the middle of the night because
> somebody had fun playing music at full volume on their exposed LMS...
> You might want to plan to build in some additional security like eg. a
> proxy server in front of it which would block anything but Alexa's
> requests or the like.
>
> --
>
> Michael

Thanks

The skill itself can be protected to process only requests from Amazon
but when the skill calls the local LMS, that's all on the user side.
User would need to set up port forwarding on their router and add
additional protections as they see fit. One of my next tasks is to
support authentication on the LMS by allowing users set their
credentials in the plug-in but I'm not sure if that would be sufficient?


Are there any examples of a proxy like you mention? I want this to be as
easy as possible to set up for the user. One thought occurs that this
could be built in to the plug-in but that's a huge amount of dev. in a
language I'm not too familiar with :-(. Much prefer to keep the http
comms in the cloud based skill itself).


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Michael Herger
2016-11-15 09:50:02 UTC
Permalink
> The skill itself can be protected to process only requests from Amazon
> but when the skill calls the local LMS, that's all on the user side.
> User would need to set up port forwarding on their router and add
> additional protections as they see fit. One of my next tasks is to
> support authentication on the LMS by allowing users set their
> credentials in the plug-in but I'm not sure if that would be sufficient?

It would likely be sufficient to keep the guys away who just want to
have fun waking you up at night. But LMS has not been designed to be
exposed to the internet. It certainly could be hacked easily...

> Are there any examples of a proxy like you mention? I want this to be as
> easy as possible to set up for the user. One thought occurs that this
> could be built in to the plug-in but that's a huge amount of dev. in a
> language I'm not too familiar with :-(. Much prefer to keep the http
> comms in the cloud based skill itself).

I have no idea about how your implementation works. Is there something
running on your computer (besides the LMS plugin)? You mentioned some
node based tool. Maybe you could implement a reverse proxy in node to
forward the specific requests from Alexa to your LMS only, then expose
your node instance rather than LMS itself?

Security and easy set up are a huge challenge to combine...

--

Michael
meep
2016-11-15 10:08:24 UTC
Permalink
mherger wrote:
> > The skill itself can be protected to process only requests from
> Amazon
> > but when the skill calls the local LMS, that's all on the user side.
> > User would need to set up port forwarding on their router and add
> > additional protections as they see fit. One of my next tasks is to
> > support authentication on the LMS by allowing users set their
> > credentials in the plug-in but I'm not sure if that would be
> sufficient?
>
> It would likely be sufficient to keep the guys away who just want to
> have fun waking you up at night. But LMS has not been designed to be
> exposed to the internet. It certainly could be hacked easily...
>
> > Are there any examples of a proxy like you mention? I want this to be
> as
> > easy as possible to set up for the user. One thought occurs that this
> > could be built in to the plug-in but that's a huge amount of dev. in
> a
> > language I'm not too familiar with :-(. Much prefer to keep the http
> > comms in the cloud based skill itself).
>
> I have no idea about how your implementation works. Is there something
> running on your computer (besides the LMS plugin)? You mentioned some
> node based tool. Maybe you could implement a reverse proxy in node to
> forward the specific requests from Alexa to your LMS only, then expose
> your node instance rather than LMS itself?
>
> Security and easy set up are a huge challenge to combine...
>
> --
>
> Michael

Really appreciate the input, Michael

The node tool is in the cloud- it implements the skill logic. The only
thing I have on the local system is the plug-in which is used to
configure the LMS to interface with the cloud-based skill.

I'm thinking that I could modify the plug-in to manage the transactions
thereby requiring the user open a port only to the plug-in, not the
entire LMS. The plug-in could then authenticate that the requests are
from the skill. This has the added benefit of not requiring the storage
of LMS username and password in the skill database. I'll look into this
whole area some more. I agree this needs to be resolved.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-15 11:46:57 UTC
Permalink
Fantastic bit of work and can't wait to try it!


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Michael Herger
2016-11-15 12:15:06 UTC
Permalink
> The node tool is in the cloud- it implements the skill logic.

In a cloud service which is under your control? Or would other users
have to subscribe to that service, too? I'm not sure how this is
running, as from looking at the node-red website it seems it was
something you'd have install on your system (they suggest a Pi).
--

Michael
meep
2016-11-15 13:40:19 UTC
Permalink
mherger wrote:
> > The node tool is in the cloud- it implements the skill logic.
>
> In a cloud service which is under your control? Or would other users
> have to subscribe to that service, too? I'm not sure how this is
> running, as from looking at the node-red website it seems it was
> something you'd have install on your system (they suggest a Pi).
> --
>
> Michael

The general flow of a skill is;

1. User issues a voice command to the skill on local echo
2. Echo send the request to the skill on Amazon servers
3. The skill is configured with an endpoint to which the user request is
direct
4. The endpoint code implements the skill logic and returns the output
to the skill on Amazon servers
5. Amazon returns the output to the local echo

For building the endpoint, users can use the Amazon Lambda service or
redirect to their own application server. The only pre-requsite in the
case of using your own server is that it have a valid, Amazon-recognised
SSL cert in place as all comms is over HTTPS.

In my case, I chose to use node-RED for my endpoint but I could just as
easily have used php, .net etc. So to answer your initial questions,
yes, it's a cloud service which is under my exclusive control.

The end-user does not need to have this logic installed on their local
systems or need to subscribe to the cleaned service. All they need is
the plug-in which matches their inbound IP and port with their user ID.
This is saved to a remote mySQL DB which lets the skill logic know where
to send commands when received from that user.

Not wishing to confuse matters, but for development purposes, I run
Node-Red on my local development server. Eventually, though, I'll likely
move this logic to something like an IBM Bluemix instance which supports
Node-Red (it's owned by IBM now).


I've had a look at the security issue and I'm fairly confident I can
build a http proxy into the LMS plugin. This will negate the requirement
for the user to expose their entire LMS to the internet. They will
simply open a port to the discrete plug-in and I can build
authentication code there to verify that requests are indeed coming from
the skill.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2016-11-15 23:29:18 UTC
Permalink
Great work meep! Kinda wish I'd come back to these forums earlier,
actually, as...

...separately, I've hacked together most of a(nother) Alexa ->
Squeezebox integration, more of a "PoC with encouraging results"
currently and not as advanced as this.

Interesting to see how different people have gone about it
(lordpengwin's on Github is another one, slightly closer to the way I've
done it). I've been concentrating on the networking / security / latency
side mostly.

For anyone who's interested, it's a fairly small Python-based skill,
single user-only (for now anyway), no LMS plugin, but uses the CLI. It
involves some port forwarding, and a local server of some sort (I use a
Synology, on which I also host LMS and the HA-Bridge, for what it's
worth), secured by TLS tunnelling with server / client cert, which was
not a huge amount of fun getting working I have to say.

However, it's a -lot- more secure than other ways that came to mind so
far. It remains compatible with the standard LMS username / password
login if you also want that (but maintaining data confidentiality /
integrity etc), though I've not bothered as it just increases
round-trips and I'm aiming to keep latency low for a better user
experience.

All feels quite Star Trek (in good way)....


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
sota
2016-11-17 12:51:34 UTC
Permalink
Meep, very impressive! Will it be possible to tell it what to play -
i.e. "Alexa, tell squeezeserver to play Abba"? Or is that even possible
with the Echo?
On a side note, I see from your web site that you are using the Cytech
Comfort alarm system, thanks for the link to the MQTT driver for it. I
had my system "professionally" installed when we were doing our house
extension, but the company walked away from the job after they realised
they had forgotten to run control cables to the keypad and the scene
control switches! So, unfortunately I am left with some very expensive
boxes on the wall - wife is not impressed!!


------------------------------------------------------------------------
sota's Profile: http://forums.slimdevices.com/member.php?userid=65703
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
HeadBanger
2016-11-17 13:49:01 UTC
Permalink
Wow! Exciting stuff meep.
I think I may ask for a Dot from Santa :)

HB



2 x Duet, 2 x Radio, Touch & Receiver with iPeng 9 served by Synology
1815+ and LMS 7.9 (Repack by pinkdot)
------------------------------------------------------------------------
HeadBanger's Profile: http://forums.slimdevices.com/member.php?userid=38024
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-17 16:32:24 UTC
Permalink
sota wrote:
> Meep, very impressive! Will it be possible to tell it what to play -
> i.e. "Alexa, tell squeezeserver to play Abba"? Or is that even possible
> with the Echo?!!

That's the idea. Though of course, with this skill, it will attempt to
play Abba on an actual Squeezebox (whichever one you have selected). To
get the Echo to actually play back the audio stream is a different
kettle of fish. This would require a skill that made the Echo emulate a
SB and allow you to control it from LMS like an actual squeezebox. That
will be my next project ;-)


sota wrote:
>
> On a side note, I see from your web site that you are using the Cytech
> Comfort alarm system, thanks for the link to the MQTT driver for it. I
> had my system "professionally" installed when we were doing our house
> extension, but the company walked away from the job after they realised
> they had forgotten to run control cables to the keypad and the scene
> control switches! So, unfortunately I am left with some very expensive
> boxes on the wall - wife is not impressed!!

UI didn't think anyone else in the world used Comfort. Mine is a version
1 and about 15 years old. That it's still going strong and can be
integrated into modern IoT based infrastructures is telling. Sounds like
a bit of a nightmare for you alright.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-17 23:06:57 UTC
Permalink
A quick update;

I've managed to get a basic proxy implementation built into my plugin.
This means that traffic from the skill will now come directly to the
plugin and can be assessed there to ensure its legitimate. From there,
commands care forwarded on to the LMS. This means that users won't need
to expose their LMS api to the big bad world.

Yay!

(please forgive typos in the screengrab - number 821 on today's to-do
list!

21519


+-------------------------------------------------------------------+
|Filename: Proxy.PNG |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=21519|
+-------------------------------------------------------------------+

------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
mherger
2016-11-18 04:40:53 UTC
Permalink
I'll definitely look into your code once available.

Just a little typo: "Aleza" in the second paragraph seems wrong.



Michael

http://www.herger.net/slim-plugins - MusicArtistInfo, MusicInfoSCR
------------------------------------------------------------------------
mherger's Profile: http://forums.slimdevices.com/member.php?userid=50
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
pippin
2016-11-18 13:00:18 UTC
Permalink
meep wrote:
> A quick update;
>
> I've managed to get a basic proxy implementation built into my plugin.
> This means that traffic from the skill will now come directly to the
> plugin and can be assessed there to ensure its legitimate. From there,
> commands are forwarded on to the LMS. This means that users won't need
> to expose their LMS api to the big bad world.
>
> Yay!
>
> (please forgive typos in the screengrab - number 821 on today's to-do
> list!)
>
> 21519

Is this proxy running in a separate process?
Apart from the obvious issue of someone fiddling with your players or
library I don't think a proxy in the same process would really add to
security.
You might also want to use a different port than 9000 because from the
incidents people reported of someone fiddling with their setup remotely
I got the impression somebody might do port scans on 9000



---
learn more about iPeng, the iPhone and iPad remote for the Squeezebox
and
Logitech UE Smart Radio as well as iPeng Party, the free Party-App,
at penguinlovesmusic.com
*New: iPeng 9, the Universal App for iPhone, iPad and Apple Watch*
------------------------------------------------------------------------
pippin's Profile: http://forums.slimdevices.com/member.php?userid=13777
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-18 13:56:22 UTC
Permalink
pippin wrote:
> Is this proxy running in a separate process?

The first iteration I built used proc::background to run the
http::daemon in a different process but I'm not sure now separate that
is in perl terms. I'm currently looking at bundling mojolicious to
implement a completely separate server process which would be
non-blocking.

pippin wrote:
> Apart from the obvious issue of someone fiddling with your players or
> library I don't think a proxy in the same process would really add to
> security.
The purpose of the proxy is to validate that inbound requests come from
the Alexa skill and that the userID supplied matches that stored in the
plug-in. Only traffic that meets these criteria will be passed along to
LMS.

pippin wrote:
> You might also want to use a different port than 9000 because from the
> incidents people reported of someone fiddling with their setup remotely
> I got the impression somebody might do port scans on 9000

The proxy runs on a user specified port (not 9000). Only this port needs
to be forwarded. 9000 does not need to be exposed to the internet. Right
now, the proxy passes validated commands to 127.0.0.1:9000 but it would
be trivial to permit users to specify the port here as well in local
plug-in preferences.


I will say, this i not my area so any and all guidance appreciated!


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
pippin
2016-11-18 14:04:59 UTC
Permalink
meep wrote:
>
> The purpose of the proxy is to validate that inbound requests come from
> the Alexa skill and that the userID supplied matches that stored in the
> plug-in. Only traffic that meets these criteria will be passed along to
> LMS.
>

I understand that and it helps to prevent easy fiddling with the server,
that's what I meant.
The real security risk of opening a port of course is a different one:
someone hacking LMS (or your proxy) to gain access to your computer.
Adding a proxy there reduces the risk of hacking LMS but does not reduce
the risk of hacking your proxy.

I personally would not guarantee for my software in this regard, it's
incredibly hard to write decently secure software, especially if there
are so many library dependencies as in a Perl environment (although Perl
being a common server language is at least under some scrutiny here) so
to rely on something more proven is probably a good idea.



---
learn more about iPeng, the iPhone and iPad remote for the Squeezebox
and
Logitech UE Smart Radio as well as iPeng Party, the free Party-App,
at penguinlovesmusic.com
*New: iPeng 9, the Universal App for iPhone, iPad and Apple Watch*
------------------------------------------------------------------------
pippin's Profile: http://forums.slimdevices.com/member.php?userid=13777
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-18 14:54:21 UTC
Permalink
pippin wrote:
> I understand that and it helps to prevent easy fiddling with the server,
> that's what I meant.
> The real security risk of opening a port of course is a different one:
> someone hacking LMS (or your proxy) to gain access to your computer.
> Adding a proxy there reduces the risk of hacking LMS but does not reduce
> the risk of hacking your proxy.
>
> I personally would not guarantee for my software in this regard, it's
> incredibly hard to write decently secure software, especially if there
> are so many library dependencies as in a Perl environment (although Perl
> being a common server language is at least under some scrutiny here) so
> to rely on something more proven is probably a good idea.

Understood.

I'll do what I can to implement options to protect users as much as
possible. However, at the end of the day, the user must make the
decision on whether or not to open their systems to potential intrusion
and if it's a concern, the option exists not to use the skill. It's not
critical to enjoying squeezeboxes after all!

I'm spending time on this to address the legitimate concern raised about
exposing LMS directly. I'm building in a proxy but the LMS plug-in by
it's very nature also permits users to specify their own proxy. If they
want to run something more robust on their network, this will work too.
So essentially users can configure the plug in to;

1. Provide direct access to their LMS (not recommended)
2. Use an inbuilt proxy to provide a certain level of security
3. Specify an independent proxy under their control
4. Not use the skill at all. (switch it off!)


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
pippin
2016-11-18 15:34:23 UTC
Permalink
Yea, I mean there's never something like perfect security.

Generally I think if you open a port it will be hard to protect the
system against a hacker directly attacking your system in all cases.
However, that's not the most common scenario (this is a high effort
activity, want to have some value behind it, your music library might
not always qualify for that and even a private home network rarely is).
The most common scenario is a script kiddie writing an automated port
scanner finding stuff they know they can easily break and do some stuff
with. I think for that case your proxy will probably eliminate 90% of
the risk, changing the port (maybe even randomly) to something other
than 9000 might give you another 90% down...



---
learn more about iPeng, the iPhone and iPad remote for the Squeezebox
and
Logitech UE Smart Radio as well as iPeng Party, the free Party-App,
at penguinlovesmusic.com
*New: iPeng 9, the Universal App for iPhone, iPad and Apple Watch*
------------------------------------------------------------------------
pippin's Profile: http://forums.slimdevices.com/member.php?userid=13777
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
snoopy86
2016-11-18 22:28:35 UTC
Permalink
Great work!! Cant wait to try this.


------------------------------------------------------------------------
snoopy86's Profile: http://forums.slimdevices.com/member.php?userid=64826
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2016-11-19 16:45:20 UTC
Permalink
snoopy86 wrote:
> Great work!! Cant wait to try this.
>
> As for security, we know what ip-s is amazon using and on router you can
> allow only this ip-s to connect to open port.

I'm pretty sure this isn't feasible: AIUI, Lambda doesn't make any
guarantees about where in the AWS estate it originates, and the overall
set of Amazon IP ranges is -very- big:
https://ip-ranges.amazonaws.com/ip-ranges.json . (That's assuming your
router allows arbitrary CIDR notation, too, which most don't I
believe).

Furthermore, hacks can definitely come from EC2 instances anyway, i.e.
-inside- Amazon's IP ranges.


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-19 22:30:15 UTC
Permalink
nickb wrote:
> I'm pretty sure this isn't feasible: AIUI, Lambda doesn't make any
> guarantees about where in the AWS estate it originates, and the overall
> set of Amazon IP ranges is -very- big:
> https://ip-ranges.amazonaws.com/ip-ranges.json . (That's assuming your
> router allows arbitrary CIDR notation, too, which most don't I
> believe).
>
> Furthermore, hacks can definitely come from EC2 instances anyway, i.e.
> -inside- Amazon's IP ranges.

The other point on this is that skills don't necessarily need to reside
inside Amazon at all. As long is it's on a validated HTTPS server, it
can be anywhere.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2016-11-19 17:40:46 UTC
Permalink
meep wrote:
>
> The purpose of the proxy is to validate that inbound requests come from
> the Alexa skill and that the userID supplied matches that stored in the
> plug-in. Only traffic that meets these criteria will be passed along to
> LMS.
>
>
> The proxy runs on a user specified port (not 9000). Only this port needs
> to be forwarded. 9000 does not need to be exposed to the internet. Right
> now, the proxy passes validated commands to 127.0.0.1:9000 but it would
> be trivial to permit users to specify the port here as well in local
> plug-in preferences.
>
> I will say, this i not my area so any and all guidance appreciated!

Hi meep - if it helps, I think some kind of proxy is probably the right
way to go here, but I find it useful to set out what concerns you are
addressing when you add features for security to a system e.g. data
confidentiality / integrity / sender authentication etc. Anyway, whilst
I'm not an InfoSec expert, I did note some points / questions:


- Not wanting to expose the LMS JSONRPC protocol to the web: proxying
-is- exposing this, of course, but sounds like you're adding some
command validation. Is this better than LMS's though e.g. is this to
protect against lower-level payload attacks / buffer overflows etc
that they don't? On the application level, perhaps you're whitelisting
only safer commands (thus disabling deletion of playlists, rebuilding
library, powering down the server, DoSing by expensive searches etc)?
That'd be a very good idea actually ('least privilege'
(https://en.wikipedia.org/wiki/Principle_of_least_privilege), etc) and
shouldn't be too hard.
- You also have a level of auth by requiring a (quasi-)secret (the
-userID-), that's good. Hopefully this ID is long and very sparse
(consider, say, random UUIDs), as a smallish integer (e.g. database
primary key) will be exposed to brute-forcing ('enumeration attacks'
(https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002))).
Is there any way for users to change this ID if it gets compromised?
- How do you check the connection is coming from the Skill, not
somewhere else? Some kind of pre-shared secret? (so won't this be
visible in the [plain-text] source code)? Or are you using
certificates?
- Does the proxy rate-limit connections in any way, or ban people
trying (and failing) too many times? These kinds of things are usually
critical to stop brute-force attacks.
- Is this communication encrypted? Otherwise, everything's just as
exposed as login forms over HTTP, etc (eavesdropping on local wireless
/ proxies / server logs etc)


Sorry if that comes across negative / antagonistic, not meant to be.
Security is really hard; hopefully there's some good food for thought /
discussion.


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-19 22:54:30 UTC
Permalink
nickb wrote:
> Hi meep - if it helps, I think some kind of proxy is probably the right
> way to go here, but I find it useful to set out what concerns you are
> addressing when you add features for security to a system e.g. data
> confidentiality / integrity / sender authentication etc. Anyway, whilst
> I'm not an InfoSec expert, I did note some points / questions:
>
> > > >
- Not wanting to expose the LMS JSONRPC protocol to the web:
> proxying -is- exposing this, of course, but sounds like you're
> adding some command validation. Is this better than LMS's though
> e.g. is this to protect against lower-level payload attacks / buffer
> overflows etc that they don't? On the application level, perhaps
> you're whitelisting only safer commands (thus disabling deletion of
> playlists, rebuilding library, powering down the server, DoSing by
> expensive searches etc)? That'd be a very good idea actually ('least
> privilege'
> (https://en.wikipedia.org/wiki/Principle_of_least_privilege), etc)
> and shouldn't be too hard.
- You also have a level of auth by requiring a (quasi-)secret (the
> -userID-), that's good. Hopefully this ID is long and very sparse
> (consider, say, random UUIDs), as a smallish integer (e.g. database
> primary key) will be exposed to brute-forcing ('enumeration attacks'
> (https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002))).
> Is there any way for users to change this ID if it gets compromised?
>
- How do you check the connection is coming from the Skill, not
> somewhere else? Some kind of pre-shared secret? (so won't this be
> visible in the [plain-text] source code)? Or are you using
> certificates?
- Does the proxy rate-limit connections in any way, or ban people
> trying (and failing) too many times? These kinds of things are
> usually critical to stop brute-force attacks.
- Is this communication encrypted? Otherwise, everything's just as
> exposed as login forms over HTTP, etc (eavesdropping on local
> wireless / proxies / server logs etc)
> > >
>
> Sorry if that comes across negative / antagonistic, not meant to be.
> Security is really hard; hopefully there's some good food for thought
> / discussion.

No way is that negative. It's super helpful.

I'm even further from experienced with security and, as noted earlier,
I'm aiming for a flexible and fairly secure system but I'm really
enjoying this project as it's a great learning experience for me. I
hadn't written a line of perl before 2 weeks ago and now I'm building
proxy servers.

Though I am finding it a bit frustrating. The version of perl in LMS is
fairly old and doesn't seem to support forks or threads. Also, each
proxy option I try seems to have some drawback or other. For example, I
cannot get the inbuilt http::daemon to respond to POST requests. It's
happy with GET but sent it a POST, it just ignores. I looked at
Mojolicious which is nice as it's completely stand-alone but it also has
a bug that's preventing it working properly. This part is taking a while
and preventing progress on the main skill logic , but it's important to
get right so worthwhile.

I'll have a go at your individual points;

nickb wrote:
>
> Not wanting to expose the LMS JSONRPC protocol to the web: proxying
> -is- exposing this, of course, but sounds like you're adding some
> command validation. Is this better than LMS's though e.g. is this to
> protect against lower-level payload attacks / buffer overflows etc that
> they don't? On the application level, perhaps you're whitelisting only
> safer commands (thus disabling deletion of playlists, rebuilding
> library, powering down the server, DoSing by expensive searches etc)?
> That'd be a very good idea actually ('least privilege'
> (https://en.wikipedia.org/wiki/Principle_of_least_privilege), etc) and
> shouldn't be too hard..

The proxy will only be aware of and process a limited subset of LMS
commands. The basic player selection play/pause, volume, playlist
selection and, possibly, synching. As such, no fundamental library
management functionality will be exposed. Your note has made me think a
little further about how I structure this application, however.

My original plan was to implement all the logic in the cloud-based
skill. Therefore, the skill would send fully-formed LMS JSONRPC commands
to the proxy which would pass them along to the LMS and return the
response to the skill. However, I'm now thinking about maybe passing
simple requests from the skill and having the plug-in manage all the LMS
requests. The benefit of this is increased distribution of logic
processing as well as eliminating exposing the JSON on skill<->plugin
traffic. The down side, of course, is that I'd need to be careful not to
tie the skill logic to the proxy and isolate it into the plug-in. The
other downside is that I'm far more comfortable working in the Node-RED
platform I've selected for skill development than I am in perl.



nickb wrote:
>
> You also have a level of auth by requiring a (quasi-)secret (the
> -userID-), that's good. Hopefully this ID is long and very sparse
> (consider, say, random UUIDs), as a smallish integer (e.g. database
> primary key) will be exposed to brute-forcing ('enumeration attacks'
> (https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002))).
> Is there any way for users to change this ID if it gets compromised? .

The userID for the skill is generated by amazon and is unique to the
user for that skill. (if the user uses a different skill, a different
UID will be generated). However, as far as I know, it's not possible to
change the UID in case of compromise short of establishing a separate
Amazon account. The ID is a very long string.


nickb wrote:
>
> How do you check the connection is coming from the Skill, not
> somewhere else? Some kind of pre-shared secret? (so won't this be
> visible in the [plain-text] source code)? Or are you using
> certificates?.

No certificates envisaged bit that's not to say no. I plan to use code
obfuscation here but am aware this may not be sufficient. I need to
think about this one a little more.


nickb wrote:
>
> Does the proxy rate-limit connections in any way, or ban people
> trying (and failing) too many times? These kinds of things are usually
> critical to stop brute-force attacks. .

This is all possible and fairly easily done.

nickb wrote:
>
> Is this communication encrypted? Otherwise, everything's just as
> exposed as login forms over HTTP, etc (eavesdropping on local wireless /
> proxies / server logs etc).

As of now, no. Working on getting the best proxy solution implemented.
But encryption of traffic would of course be an excellent idea,



What I'd like to do is get a basic proxy implementation up and running,
then focus on the skill enhancement so I can get something into the wild
for people to play with. Then, I can come back on focus on enhanced
security such as encryption, certs etc.

Thanks again for the really useful pointers.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2016-11-21 20:12:55 UTC
Permalink
meep wrote:
>
>
> What I'd like to do is get a basic proxy implementation up and running,
> then focus on the skill enhancement so I can get something into the wild
> for people to play with. Then, I can come back on focus on enhanced
> security such as encryption, certs etc.
>
> Thanks again for the really useful pointers.

Great, glad it was useful. I know next to no Perl but am happy in more
general terms if that's useful; meanwhile I'll probably finish off my
take on this whole thing (which I've realised whilst good in its own way
probably too complex to be useful for most people as it stands) and move
on. Might open-source it too, not sure.


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-23 19:45:11 UTC
Permalink
My Dot finally arrived today - after 3.5 weeks in the post!

Quite impressed

Looking forward to the LMS 'skill' !!!!!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-24 11:21:07 UTC
Permalink
castalla wrote:
> My Dot finally arrived today - after 3.5 weeks in the post!
>
> Quite impressed
>
> Looking forward to the LMS 'skill' !!!!!

That was quite a delay!

Have you asked her to rap yet?

I'm currently knee-deep in getting some semblance of security set up
with the proxy server. Once I've got that done, I'll be going back to
expanding the actual skill functionality. It will be several weeks at
least before I have anything further ready for people to have a look at.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-24 12:17:49 UTC
Permalink
meep wrote:
> That was quite a delay!
>
> Have you asked her to rap yet?
>
> I'm currently knee-deep in getting some semblance of security set up
> with the proxy server. Once I've got that done, I'll be going back to
> expanding the actual skill functionality. It will be several weeks at
> least before I have anything further ready for people to have a look at.

No worries!

Good luck!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
trouty00
2016-11-25 10:14:15 UTC
Permalink
I'll be watching this one with interest, I thought I would have to make
the leap to Sonos to get this integration but seems like you are making
some good progress. I'm currently using vera and habridge to provide
very basic control but meant creating lots of "scenes" for each task
which is very time consuming and not an ideal approach.

Would love to be part of the testing program.
Stu



'Custom Squeezebox Touch Wall Mount's Available'
(http://forums.slimdevices.com/showthread.php?95114-Squeezebox-Touch-Wall-Mount-project-and-possibly-for-sale)
------------------------------------------------------------------------
trouty00's Profile: http://forums.slimdevices.com/member.php?userid=30875
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-25 14:45:49 UTC
Permalink
Hi Stu

If you want to set up a free Amazon developer account and send me a PM
with your email address, I will invite you when I'm at the next stage
and ready for people to start breaking it!


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
pfd
2016-11-29 22:44:15 UTC
Permalink
I have a dot arriving tomorrow. I am very interested in playing with
this plugin. Its got to be the best use of the Echo for those of us
still firmly in the SB community.


------------------------------------------------------------------------
pfd's Profile: http://forums.slimdevices.com/member.php?userid=5259
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-30 12:06:22 UTC
Permalink
Hopefully we can beat Sonus to be the first true music player Alexa
skill. The Sonus one is not due until early 2017.

This will be a huge step in keeping the LMS family at the cutting edge
of technology - no pressure then meep!


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-30 12:21:39 UTC
Permalink
Heuer wrote:
> Hopefully we can beat Sonus to be the first true music player Alexa
> skill. The Sonus one is not due until early 2017.
>
> This will be a huge step in keeping the LMS family at the cutting edge
> of technology - no pressure then meep!

Well, second in fact. House Band skill (US only) works with JRiver
media server.

Kudos to meep for his valiant effort!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-30 14:32:21 UTC
Permalink
Just don't ask for Google home as well ;-)


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
fphredd
2016-11-30 15:11:25 UTC
Permalink
meep wrote:
> Just don't ask for Google home as well ;-)

Darn!...Read my mind... :)


------------------------------------------------------------------------
fphredd's Profile: http://forums.slimdevices.com/member.php?userid=33133
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-30 15:12:39 UTC
Permalink
meep wrote:
> Just don't ask for Google home as well ;-)

Don't look at me!

Using the echo can get a little tedious unless it recognises truncated
requests, eg. Echo - play BBC Radio 4 on Tunein

versus

Echo - play radio 4

Are you planning to have SB players callable by name? eg. Lounch Touch,
Kitchen Radio. What about non-English, eg. Wohnzimmer Radio, etc.



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-30 15:31:39 UTC
Permalink
castalla wrote:
> Don't look at me!
>
> Using the echo can get a little tedious unless it recognises truncated
> requests, eg. Echo - play BBC Radio 4 on Tunein
>
> versus
>
> Echo - play radio 4
>
> Are you planning to have SB players callable by name? eg. Lounch Touch,
> Kitchen Radio. What about non-English, eg. Wohnzimmer Radio, etc.

So the basic implementation I currently have works with squeezebox names
and does a pretty good job in finding them using fuzzy search on input
name against listed names. I'm not sure how it will work with
non-English names - we can have a look at that when we get to testing.

As a fall-back, the skill will also enumerate all the found devices so
it's possible to say 'play squeezebox one'. Also, once a particular
device is selected, all subsequent commands will be carried out on that
device so it does not need to be named each time.

Regarding something like

'Echo - play radio 4'

The way skills work, it's necessary to somehow initialise the skill and
that requires naming it. At least the first time in a session.

I'm looking at ways to mitigate this by leveraging the streaming media
ASK command set though this still needs to be tested.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
castalla
2016-11-30 15:46:05 UTC
Permalink
meep wrote:
> So the basic implementation I currently have works with squeezebox names
> and does a pretty good job in finding them using fuzzy search on input
> name against listed names. I'm not sure how it will work with
> non-English names - we can have a look at that when we get to testing.
>
> As a fall-back, the skill will also enumerate all the found devices so
> it's possible to say 'play squeezebox one'. Also, once a particular
> device is selected, all subsequent commands will be carried out on that
> device so it does not need to be named each time.
>
> Regarding something like
>
> 'Echo - play radio 4'
>
> The way skills work, it's necessary to somehow initialise the skill and
> that requires naming it. At least the first time in a session.
>
> I'm looking at ways to mitigate this by leveraging the streaming media
> ASK command set though this still needs to be tested.

It sounds amazing!



Touch, Logitech Radio, Logitech UE Radio, O2 Joggler + SqpOS
UPnPBridge - 2 paired Sonos Play1 speakers; Rocki - Sony SRS-BTM8
speaker; Pioneer WX-SMA1 speaker; - PURE One Flow internet radio: PURE
Jongo S3x ; Jongo T2; Libratone Zipp
Castbridge - Chromecast 1 + Chromecast Audio
AirplayBridge - Loewe Airspeaker
SB Player - Fire TV
------------------------------------------------------------------------------------
------------------------------------------------------------------------
castalla's Profile: http://forums.slimdevices.com/member.php?userid=15624
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2016-12-04 15:22:38 UTC
Permalink
meep wrote:
>
>
> The way skills work, it's necessary to somehow initialise the skill and
> that requires naming it. At least the first time in a session.
>
> I'm looking at ways to mitigate this by leveraging the streaming media
> ASK command set though this still needs to be tested.

FYI I have this (or something similar perhaps) working on my SB skill
currently, it's quite cool.


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
anjenaire
2017-01-03 22:16:01 UTC
Permalink
Stumbled across this thread today. I am encouraged by this effort and
would volunteer to do testing.

I would also like to suggest the name by "Squeezer"


------------------------------------------------------------------------
anjenaire's Profile: http://forums.slimdevices.com/member.php?userid=46443
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
nickb
2017-01-04 09:26:12 UTC
Permalink
Finally got round to blogging about my DIY take on the Alexa <->
Squeezebox integration, with a few (very amateur) demo videos:

'squeeze-alexa demos'
(http://declension.net/posts/2017-01-03-squeeze-alexa-demos/)

Hopefully will find some time to make it useful to others.


------------------------------------------------------------------------
nickb's Profile: http://forums.slimdevices.com/member.php?userid=66261
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
jollybully
2016-12-01 11:26:33 UTC
Permalink
Sounds great! Are there plans to support searching and playback of
content from within plugins, iPlayer and Google Music for instance?

Sent from my Nexus 6 using Tapatalk




------------------------------------------------------------------------
jollybully's Profile: http://forums.slimdevices.com/member.php?userid=64450
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-12-02 15:32:37 UTC
Permalink
So now it's real....

http://forums.slimdevices.com/showthread.php?106569-ANNOUNCE-Alexa-voice-control-(development-thread)&p=869217#post869217

I'll likely tune out of this thread and focus on the development thread.
Thanks for all the comments, insights, encouragement and offers of help
so far!



Squeezebox | Squeezebox Radio x 2 | Squeezebox Touch | Squeezebox
Controller/Receiver

BLOG: http://mediaserver8.blogspot.com
ALEXA LMS SKILL: http://www.hab-tunes.com
------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-14 14:32:09 UTC
Permalink
Heuer wrote:
> They allow 'Hive', 'Nest' and 'Tunein' so it seems odd they won't allow
> 'Squeeze'. How about 'My Squeeze'?

You can get a one word invocation name if you own the brand. From the
below, 'My Squeeze' could work, but might be questionable on the grounds
of trademark infringement.

I was thinking of moving away from 'squeeze' altogether and making it
something like 'Alexa, ask home audio to play Adele on Squeezebox
Touch'




The relevant rules are here;

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-policy-testing

Your skill will be rejected if it:

a. Implies sponsorship or endorsement by Amazon or otherwise
mischaracterizes the relationship with Amazon.
b. Infringes the intellectual property rights (including copyright,
trademark and publicity rights) of a third party.
c. Purports to be affiliated with a company or brand but is not the
official skill of that company or brand.


and here;

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/choosing-the-invocation-name-for-an-alexa-skill


An invocation name must meet the following requirements:

The skill invocation name must not infringe upon the intellectual
property rights of an entity or person.

One-word invocation names are not allowed, unless the invocation name is
unique to your brand/intellectual property.

Invocation names which are names of people or places (for example,
“molly”, “seattle”) are not allowed, unless they contain other words in
addition to the name (for example, “molly’s horoscope”).

Two-word invocation names are not allowed if one of the words is a
definite article (“the”), indefinite article (“a”, “an”) or preposition
(“for”, “to”, “of”). For example, “a bicycle”, “an espresso”, “to
amuse”, “for fun”.

The invocation name must not contain any of the Alexa skill launch
phrases and connecting words. Launch phrase examples include “launch”,
“ask”, “tell”, “load”, and “begin”. Connecting word examples include
“to”, “from”, “by”, “if”, “and”, “whether”. See Understanding How Users
Invoke Custom Skills for a complete list of skill launch phrases and
connecting words.

The invocation name must not contain the wake words “Alexa”, “Amazon”,
“Echo”, or the words “skill” or “app”.

The invocation name must contain only lower-case alphabetic characters,
spaces between words, possessive apostrophes (for example, “sam’s
science trivia”), or periods used in abbreviations (for example, “a. b.
c.”). Other characters like numbers must be spelled out. For example,
“twenty one”. The name must be easy to pronounce correctly and be
phonetically distinct to avoid being misinterpreted as other similar
sounding words.*
Note: For acronyms, the invocation name must contain single letters,
each followed by a period and a space. The invocation name cannot spell
out phonemes. For example, a skill titled “USC Trivia” would need “USC”
represented as “u. s. c. “ and NOT “you ess see”.

The invocation name must not create confusion with existing Alexa
features. If your skill invocations overlap with common Alexa commands,
users may get confused by Alexa’s response and not enable your skill.
For example, if your invocation name is too similar to the built-in
“weather” command, Alexa may sometimes respond with your skill and
sometimes respond with the built-in weather feature, providing an
inconsistent user experience.

The invocation name must be written in each language you choose to
support. For example, the German version of your skill must have an
invocation name written in German, while the English (US) version must
have an invocation name written in English. Note that this requirement
does not apply to proper nouns like names and places in other languages.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-14 14:48:20 UTC
Permalink
meep wrote:
> You can get a one word invocation name if you own the brand. From the
> below, 'My Squeeze' could work, but might be questionable on the grounds
> of trademark infringement.
>
> I was thinking of moving away from 'squeeze' altogether and making it
> something like 'Alexa, ask home audio to play Adele on Squeezebox
> Touch'
>
> .

And this would allow me expand the skill in the future to maybe allow
unified control of squeezeboxes, Sonos and other devices / software
through a single skill. That would be neat.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Heuer
2016-11-14 14:50:28 UTC
Permalink
Logitech have registered 'Squeezebox' as a trade mark however 'Squeeze'
is not registered so 'My Squeeze' would be acceptable. Actually the
trade name 'Squeeze Box' is not registered. What about 'Juke Box'?


------------------------------------------------------------------------
Heuer's Profile: http://forums.slimdevices.com/member.php?userid=2543
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
meep
2016-11-14 15:18:02 UTC
Permalink
Heuer wrote:
> Logitech have registered 'Squeezebox' as a trade mark however 'Squeeze'
> is not registered so 'My Squeeze' would be acceptable. Actually the
> trade name 'Squeeze Box' is not registered. What about 'Juke Box'?

Great to know. Thanks for the heads up. might go with 'My Squeeze' for
initial testing and take it from there. I also thought about 'Hab Tunes'
as a generic alternative.


------------------------------------------------------------------------
meep's Profile: http://forums.slimdevices.com/member.php?userid=12744
View this thread: http://forums.slimdevices.com/showthread.php?t=106149
Loading...