[Release] Echo Speaks v3 + Actions

Current Features:

  • Creates virtual Echo Devices for every physical Alexa device (if supported).
  • Make Alexa announcements based on any SmartThings or Hubitat 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 SmartThings or Hubitat event.
  • Many other Alexa features.
  • There are tons of possibilities.
  • There are ~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.

In v3.2+ there is a new Tiered response action type that lets you define how many tiers to use and define a delay and response for each (multiple/random + SSML supported).
I use it personally for my kid’s bedtime routine. At a certain time, it fires the first tier which reminds them bed is in 30 minutes and they should start picking up. Then 15 minutes later it sends another reminder and then 10 minutes later the final reminder.

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.

Introducing Echo Speaks Zones:

This new Zone app will allow you to create a zone using one or more of your Echo Speaks devices. It also you to send action commands to the devices near you based on device, location, schedule conditions.

This will allow you to target speech, announcements, and other commands at the devices that matter and avoid the ones that don’t.
Each zone is customizable with activation and deactivation delays.
This app is accessible through the Echo Speaks app and not the market place or user-defined apps.

I will add more details and examples as time goes on.

Current Triggers Available:

Date/Time Events:

  • Scheduled Time (Daily, weekly, monthly)
  • Sunrise/Sunset

Location Events:

  • Modes
  • Routines

Safety & Security Events:

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

Actionable Device Events:

  • Locks
  • Buttons
  • 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)
  • Speak Tiered | Create a response that plays out in phases with unique delays between each response
  • Announcements/Broadcasts | Create a response that plays out in phases with unique delays between each response
  • SSML support for all Speak and Announcements
  • Custom Sequences
  • Weather Reports
  • Playback/Volume 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

Links

Install:

https://tonesto7.github.io/echo-speaks-docs/installation/smartthings/installs/

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.

Documentation:

https://tonesto7.github.io/echo-speaks-docs/
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 in 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 the '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 the 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.

— V3.2 Changes —
• ADDED: New Zones Companion app. You can now create groups of echo devices that can be used in your actions. They allow you to target speech based on device and location conditions. So you only speak where your need to.
• ADDED: WebSocket support: This only works on Hubitat and requires an additional driver to be installed.
• ADDED: Locale support for Brazil (amazon.com.br | pt-BR).
• ADDED: LogTrace & LogDebug settings are automatically turned off after 6 hours now to reduce platform stress.
• UPDATED: Guard Support checks are now performed as soon as the server is installed now to help eliminate the not supported or refresh page message.
• UPDATED: Optimized and reduced the number of repetitive web calls. I’ve made a lot of state cleanups and consolidations. Please make sure to open the app and press done immediately after updating your code.
• FIXED: Rare scenario has been resolved where new server installs would result in the wrong Server preferences page being shown. The page will show the login page when the server is installed and the only login is required.
• FIXED: Setting Alexa Guard state was broken on Hubitat.
• FIXED: More tweaks to help reduce the performance effects on Hubitat which causes slowdowns.
• FIXED: Lots of UI text cleanups.
• FIXED: Minor code cleanups and refactoring.


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.

— V3.1 Changes —
• NEW: Duplicate existing Actions

— V3.2 Changes —
• ADDED: Support for Level, water, power, shade, valve conditions.
• ADDED: Support for Button trigger events.
• ADDED: Use your new zones in any of your actions. When you select zones you can define standalone echos as a fallback should none of the zones be active at the time of the event.
• ADDED: New Tiered response type. It allows you to create multiple responses with different delays between each one. I used it for bedtime announcements for my kids where it has three announcements 1 immediately, the second 15 minutes later, and the third 10 minutes after that.
• ADDED: LogTrace & LogDebug settings are automatically turned off after 6 hours now to reduce platform stress.
• ADDED: And/Or logic to the conditions/restrictions. So you can require one condition or all before executing.
• ADDED: Unused trigger input cleanups are now performed should you decide to change an action type or triggers.
• UPDATED: Organized action types input items into groups (On SmartThings).
• UPDATED: Rewrote the schedule triggers (This has breaking changes for existing triggers with schedule).
• UPDATED: Guard Support checks are now performed as soon as the server is installed now to help eliminate the not supported or refresh page message.
• FIXED: Mode, routines should now respect the all or once setting values.
• FIXED: Broken Carbon Monoxide & Smoke Trigger events
• FIXED: Tiered Actions Tests.
• FIXED: Water triggers not showings.
• FIXED: Broken condition logic after v3.2.
• FIXED: Dozens of other little bugs that were discovered.
• FIXED: Minor code cleanups and refactoring.
• FIXED: Lots of UI text cleanups.


Device:

• 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 causes 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.

— V3.1 Changes —
• UPDATED: Lot’s of performance and stability fixes

— V3.2 Changes —
• ADDED: Support for audio track capability (Temporarily Commented out because Hubitat doesn’t support)
• ADDED: New tile support for upcoming Studio, Buds, and Show 8 (Once they are released I will add their data to the config file and you will see them).
• ADDED: Support for the new Web Socket (Hubitat only) to reduce polling unless necessary.
• FIXED: Speech commands now treat amazon response of Too many requests just like its being rate-limited and will retry the command in a few seconds.
• FIXED: Restored playAnnouncement command that accepts only 3 commands.
• FIXED: Change wifi status updates to only occur on Echo devices and not 3rd Party.
• FIXED: WHA group playback info.
• FIXED: Removed unnecessary imports.
• FIXED: Minor code cleanups and refactoring.
• FIXED: Requests errors with improper request messages.


Zones App (Only on V3.2+)

• ADDED: Create a new zone that targets certain echo-speaks devices. It is activated by certain location/device events. Such as motion, presence, and many other attributes.
• ADDED: Use this to send your speech/announcements to the devices where people are to hear them


NOTICE: DO NOT INSTALL the WEBSOCKET Device. It is for the Hubitat platform.

Tags: Echo, TTS, Alexa, Amazon, Speech, Text to Speech, Actions, ES, Zones, Speak, Speaker, Dot, Show

15 Likes

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
{"network…[TRUNCATED]

UPDATE NOTICE:

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.

2 Likes

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.

3 Likes

@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.