Release Candidate and Support: Amazon Echo Control Binding

No, the beta is not included in the snapshot-build.

Did you mean the TTS channel? What text have you provided? Can you test the ā€œstartCommandā€ channel with the String ā€œWeatherā€, because this use the same technical base.

The ā€œstartCommandā€ channel only supports the listed commands in the documentation (e.g. ā€œWheaterā€). No free text can be provided.
The only way to switch smarthome devices is using Alexa routines. These can be called from the binding with the ā€œstartRoutineā€.

Your monitoring script has been working great but after updating the binding to 2.4 Beta 1; Iā€™m getting this error now for the script. The script still works thoughā€¦ Any updates to this script to handle this exception? {snip}

@jwiseman,

Iā€™m not using the latest echo control binding so I havenā€™t encountered that problem with the Amazon Online Status email rule. So for now I donā€™t have a revised rule to resolve the new issue. Perhaps you or another user can debug the rule and post a fix.

  • Thomas

Yes, the TTS is what I use . . . hereā€™s example of one of my scripts. Still works . . .

rule ā€œJays Homeā€
when
Item JsAndriodUnifi changed from OFF to ON
then
var Number hour = now.getHourOfDay
if (hour >= 8 && hour <= 21 && Home_Away.state == ON && InternetConnection.state == ON) {

		// Echo talks

		if (Echo_Basement_Volume.state!=UNDEF && Echo_Basement_Volume.state!=NULL) {
    		Echo_Basement_Volume.sendCommand('70')
			Thread::sleep(2000)  // 2 second wait
    		Echo_Basement_TTS.sendCommand("  Excuse me folks, I detect Jay's phone, so he must be home now.")
			Thread::sleep(2000)  // 2 second wait
		}
		if (Echo_Loft_Volume.state!=UNDEF && Echo_Loft_Volume.state!=NULL) {
    		Echo_Loft_Volume.sendCommand('70')
			Thread::sleep(2000)  // 2 second wait
    		Echo_Loft_TTS.sendCommand("  Excuse me folks, I detect Jay's phone, so he must be home now.")
			Thread::sleep(2000)  // 2 second wait
		}
		if (Echo_Living_Room_Volume.state!=UNDEF && Echo_Living_Room_Volume.state!=NULL) {
    		Echo_Living_Room_Volume.sendCommand('50')
			Thread::sleep(2000)  // 2 second wait
    		Echo_Living_Room_TTS.sendCommand("  Excuse me folks, I detect Jay's phone, so he must be home now.")
			Thread::sleep(2000)  // 2 second wait
		}
		if (Echo_Garage_Volume.state!=UNDEF && Echo_Garage_Volume.state!=NULL) {
    		Echo_Garage_Volume.sendCommand('70')
			Thread::sleep(2000)  // 2 second wait
			Echo_Garage_TTS.sendCommand("  Welcome Home Jay, we've missed you.")
			Thread::sleep(2000)  // 2 second wait
		}
	hour = null
	}

end

Best, Jay

1 Like

Ok thank you. I was able to get it to work using routines as you suggested. Thanks

Hi Mr. Wiseman,
I donā€™t have an idea for this problem. But maybe you will test my new beta version.
Regards,
Michael

Hi Michael,

Running your latest beta 2 on OH2.3 Synology; Iā€™m getting this error with a clean reboot (clean cache and tmp directories). I did it twice just in case it was a one off . . .

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [9:org.apache.felix.fileinstall:3.6.4]

2018-08-25 17:32:14.931 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/volume1/homes/openhab/addons/org.openhab.binding.amazonechocontrol_2.4.0.201808260018.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.amazonechocontrol [193]
Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:=ā€œoptionalā€
Unresolved requirement: Import-Package: org.eclipse.jetty.websocket.api.annotations; version=ā€œ9.3.22ā€

Best, Jay

New Beta Version 2.4. (2)

I have created a new beta version with new features.

There is now a Web-Socket connection to the amazon server, so there is no polling anymore (The option for the polling interval is not yet removed, but the setting is ignored).
Please test if the channels are updated anyway correctly.

The second new feature is the new channel ā€œlastVoiceCommandā€. This can be used to write your own handle for a voice command. Just create an Alexa routine with do nothing for the command. Then create a rule triggered by the lastVoiceCommand channel and to your own handling.

You can download the new binding from the top most posting

There is currently no better solution for the login problems which have some users. I hope I can provide a better way in any of the future version.

Regards,
Michael

2 Likes

Please download it again, maybe I found the problem. I have changed the link.

Hi.
Has someone found a solution to check how long the TTS command will be played.
If i start a second one behind, i have to use timer. But this is no nice solution.
Greetings,
Markus

lastVoiceCommand
ā€¦

lastVoiceCommand
ā€¦

This is going to take this whole Alexa interaction thing on a whole new level, iā€™m on it! :star_struck:

Iā€™m not sure I understand the benefits of this over simply triggering an openHAB action after a Routine voice command.
Could someone give an example of a scenario where this could be used?

*any voice command

E.g. you can switch different items with the same voice command depending of the room (echo device)

2 Likes

wow this sounds greatā€¦ going to play with this a bitā€¦ thanks for this featureā€¦

and i want to ask if another thing is possible to implementā€¦
on the echo devices we have the hardware button for mute the echo (red led ring is active)
Is there any way to active this over the binding?

My activation word is ā€œComputerā€ and if I watch some movies, docus ā€¦ it often happens that Alexa is anoying meā€¦ so for maximum lazinessā€¦ i dont want to leave the couch to mute the deviceā€¦

@michi do you think this is possible? Dont know if amazon is allowing the use of this button on software sideā€¦

iā€™m not sure yet if i seriously want to go that way, see voicecommands.js :laughing:

it just sucks that alexa is always responding with ā€œcanā€™t do this, canā€™t do thatā€ even though my openhab script successfully parsed the command. Maybe iā€™ll just mute Alexa for everything but TTS, because honestly, all the built in features are kind of lame anyways. Maybe i can cover most of it with a routine, or iā€™ll add a voice command to turn on/off ā€œTTS Onlyā€ :wink:

@kugelsicha
muting wonā€™t work until Amazon decides to add that feature to the website/app

okayā€¦ thanksā€¦

so i will try a solution with adding Alexa to a (zwave) wallplugā€¦ to shut her downā€¦ :slight_smile: maybe with a rule with timer in it to bring her up after a couple of minutesā€¦

Hi Michael,

Same thing . . . Hereā€™s the file I used for the 2nd download this morning --> org.openhab.binding.amazonechocontrol_2.4.0.201808260052.jar

2018-08-26 08:31:15.139 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/volume1/homes/openhab/addons/org.openhab.binding.amazonechocontrol_2.4.0.201808260052.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.amazonechocontrol [187]
Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:=ā€œoptionalā€
Unresolved requirement: Import-Package: org.eclipse.jetty.websocket.client

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [9:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [9:org.apache.felix.fileinstall:3.6.4]

2018-08-26 08:31:15.188 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/volume1/homes/openhab/addons/org.openhab.binding.amazonechocontrol_2.4.0.201808260052.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.amazonechocontrol [187]
Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:=ā€œoptionalā€
Unresolved requirement: Import-Package: org.eclipse.jetty.websocket.client

Best, Jay