Backstory:
I have an echo dot in the kids room. My son often starts Amazon Music, then leaves his room with it still playing… for HOURS… So to fix it I set up a rule to stop it every 15 minutes.
Using TXTC item from an OpenHAB perspective works, but the Dot keeps on playing. So it’s a false positive.
So I looked into using the PLAYER item and that failed spectacularly.
System setup
Dockerized OpenHAB 3.3.0 (image openhab/openhab:latest-debian)
Configs :
amazonechocontrol.things
Bridge amazonechocontrol:account:account1 "Bridge Amazon Account 1" @ "Accounts" [ amazonSite="amazon.com", email="***USERNAME***", password="***PASSWORD***", pollingIntervalInSeconds=60]
{
Thing echo dot4a "Kidz Room (Alexa)" @ "Kidz Room" [serialNumber="***SERIALNUMBER***"]
}
amazonechocontrol.items
//Group Alexa_Kidz_Room <player>
// Player control
Player Dot4A_Kidz_Room_Player "Player" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:player"}
Dimmer Dot4A_Kidz_Room_Volume "Volume [%.0f %%]" <soundvolume> (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:volume"}
Switch Dot4A_Kidz_Room_Shuffle "Shuffle" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:shuffle"}
// Player Information
String Dot4A_Kidz_Room_ImageUrl "Image URL" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:imageUrl"}
String Dot4A_Kidz_Room_Title "Title" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:title"}
String Dot4A_Kidz_Room_Subtitle1 "Subtitle 1" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:subtitle1"}
String Dot4A_Kidz_Room_Subtitle2 "Subtitle 2" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:subtitle2"}
String Dot4A_Kidz_Room_ProviderDisplayName "Provider" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:providerDisplayName"}
// Bluetooth
String Dot4A_Kidz_Room_BluetoothMAC "Bluetooth MAC Address" <bluetooth> (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:bluetoothMAC"}
Switch Dot4A_Kidz_Room_Bluetooth "Bluetooth" <bluetooth> (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:bluetooth"}
String Dot4A_Kidz_Room_BluetoothDeviceName "Bluetooth Device" <bluetooth> (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:bluetoothDeviceName"}
// Commands
String Dot4A_Kidz_Room_TTS "Text to Speech" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:textToSpeech"}
String Dot4A_Kidz_Room_TXTC "Text Command" (Alexa_Kidz_Room, Alexa_TextCommand) {channel="amazonechocontrol:echo:account1:dot4a:textCommand"}
String Dot4A_Kidz_Room_Remind "Remind" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:remind"}
String Dot4A_Kidz_Room_PlayAlarmSound "Play Alarm Sound" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:playAlarmSound"}
String Dot4A_Kidz_Room_StartRoutine "Start Routine" (Alexa_Kidz_Room) {channel="amazonechocontrol:echo:account1:dot4a:startRoutine"}
amazonechocontrol.rules
rule "Son done messed up"
when
Time cron "0 0/15 * * * ?"
then
val telegramActionBot = getActions("telegram","telegram:telegramBot:Bot")
telegramActionBot.sendTelegram("Kid's Room Alexa, STOP!")
Dot4A_Kidz_Room_Player.sendCommand(PAUSE)
Dot4A_Kidz_Room_TXTC.sendCommand("Stop Amazon Music")
end
Results from LOGs:
events.log
2022-08-04 10:15:01.105 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Dot4A_Kidz_Room_Player' received command PAUSE
2022-08-04 10:15:01.106 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Dot4A_Kidz_Room_TXTC' received command Stop Amazon Music
2022-08-04 10:15:01.106 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Dot4A_Kidz_Room_Player' predicted to become PAUSE
2022-08-04 10:15:01.107 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Dot4A_Kidz_Room_TXTC' predicted to become Stop Amazon Music
2022-08-04 10:15:01.107 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Dot4A_Kidz_Room_TXTC' changed from to Stop Amazon Music
2022-08-04 10:15:07.479 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Dot4A_Kidz_Room_TXTC' changed from Stop Amazon Music to
openhab.log
2022-08-04 10:15:06.351 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler@47c47151': POST url 'https://alexa.amazon.com/api/np/command?deviceSerialNumber=***SERIALNUMBER***&deviceType=***DEVICETYPE***' failed: Not Found
org.openhab.binding.amazonechocontrol.internal.HttpException: POST url 'https://alexa.amazon.com/api/np/command?deviceSerialNumber=***SERIALNUMBER***&deviceType=***DEVICETYPE***' failed: Not Found
at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:691) ~[?:?]
at org.openhab.binding.amazonechocontrol.internal.Connection.command(Connection.java:1157) ~[?:?]
at org.openhab.binding.amazonechocontrol.internal.handler.EchoHandler.handleCommand(EchoHandler.java:276) ~[?:?]
at jdk.internal.reflect.GeneratedMethodAccessor165.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
at org.openhab.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [bundleFile:?]
at com.sun.proxy.$Proxy6106.handleCommand(Unknown Source) [?:?]
at org.openhab.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:80) [bundleFile:?]
at org.openhab.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) [bundleFile:?]
at jdk.internal.reflect.GeneratedMethodAccessor164.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
the TTS and TXTC items work so it’s not a configuration on my end. Any help would be appreciated.