[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:

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:


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


Websocket Device (Only on V3.2+)

• ADDED: Opens a web socket directly with Amazon and receives volume, playback, and other events in realtime so you Echo Speaks devices are always current and reduces polling. (Hubitat Only)

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

31 Likes

amazing app, tones of work involved no doubt.
10/10!

1 Like

Documentation links are failing with 404 errors.

1 Like

Documentation has been fixed...

1 Like

Thank you very much for this. Just an FYI, I'm still getting a 404 for the documentation link but it's easy enough to get to.

1 Like

Thanks for the donation. I fixed the docs about an hour ago so maybe it’s being cached somewhere. I just tested on my phone and all the links were working as expected

Incredible work! I don't know how you find the time.

1 Like

Thank you. All installed and working! Great work on this btw.

1 Like

NOTICE:

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.

Saturday, running 3.0.0.8 (beta) my Echo's stopped speaking, At that point my cookie's hadn't refreshed in about 2.5days. I went ahead and did a manual refresh of the cookie, and that fixed the issue.
Today I updated to 3.0.1.2 and no issues with the update and working smooth so far.
I emailed you the diagnostics if you need..

1 Like

Got it installed again. stays logged in so far. seems awesome.

1 Like

This is awesome! Install went very smoothly following the install docs...THANK YOU for a great app! This is going to be a lot of fun!

1 Like

This login stuff is tricky little f*%$er to track down. It doesn't feel like it's an ES issue and more like an amazon issue. My hope is to be able to find the commonality between the different issues using the diagnostics data that's being shared.

I'm pushing out v3.0.1.4 with a minor tweak to the diag page that allows you to choose whether to share the cookie data so I can compare them with working and non-working auth tokens to see if there is a pattern.

Sorry for all the updates today but i'm trying to work through this authentication issue once and for all.

@tonesto7

Any chance to look into adding support for Notification Devices on Hubitat? I still can't get my Pushover devices or Mobile Clients to show on the newest version but not sure if you worked on that part yet:

Do you know how can we add you as a Collaborator on Heroku to allow it to automatically update or do I have to have your email address to add it?

image

Actually just figured out how to update the Heroku server without having to redeploy. I connected my Heroku account to my Github account. I then forked your Server repo to my Github account then was able to pick that repo on Heroku to update the code to version 2.30 on Heroku.

that will work but your will need to submit pull requests from my repo to yours everytime there is an update

Just updated to the latest. I clicked on the button to share cookie data as well.
Echo's had stopped speaking sometime last night or this morning. Working again after update. Redeployed new Heroku server as well.
Let me know if you need anything else for troubleshooting!
image

silly question, but do we need to update if it is all working ?

I just updated to current and when I open the app, it tells me I need to update

:frowning:

Ya, was the same for mine. I had to update all 4 (Speaks, Actions, Device and Heroku Server).