[RELEASE] Echo Speaks V4

RELEASE V4.1.0.0

After a couple of months of beta testing, I think it's time to release this!!!


I've changed the file structure some so I recommend you use Hubitat Package Manager
Those that are currently using the beta version can just update like normal. I will maintain the beta branch alongside the master repository.

I highly recommend using Hubitat Package Manager to update your existing install.
If you are using HPM now you will need to uninstall HPM and reinstall HPM again and when detecting packages select the Echo Speaks 4.0 beta instead of V3 and it will update your existing code.

I also want to give a big thanks to @nh.schottfam for all his work on this release it's been nice working with him again since we did Nest Manager for SmartThings.

Echo Speaks App

  • [UPDATE] Optimizations to significantly reduce platform resource usage

  • [UPDATE] New UI Layout

  • [NEW] Centralized speech command queuing to eliminate amazon rate limiting

  • [NEW] Control Alexa Guard with the state of a single switch (On=Armed | Off=Disarmed).

  • [FIX] Alexa Routine Executions

  • [UPDATE] Reduced accesses to AWS Alexa APIs by caching results for re-use

  • [UPDATE] Removed a lot of state and atomicState accesses

  • [UPDATE] Many JVM optimizations to reduce memory use in HE

  • [NEW] Centralized speech queue to eliminate rate-limiting.

  • [NEW] Speech command optimizations to try and group like commands.

  • [UPDATE] More use of async HTTP calls

  • [UPDATE] UI improvements

  • [UPDATE] Improved status reporting and descriptions

  • [UPDATE] Cleanup of use of local server deployments

  • [UPDATE] Improved cookie refresh operations (in conjunction with server updates)

  • [UPDATE] Fixes for conditions, restrictions handling, time-based conditions, and restrictions

  • [UPDATE] Updates for operation with HSM,

  • [ADDED] Restored Zone and Action duplications.

  • [UPDATE] Added support for new Echo devices

Echo Speaks Actions

  • [UPDATE] Integration with lock codes and security keypads, humidity sensors

  • [UPDATE] Ability to filter actions on specific security code usage

  • [UPDATE] Updates for operation with HSM

  • [UPDATE] Integration with webCoRE

  • [UPDATE] Ability to execute pistons

  • [UPDATE] Ability to trigger based on piston executions

  • [UPDATE] UI improvements

  • [UPDATE] Improved status reporting and descriptions

  • [UPDATE] Fixes for conditions, restrictions handling, time-based conditions, and restrictions

  • [FIX] Fixed getAlexaRoutines Command.

  • [NEW] Added per zone volume when multiple zones are selected in the Action.

  • [UPDATE] Optimizations

  • [UPDATE] Removed a lot of state and atomicState accesses

  • [UPDATE] Many JVM optimizations to reduce memory use in HE

Echo Speaks Zones

  • [UPDATE] Optimizations

  • [UPDATE] Improved time handling and transitioning

  • [UPDATE] Improved UI

Echo Speaks Device

  • [UPDATE] Improved labeling for command inputs

  • [UPDATE] Less overhead

  • [NEW] Added new voiceCmdAsText() command to execute commands as if they are spoken to the device

Echo Speaks WebSocket

  • [UPDATE] Less overhead

  • [UPDATE] Improved operations with WebSockets




V2.x/v3.x Upgrade Process:

It's recommended to use Hubitat Package Manager (Search the forum for links)


  1. Install the new ES Actions app code.
  2. Install the new ES Zones app code.
  3. Update the Echo Speaks Device code.
  4. Install the Echo Speaks Zone Device code.
  5. Update the Echo Speaks WebSocket Device code.
  6. Update the Echo Speaks app code.
  7. Open the Echo Speaks app and press Done/Save.
  8. Make sure your server version is v2.7.0+
  9. Go back in and enjoy the new features.


The doc site has been updated to Hubitat process flows.

Login Issues?

If you are having login issues, please make sure you've updated the server to the latest version.


Place Holder

[Place Holder]

The code hasn't been released yet... I'm merging it in right now

1 Like

That's not affiliated with us... All our log entries have Echo prefixes

Frick, I'm so sorry, got my apps confused, TY



I followed those instructions to upgrade from 3.x, but my server is still at 2.6...

EDIT: I redeployed my server and now it says 2.7. Maybe add that step to the upgrade instructions?

My server also says 2.6 and I'm not sure how to redeploy my server. I've tried to find the install instructions but that step isn't covers, or at least I can't find it. I'm getting a 404 on the app configuration link in the install instructions.

Edit: NVM I figured out how to redeploy my server and it's all OK now. Still would be nice to fix the doc links. Thanks for the update!

The docs do have the instructions but the flow to find it might need some work. I had to rush to get the docs updated today.

I will work on polishing the site over the next couple days


All seems to be working ty @tonesto7, just another user here not knowing how to update and redeploy my server

I'm getting this error from Zones.

We will investigate and get fixes out...

1 Like

Could you tell us how to redeploy since the documentation is not working at the moment?

I can try. I sort of dinked around until it worked... But, here goes...

  • Click on Alexa Login Service
  • Click on Manage Cookie Login Service
  • Click on Reset Options
  • Turn on the Reset switch and then click on Next

That will reset everything. I don't particularly want to do this because it's all working right now. But, after you do that you will need to go back into Alexa Login Service and set up the Heroku app again. When you click on that it will open a new window. There's an app name. Be sure to copy it! When you continue, you will need that app name to properly set up the Heroku app.

Once you have the Heroku app set up again, you'll need to login to Amazon again.

I hope this helps. Sorry it's a little vague.

Hi, I use Echo Speaks - the version 4 - and it works very well, but I was trying to make a rule using Rule Machine where:

  1. A trigger - motion - make an Echo Dot say "Do you want to watch something?" (it is the simple step)
  2. I would like to say, b.e., "Yes, Netflix" or some other options, like Amazon Prime or Plex, and my answer would trigger the specific rule - I already have several, one to each of my sources.

My question is if is possible to send this command to an Echo without use its "wake word", Alexa.

I was thinking about something like a natural conversation: I enter the room and a motion sensor trigger the rule , making Alexa asks if I want to watch something and a simple answer "Yes, variable" , where the variable would be the trigger to the correct rule.

The main question is that the question asked by Alexa will be an "open" question, with my answer containing a variable that would allow me to choose between several sources.

And sorry, I don't know much about RM, so detailed answers are extremely welcome!

Thanks in advance.

First of all. Thanks for your hard work on "Echo Speaks v4" and a big improvements, I can't imagine my life without this app.

I would like to ask if you can check the "doNotDisturb" option of Echo dot because I'm having issues with it.
When I enable or disable (or schedule) Do Not Disturb via Alexa application it does not reflect the change to Hubitat C7. So in other words when I press via Alexa application to enable/disable Do Not Disturb option it does not change the attribute "doNotDisturb" in Hubitat.

I also see the same behaviour when I do it from opposite side so from Hubitat. When I initiate from device page "DoNotDisturbOff" or "DoNotDisturbOn" nothing happen and change is not synced out to Alexa application while I see the the success sent cmds in logs (example below).
I have a webcore piston that monitore for "doNotDisturb" status changes that worked well with Echo Speaks v3 but stop after I upgraded it to v4 yesterday.
Please let me know in case you will need some logs or anything from my side.
Thanks in Advance

dev:32021-03-24 08:48:59.514 debugEcho (v4.1.0.0) | sendAmazonCommand | Status: (200) | Response: [deviceSerialNumber:Gxxxxxxxxxxxxxxx, deviceType:A30xxxxxxxxxxx, enabled:false] | SetDoNotDisturbOff was Successfully Sent!!!
dev:32021-03-24 08:42:03.258 debugEcho (v4.1.0.0) | sendAmazonCommand | Status: (200) | Response: [deviceSerialNumber:Gxxxxxxxxxxxxxxx, deviceType:A30xxxxxxxxxxx, enabled:true] | SetDoNotDisturbOn was Successfully Sent!!!

For those of you who need to upgrade Heroku server version from 2.6.0. to version 2.7.0. I used the guide from this page below and I was able to successfully upgrade by "Automated Method" to the latest version.
The instructions you can find on below link:


1 Like

I only had one and removed that zone and created a different one. That error is now gone.

I don't know if it is just me, but I seem to be having a problem where v4 isn't updating album art or the like if I've ever been playing with that echo as part of a group. I see "ignoring getPlaybackState because group is playing here" in the logs when I turn on debugging, even though the echo is no longer playing as part of a group.

I have to go into the device driver code, and temporarily add a hard "isGroupPlaying=false" to get it unstuck. It seems "isGroupPlaying" can't get set back to false after no longer playing as part of a WHA group.

My path to repro the issue: "Alexa, play Def Leppard on everywhere" -> "Alexa, stop" -> "Alexa, play Alice Cooper on Living Room" and watch the log with debugging on to see the "ignoring getPlaybackState" message.

Is it just me?

I did some research and found out that "doNotDisturb" is syncing out between the Alexa and Hubitat but there is a delay 30 minutes and more. I also restarted hub and Echo dot but still the same delay between sync out "doNotDisturb" status.
Would you please to check. Thanks in Advance.