Release Candidate and Support: Amazon Echo Control Binding

Ladies and Gentlemen

Please welcome @Lukask within our community!

Lukas and I worked together to implement the controlling of smart home devices in the alexaechocontrol binding. This means you can control lights, plugs and other devices which are connected directly to the echo device or over a Alexa Skill. Also the Alexa Guard state in US should work, but is not yet tested because of lake of this feature in Europe.

But this features are very new with a lot of new code and so I do not want to have it in the Release Candidate version which should be as stable as possible.

So today we present 2 different versions of the binding. One nearly stable Release Candidate version with the latest bugfixes and a development version with all the cool new features and of course all changes of the latest release candidate version.

New Preview and Beta test thread

To make it easy for you, there are now 2 threads in this community. This one’s supporting the stable version. The other one is a new "Preview and Beta: Amazon Echo Control ".

If you want test our latest feature take a look on the new thread.

New Release Candidate RC3

The RC3 release candidate changed the behavior of the announcement channel a bit. It can now also be used by echo devices. But this causes a breaking change:

If you want to use the channel for Echo Show and Echo Spot devices without a spoken message, please use the JSON syntax format explained in the Tuturial section under Show an announcement on the echo show or echo spot.

The Version can be downloaded from the top most posting of this thread

6 Likes

Hello @michi,
in the announcements, the body-text will not dispayed at this time.
I use an echo spot with your RC3 and the following JSON-String:

{ “sound”: true, “title”: “SmartHome”, “body”: “Dies ist ein Test”}

the Sound is played and the titlie is visible.
what can i do?

Thanks for help
Ralph

My routine on the Echo will not start.
What could be the problem?
I tried: RC1, RC3, new link to Amazon account, created different routines

String Echo_Wohnzimmer_StartRoutine          "Start Routine"                         (gAlexa_Wohnzimmer) {channel="amazonechocontrol:echo:account1:echo1:startRoutine"}

In the rule:

Echo_Wohnzimmer_startRoutine.sendCommand("Daniel ist da")

routines name is “Daniel ist da”
Commands are working fine.

Thanks.

Hi all,
is it possible to let an echo play a short confirmation sound?
Like when locking your car and the alarm systems makes an short beep to tell you it´s locked.

Any ideas how to achieve this?

kind regards
Michael

Hi, I play a short attention tone before every TTS message. That helps a lot in hearing the upcoming message. Its just a command to play a short burst of one the alarm tones before the TTS. I can post the code later, but maybe its already in this thread somewhere.

edit …I found this in this thread from me… LOL.

Echo_AlarmSound.sendCommand('ECHO:system_alerts_melodic_07')
    Thread::sleep(9000)
    Echo_AlarmSound.sendCommand('')
    Echo_Volume.sendCommand(35)
    Thread::sleep(2000)
    Echo_Speak.sendCommand('Snow mode is set')

I will check my current code in case I have improved it since :slight_smile:

List of alarm sounds

1 Like

The post I made about making a schematic to illustrate the relationships between Echo Control, Alexa skill and device bindings was moved the post to here:

The easiest way would be the announcement channel. It plays a shot beep before the text sent to the channel is spoken

I have been inactive on here for the last 6 month. Is there a changelog of new features somewhere, which I can check to get up to date ?

For example is it possible to set timers via this binding ?

I would like to automatically create a timer for my livingroom echo if someone sets a timer on my kitchen echo dot.

Hello @michi

with the latest beta Version (2019-09-12) the error is still there…

some ideas?
ralph

New Announcement channel works great. Is there also a volume channel for announcements?
thx!

It´s not working :frowning:

I added the channel to my .items file like this

String echoArbeit_Announcement "Ankündigung" (Alexa_Arbeit, EchoCommands, Arbeit) {channel="amazonechocontrol:echo:Michael:echoArbeit:announcement"}

And tried to send an announcement like this

echoArbeit_Announcement.sendCommand('{"sound":true, "title":"Test", "body":"Test"}')

But the Echo Dot doesn´t do anything.

The log says

2019-09-12 21:44:15.215 [ome.event.ItemCommandEvent] - Item 'echoArbeit_Announcement' received command {"sound":true, "title":"Test", "body":"Test"}
2019-09-12 21:44:15.218 [nt.ItemStatePredictedEvent] - echoArbeit_Announcement predicted to become NULL

I mad another test in the Alexa app and the announcement works and is played on all Echos.

kind regards
Michael

Sorry, no, I have deleted this just before I did the new clean up of the thread. Maybe it was not my best idea…

No

This will be difficult to do with channels. But with REST calls through the binding proxy it should be possible already. But this would be only for users with advanced experience.

Are you using the version from this thread? Because it is tested already from other users and should work

It looks correct to me. I will check this, but I have no such a device to verify if it works, I can only check the JSON which is sent to the amazon server. Maybe the echo spot does not support the body?

I still had the Beta 8 :rofl:
Updated to RC3 and it works fine now!
Thanks

Wait… Does that mean… You now can control every only Alexa device? Which would mean you can control and integrate eg. a Sonoff device or cheap power plug without flashing it first?
This is what I intentional wanted to with this binding back in Dec 2017! :smiley:
If so, this would be insanely huge! Like Christmas and Easter combined huge.

1 Like

Yes the Spot supports this. Until last week everything was correct…

Hi, I checked this now but I did not found any issue. The binding creates the correct json:

{  
   "behaviorId":"PREVIEW",
   "sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"AlexaAnnouncement\",\"operationPayload\":{\"deviceType\":\"A3S5BH2HU6VAYF\",\"deviceSerialNumber\":\"G090L91174230075\",\"locale\":\"\",\"customerId\":\"A1DGS1OFUH1JNT\",\"expireAfter\":\"PT5S\",\"content\":[{\"locale\":\"\",\"display\":{\"title\":\"SmartHome\",\"body\":\"Dies ist ein Test\"},\"speak\":{\"type\":\"text\",\"value\":\" \"}}],\"target\":{\"customerId\":\"A1DGS1OFUH1JNT\",\"devices\":[{\"deviceSerialNumber\":\"G090L91174230075\",\"deviceTypeId\":\"A3S5BH2HU6VAYF\"}]}}}}",
   "status":"ENABLED"
}

But of course I can not verify what happens then because I only have echo dots.
But your posted request have some wrong double quotes. It should be:

{ "sound": true, "title": "SmartHome", "body": "Dies ist ein Test"}

But this seems to be not your issues, because you request will fail completely.

Could you test if the announcement works correct if you create an alexa routine for it? I know there is not split in title and body, but make a try.

And you wrote, that it has worked with an older version of the binding. Could you retest this? It would not be the fist time, the the problem is on the amazon site…

Best,
Michael

Not yet every, but a lot of them depending on the capabilities :sunglasses:

No, not at the moment. I’am not sure if I should create a own channel for this. So I see 3 possibilities:

  1. Using the volume channel from TTS
  2. Adding a volume property to the JSON format syntax of the channel
  3. Own volume channel

You and all other users are welcome to discuss this!