[Release] Echo Speaks v3 + Actions

Current Features:

  • Creates virtual Echo Devices for every physical Alexa device (if supported).
  • Make Alexa announcements based on any ST event.
  • Play music/sounds based on an event (eg, when someone arrives)
  • Trigger weather/traffic reports, jokes, fun facts, sing songs, stories, get calendar events.
  • Create Alarms or Reminders based on any ST event.
  • Many other Alexa features.
  • There are tons of possibilities.
  • There is ~50 custom commands available.
  • Alexa Guard Control

Introducing Echo Speaks Actions:

This new Action app will allow you to create rules based on device, location, schedule trigger events while defining conditions to utilize the full features of the Echo Speaks devices Without requiring a 3rd party app like WebCore or Rule Machine…

The idea behind Actions was to create a simple but powerful app to trigger speech/announcements or other Echo Speaks features.
The beauty is in the flexibility of each action, it can be as simple as a single speech event when the front door is unlocked.
To as complex as selecting multiple triggers (contacts, motion, presence, etc.) and defining criteria and custom responses for each individual event type.

This app is accessible through the Echo Speaks app and not the market place or user-defined apps.

The purpose of the app is to eliminate the need for 3rd party rule engines and have better integration with advanced commands.

Current Triggers Available:

Date/Time Events:

  • Scheduled Time
  • Sunrise/Sunset

Location Events:

  • Modes
  • Routines

Weather Events:

  • (Coming Soon)

Safety & Security Events:

  • Alarm (HSM/SHM)
  • Fire/Smoke
  • Carbon Monoxide

Actionable Device Events:

  • Locks
  • Outlets/Switches
  • Dimmers/Level
  • Garage Door Openers
  • Valves
  • Window Shades
  • Thermostats

Sensor Device Events:

  • Contacts | Doors | Windows
  • Battery Level
  • Motion
  • Illuminance
  • Presence
  • Temperature
  • Humidity
  • Water
  • Power

Action Types Available

  • Speak (SSML Supported)
  • Announcements/Broadcasts (SSML and Multi-Device Supported)
  • Custom Sequences
  • Weather Reports
  • Playback Control
  • Built-In Routine Functions:
    • Sing a Song
    • Flash Briefing
    • Fun Fact
    • Traffic Report
    • Tell a Joke
    • Tell a Story
    • Say Goodbye
    • Say Good Night!
    • Say Good Morning!
    • Welcome Home
    • Sing Happy Birthday
    • Give a Compliment
  • Play Music (Using Alexa music providers only)
  • Calendar Events (Non-Pin protected email only)
  • Create Alarms
  • Create Reminder
  • Do Not Disturb Control
  • Bluetooth Control (Connect/Disconnect Paired DEvices)
  • Change Alexa Wake Word
  • Execute Alexa Routines




V2.x Upgrade Process:

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


The new docs have been updated to reflect both the SmartThings and Hubitat process flows.

Login Issues?

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

V3 Changes (This is WIP):

Echo Speaks App

• NEW: Login Status page now available. It will list each item and run a validation test and give you the response realtime.
• NEW: You can force the devices to sync their cookies with the main app (in the rare occasion they get messed up).
• NEW: Setting to define how often your cookie refreshes (in days). Between 1 to 5 days. Refreshes attempted before 24hours are now blocked.
• NEW: Pause/Unpause all actions from the Main App actions page.
• NEW: Automation child app called Echo Speaks - Actions to eliminate the need for 3rd party apps to use all of the Echo Speaks functionality.
• NEW: Support/automation for Alexa Guard (Please note. If you have a large number of smart home devices attached to Alexa this may prevent guard data from being loaded under ST).
• NEW: Ability to remove 'Echo - ’ prefix from device names.
• NEW: Issues section at top of the app UI. It will show any authentication, code updates/version issues.
• NEW: Child App and Devices now verify that they meet the minimum version required and stop processing if they don’t.
• NEW: importUrl header param for Hubitat users to quickly import code.
• NEW: Checks are now performed to make sure you can’t install Actions app from the marketplace.
• NEW: Log filtering options for reducing log output.
• NEW: Three strikes rule for authentication failures. Instead of clearing auth on the first failed attempt it will wait for 3 consecutive failures.
• NEW: Speech testing has been added to the device testing section.
• FIXED: Repaired issue with Bluetooth status requests.
• FIXED: Device rename issue on Hubitat.
• FIXED: Authentication handling tweaks and optimizations.
• FIXED: Other bugs resolved.
• UPDATED: Streamlined the mainPage to be less cluttered and overwhelming.
• UPDATED: Lots of UI polishing.
• UPDATED: Rebuilt the announcement tests function.

Actions App:

• NEW: importUrl header param for Hubitat users to quickly import code.
• NEW: Alexa Routine Execution (Only those with custom voice triggers).
• NEW: Subscribe to just about any location and device events.
• NEW: Create responses for each trigger type (Means 1 action can accommodate a large number of events).
• NEW: Monitor devices for changes and speak after so many seconds then repeat every x seconds until it changes to the desired state.
• NEW: Define different responses for the repeat events.
• NEW: Define multiple responses and have a random response for each event.
• NEW: Web-Based response builder.
• NEW: Log filtering options for reducing log output.
• NEW: Much more.

Coming Soon (v3.1):

  • Creating Zones based on device state (Motion, Switches, etc.)
  • Duplicate existing Actions
  • Weather-based event triggers.


• NEW: importUrl header param for Hubitat users to quickly import code.
• NEW: SSML Support for Speech commands (Speed, pitch, emphasis, voices, and more).
• NEW: Better version checks for devices to prevent compatibility issues.
• NEW: alexaGuardStatus attribute.
• NEW: Log filtering options for reducing log output.
• FIXED: All web calls have been reworked to eliminate the JSON error in the logs.
• FIXED: Should greatly reduce the performance effects on Hubitat which cause slowdowns.
• FIXED: setLevel type mismatch issues.
• FIXED: Extensive queue testing and optimizations.
• FIXED: Authentication handling tweaks and optimizations.
• FIXED: Many other items I’m not remembering.
• UPDATED: Modified the synchronization of Cookie data with the app.
• UPDATED: Tweaked and optimized the Queue system in the device to be much more resilient and reliable.

Tags: Echo, TTS, Alexa, Amazon, Speech, Text to Speech


Just updated mine everything went great.
Thanks for the fantastic work :+1:t2:
Just to let you know when I used THIS page on your GitHub none of the hyperlinks worked they just gave me a 404 error, it may be my browser not sure.

It’s looking really good, can’t wait to get home Friday to test the actions I’ve made so far. Amazing work tonesto

@tonesto7 does using your smartapp actions make announcements quicker than if you were to use something like webCoRE? Also where is the Alexa Guard control? I can’t find it in webCoRE commands or in the actions section.

Another question - how come some of my routines show up as unlabeled? How can I get them to all be named?

Am I doing something wrong? Getting this after updating

groovy.json.JsonException: expecting ‘}’ or ‘,’ but got current char ‘"’ with an int value of 34

The current character read is ‘"’ with an int value of 34
expecting ‘}’ or ‘,’ but got current char ‘"’ with an int value of 34
line number 1
index number 492549


I’ve added in checks for Guard support checks on ST. @mastermc0

Anyone having Authentication issues please update all (both apps and device) of your code to v3.0.1.1 and send me the link to your diagnostics page.

Under the ES App > Manage Logging and Metrics > Diagnostics Data > Press the email button.
Oh my god I wish people would read…

1 Like

That sir, is expecting WAY too much.


Apologies for not spotting the bit about sending diagnostics will do that in future.

That certainly wasn’t targetted at you :slight_smile:

Your error actually reminded me to add the check for the response size when checking if Guard is supported.


@tonesto7 getting this message even though I’ve got Alexa Guard enabled and even have since went through setup again plus have compatible devices.

Glad to be off the hook the error seems to have disappeared many thanks for your hard work on this as saves me from the fact I’m too lazy to learn groovy.

@tonesto7 also noticed that ST Community Installer doesn’t seem to update actions child app.

For the life of me I can’t get the actions child app to update. I’ve gone into IDE and tried updating from repo and using community Installer but still have this.

1 Like

I don’t think it’s quicker. Actions was designed to provide an easy to configure interface for the many ES features, it only takes a few minutes to set up a quick speech item for various triggers under a single action. It allows for creating custom responses that are randomly selected (per trigger type)
At the end of the day, there is too much flexibility with WebCore, it’s not very approachable for non-tech people, and it’s a nightmare for me to support it.

I thought I added in an explanation to the app but must have missed it.

Here’s the short answer:

Amazon doesn’t label the routines in the API, so the only ones I can identify are those routines that have voice triggers.

If I can discover a different way to label them I gladly would.

1 Like

Well the app only adds the version info for the children when they are installed some how.

Check under the IDE > My Locations > smartapps >Scroll down to Echo Speaks and see if any actions are listed

It’s annoying that Amazon bulks all there smart home data in this one location.

I think I spoke too soon same error :frowning:

So even though the actual code says the current t version for some reason parent smartapp isn’t reflecting as such.

Once the app is installed it will reflect the version once the initialize() function is called by either pressing Done/Save all the way out, or other events like the main app detecting it was updated.

If you share your diag page with me maybe I can see a potential issue on my part

Just sent the email.

© 2019 SmartThings, Inc. All Rights Reserved. Terms of Use | Privacy Policy

SmartThings; SmartApps®; Physical Graph; Hello, Home; and Hello, Smart Home are all trademarks of the SmartThings, Inc.