Yes i see the trigger and made a typo…
The rules have to look for lowercase and i typed one uppercase letter into the lookup
Do you know where to contact Amazon about new features?
As i get a lot of errors in the openhab.log i think there´s atleast a feedback from the Amazon servers to the binding.
I´m going to do some tests and post the logs here.
Sorry that I missed to get some clarification earlier.
I’m using 2 Sonos One, with one Sonos Beam and an Amazon dot in 3 different rooms.
In the meantime I can play notifications on all of this devices without any problem. I’m doing this by sending the voice Command to a group of speakers. This group contains all my Amazon and Sonos devices.
So the solution to play a notification on several devices at the same time by grouping them is working fine here.
rule "Test"
when
Item itmTestSwitch changed
then
echoKueche_TTS.sendCommand('Test Küche')
echoWohnen_TTS.sendCommand('Test Wohnzimmer')
echoFlur_TTS.sendCommand('Test Flur')
echoArbeit_TTS.sendCommand('Test Arbeitszimmer')
end
logfile:
2019-01-02 17:15:37.094 [vent.ItemStateChangedEvent] - itmTestSwitch changed from OFF to ON
2019-01-02 17:15:37.105 [ome.event.ItemCommandEvent] - Item 'echoKueche_TTS' received command Test Küche
2019-01-02 17:15:37.134 [ome.event.ItemCommandEvent] - Item 'echoWohnen_TTS' received command Test Wohnzimmer
2019-01-02 17:15:37.142 [ome.event.ItemCommandEvent] - Item 'echoFlur_TTS' received command Test Flur
2019-01-02 17:15:37.158 [ome.event.ItemCommandEvent] - Item 'echoArbeit_TTS' received command Test Arbeitszimmer
2019-01-02 17:15:37.164 [vent.ItemStateChangedEvent] - echoKueche_TTS changed from to Test Küche
2019-01-02 17:15:37.173 [vent.ItemStateChangedEvent] - echoWohnen_TTS changed from to Test Wohnzimmer
2019-01-02 17:15:37.200 [vent.ItemStateChangedEvent] - echoFlur_TTS changed from to Test Flur
2019-01-02 17:15:37.202 [vent.ItemStateChangedEvent] - echoArbeit_TTS changed from to Test Arbeitszimmer
==> /var/log/openhab2/openhab.log <==
2019-01-02 17:15:38.384 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler@1a506d3': POST url 'https://alexa.amazon.de/api/behaviors/preview' failed: Bad Request
org.openhab.binding.amazonechocontrol.internal.HttpException: POST url 'https://alexa.amazon.de/api/behaviors/preview' failed: Bad Request
at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:549) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.executeSequenceNode(Connection.java:1067) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.executeSequenceCommand(Connection.java:1052) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.textToSpeech(Connection.java:1043) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.startTextToSpeech(EchoHandler.java:640) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.handleCommand(EchoHandler.java:527) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at com.sun.proxy.$Proxy176.handleCommand(Unknown Source) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
2019-01-02 17:15:38.591 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler@506fc4': POST url 'https://alexa.amazon.de/api/behaviors/preview' failed: Bad Request
org.openhab.binding.amazonechocontrol.internal.HttpException: POST url 'https://alexa.amazon.de/api/behaviors/preview' failed: Bad Request
at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:549) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.executeSequenceNode(Connection.java:1067) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.executeSequenceCommand(Connection.java:1052) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.Connection.textToSpeech(Connection.java:1043) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.startTextToSpeech(EchoHandler.java:640) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.handleCommand(EchoHandler.java:527) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at com.sun.proxy.$Proxy176.handleCommand(Unknown Source) [252:org.openhab.binding.amazonechocontrol:2.4.0.201812011454]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
==> /var/log/openhab2/events.log <==
2019-01-02 17:15:39.724 [vent.ItemStateChangedEvent] - echoArbeit_TTS changed from Test Arbeitszimmer to
2019-01-02 17:15:39.792 [vent.ItemStateChangedEvent] - echoFlur_TTS changed from Test Flur to
This is the reason i´m using Thread::sleep(1000) between multiple Commands or try to use groups instead.
Thanks for the link Scott and H102 for the hint!
I´m currently just using Thread::sleep in small Alexa rules that needs a pause between multiple commands.
It´s still a good idea to change this from sleep to timers.
Anyway it´s just workaround because the Amazon servers have trouble with too many commands
I just had a look and only three out of 35 rules use Thread::sleep while only two are using a value greater 500ms.
Just to understand the timer…
In your example the timer waits one second before executing the next TTS, basically the same as a Thread::sleep(1000).
But the timer will terminate the rule thread for one second and then create another thread to run the rest of the rule?
I just want to understand what´s more “stress” for the system.
Work with one thread that´s in use for atleast 5 seconds or use atleast 4 threads that are only used for one or two seconds.
And things inside the timer will be executed after the timer is done?
Example, the TTS will be send 5 seconds after the rule started:
rule "Test"
when
Item itmTestSwitch changed
then
createTimer(now.plusSeconds(5), [ |
echoKueche_TTS.sendCommand('Test Küche')
])
end
Actually, the createTimer() examples won’t work as desired, they spin off threads that come from a different thread pool from that used by Thread::sleep() and immediately return, which is to say there is effectively no delay to the calling thread when createTimer() is called. Your rule could actually be coded something like this:
rule "Test"
when
Item itmTestSwitch changed
then
echoKueche_TTS.sendCommand('Test Küche')
createTimer(now.plusSeconds(1), [|
echoWohnen_TTS.sendCommand('Test Wohnzimmer')
createTimer(now.plusSeconds(1), [|
echoFlur_TTS.sendCommand('Test Flur')
createTimer(now.plusSeconds(1), [|
echoArbeit_TTS.sendCommand('Test Arbeitszimmer')
])
])
])
end
Warning, the above may have typos and is untested, but should serve to illustrate the use of createTimer() in your rule.
[Updated to correct missing right paren at each plusSeconds() method call. Thanks for spotting that, @H102! ]
Hello michi,
do you now if there is a way to access the alexa alarm clock events? I would like to fire some actions when my alarm clock(echospot) is ringing…make coffee, start hue sunrise etc…
At the moment I’m looking for Echos Player changes when my Presence Mode is set to sleep,
but this not a very elegant way.
Is there any plans to control items directly, not via routines? I would like to control a thing that has on and off as an option in the app but is a thermostat thing. When setting up a routine it only allows me to change the temp of the thing which doesn’t actually work and no on or off option. I’m talking to the developers to see if they can fix but if I could control the thing direct it would prevent a bunch of one step routines (and fix my problem and not rely on the vendor)
Good afternoon,
I’m using Version 2.5.0, but for some reasons the “Off” command for turning the Alexa Radio “off”
seems not to work. I’m getting the following errors:
2019-01-05 16:31:33.871 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler@176147c': POST url 'https://alexa.amazon.de/api/np/command?deviceSerialNumber=G090L91181820AT&deviceType=A3S5BH2HU6VA' failed: Not Found
org.openhab.binding.amazonechocontrol.internal.HttpException: POST url 'https://alexa.amazon.de/api/np/command?deviceSerialNumber=G090L91181820AT&deviceType=A3S5BH2HU6VA' failed: Not Found
at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:583) [237:org.openhab.binding.amazonechocontrol:2.5.0.Beta_01]
at org.openhab.binding.amazonechocontrol.internal.Connection.command(Connection.java:901) [237:org.openhab.binding.amazonechocontrol:2.5.0.Beta_01]
at org.openhab.binding.amazonechocontrol.internal.Connection.playRadio(Connection.java:965) [237:org.openhab.binding.amazonechocontrol:2.5.0.Beta_01]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.handleCommand(EchoHandler.java:494) [237:org.openhab.binding.amazonechocontrol:2.5.0.Beta_01]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at com.sun.proxy.$Proxy166.handleCommand(Unknown Source) [237:org.openhab.binding.amazonechocontrol:2.5.0.Beta_01]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]