[OBSOLETE 1.1.12 3/13/2017] Big Talker - Talk when events occur

NOTICE: BigTalker 1.x (1.1.12 and prior) is no longer being maintained. It has been deprecated.
For the latest information, please see the documentation posted at: http://thingsthataresmart.wiki/index.php?title=BigTalker
and/or the latest discussion thread: https://community.smartthings.com/t/release-bigtalker-2-x/118105
.
.


Version 1.1.12 release announcement (updated post 3/12/2017 with 1.1.11 release) (updated post 3/13/2017 with 1.1.12 release)

Update 2/6/2018

  • BigTalker 1.1.12 code has moved to https://github.com/rayzurbock/BigTalker
  • GitHub Integration Settings have changed to:
    • Owner: rayzurbock Name: BigTalker Branch: master
      image
  • This version is no longer being maintained. BigTalker 2.0.0 is the latest release. Settings will not transfer from 1.1.12 to 2.0.0 as the app structure changes from single app to parent/child app.
  • For the latest information, please see the documentation posted at: thingsthataresmart.wiki/index.php?title=BigTalker

Have you ever wanted a talking house? Now you can! With the Big Talker SmartApp ( http://github.com/rayzurbock/SmartThings-BigTalker )

When SmartThings is paired with a compatible audio device (such as a Sonos, Ubi, LANnouncer, VLCThing, AskAlexa, etc) and Big Talker SmartApp, your house can say what you want it to say when events occur.

Currently supported events:

  • Time, Time of Day + Day(s) of Week
  • Motion, Active/Inactive
  • Switch, On/Off
  • Presence, Arrive/Depart
  • Lock, Lock/Unlock
  • Contact, Open/Close
  • Mode, Change (Home, Away, etc)
  • Thermostat, Cooling/Heating/Fan/Idle(not running)
  • Acceleration, Active/Inactive
  • Water, Wet/Dry
  • Smoke, Detect/Clear/Test
  • Button, Press or Held
  • Smart Home Monitor Status, Armed-Away, Armed-Home, Disarmed

Each supported event supports 3 different groups so that you can alter your spoken phrases based on which group your selection of devices is configured in (more event groups available in the 2.0 release once released!).

Voice phrases support the following variables (will be replaced with actual phrase when triggered)

%askalexa% = Send phrase to AskAlexa message queue. (Alexa, Tell SmartThings to play messages)
%devicename% = Triggering devices display name
%devicetype% = Triggering device type; motion, switch, etc…
%devicechange% = State change that occurred; on/off, active/inactive, etc…
%description% = The description of the event that is to be displayed to the user in the mobile application
%locationname% = Hub Location name; home, work, etc…
%lastmode% = Last home mode; home, away, etc…
%mode% = Current home mode; home, away, etc…
%time% = Current time; HH:mm am/pm
%shmstatus% = SmartHome Monitor Status (Disarmed, Armed Stay, Armed Away)
%weathercurrent% = Current weather (from Weather Underground; based on SmartThings Hub Zipcode)
%weathertoday% = Today’s weather forecast (from Weather Underground; based on SmartThings Hub Zipcode)
%weathertonight% = Tonight’s weather forecast (from Weather Underground; based on SmartThings Hub Zipcode)
%weathertomorrow% = Tomorrow’s weather forecast (from Weather Underground; based on SmartThings Hub Zipcode)
%weathercurrent(00000)% = Current weather (from Weather Underground; using custom Zipcode; replace 00000)
%weathertoday(00000)% = Today’s weather forecast (from Weather Underground; using custom Zipcode; replace 00000)
%weathertonight(00000)% = Tonight’s weather forecast (from Weather Underground; using custom Zipcode; replace 00000)
%weathertomorrow(00000)% = Tomorrow’s weather forecast (from Weather Underground; using custom Zipcode; replace 00000)
Note: (00000) can also be replaced by any supported location of the WeatherUnderground API such as (France/Paris), (latitude,longitude), (AirportCode), (State/City)

For example when turning off a switch named “Office Light” with a spoken phrase of %devicename% %devicetype% has been turned %devicechange% would speak Office light switch has been turned off.

Another example would be to create a simulated switch that is turned ON in the morning by your Good Morning routine, and then OFF at night with your Good Night routine. Then set up a Big Talker switch event group tied to that switch’s ON event that speaks Good Morning. %weathercurrent% %weathertoday%

Keep in mind, if you configure highly active or too many devices, it may get annoying!! We had a family gathering and the kids kept going in/out the back door to play in the yard. “Back Door has been opened, Back Door has been closed, Back Door has been opened, you get the idea.” I wouldn’t configure chatty motion sensors either, but that’s up to you.

Have Fun!

Support the project (optional)
This SmartApp is free. Donations to support development efforts are accepted via (non-refundable, no guarantee of service/support):

ISSUES?
Please check the latest posts below for known issues and file bug reports / feature requests on GitHub for better tracking here:
https://github.com/rayzurbock/SmartThings-BigTalker/issues

NOTE: For Ubi, be sure to first install the Ubi Device Handler and App
https://github.com/jodyalbritton/smartthings/tree/master/theubi

NOTE: For VLCThing, be sure to first install the VLCThing Device Handler

NOTE: For LANnouncer, be sure to install the LANnouncer Device Handler and Android App
http://www.keybounce.com/LANdroidHowTo/LANdroid.html

Some of the changes since 1.1.8 include (1.1.9 was a development version (Major thanks to all of the alpha/beta testers!! Thank You!!!); 1.1.12 is the latest release as of this post date, the update flag is now being flown for version 1.1.11 and prior):

  • Additional Talk() debug logging
  • Test variables for null with safe navigation operator (?) in more places within Talk().
  • Attempt to resolve musicPlayer playing text and resuming/restoring.
  • Clear state.polledDevices on initialize
  • In musicPlayer mode, def Talk() now gives currentTrack.status precedence over currentStatus if it exists as it seems more accurate in testing based on feedback.
  • If default speech volume was not set, speech may not have occurred due to a null variable issue. Resolved with groovy safe navigation operator
  • Partnered with @MichaelS; Added AskAlexa support (send phrase to AskAlexa queue) with %askalexa% in the phrase.
  • Removed requirement to set a speechDevice for users that only wish to use another supported SmartApp to offload/handle the speech - (currently only AskAlexa)
  • Added Smart Home Monitor (Dashboard) status events (speak on Arm-Away, Arm-Stay, Disarm)
  • Device/SmartApp output detection logging (did we send to a device? did we only send to a SmartApp (AskAlexa), did we send a phrase but didn’t send to a device or another SmartApp?)
  • Option to disable resume globally and/or per event.
  • A lot of work on Talk() and others
  • Pulled the code into Notepad++ where I could work with it better, collapse conditions, etc.
  • Found several bugs in the Talk() function that I didn’t see otherwise. Squashed.
  • Added a “Poll Now” toggle to the BT main screen, when in Debug and musicPlayer mode.
  • Added option to disable periodic polling for musicPlayer mode (some users were concerned with BigTalker showing up in the “Activity” feed so often. If music starts playing after speech when it wasn’t before, please make sure that polling is enabled)
  • When resume is enabled and in musicPlayer mode and in Debug mode, main menu now has an option to cause an instant poll “DEBUG: Poll Now (simply toggle)”.
  • Corrected a missed null check in Talk() regarding an empty phrase.
  • Added a null check in Talk() for resume var.
  • Added logging and in-app notification if Talk() is called on an empty phrase.
  • Added Button Held event. (needs testing. I do not have a zwave button)
  • Renamed SHM Stay to SHM Home to match the language in the SmartApp Dashboard.
  • Additional null checks in Talk() (specifically addressed if the desired phrase only had %askalexa%; throw an error in the logs and notify via push that there is a configuration error due to a missing phrase)

Report Issues: https://github.com/rayzurbock/SmartThings-BigTalker/issues
When reporting issues, please include the version of BigTalker that you are using. This can be found in the IDE logs with each BigTalker posted event or in the SmartThings App > Automation > BigTalker > Scroll down to the last line on the main menu under About.
If you do not have a GitHub account and do not wish to create one, you can PM me here in the community (@rayzurbock). I’d rather have one of these two methods for troubleshooting bugs and such (preferably GitHub) rather than have to scan through and try to mentally organize this thread into various issues/subjects.

If you have trouble and need assistance, please enable debug logging within BigTalker. SmartThings > Automation > SmartApps > BigTalker > Configure Defaults > Enable debug logging. Then when reporting issues, please submit any relevant logs which can be seen in realtime at https://graph.api.smartthings.com/ide/logs
(This version is no longer maintained).

(updated post 3/12/2017 with 1.1.10 release)
(updated post 3/12/2017 with 1.1.11 release - Bugfix)
(updated post 3/13/2017 with 1.1.12 release - Bugfix)

13 Likes

I found an issue in Talk Now that prevented the page from loading on new installs.
This has been corrected and the version incremented to 1.1.11.
The update flag is being flown for versions 1.1.10 and prior.

Hi @rayzurbock do you have plans to Big Talker works with Google Home?

@rayzurbock Hello, have a question. Just came off the beta to this, have not tested yet. In the beta I noticed if I have door locks and contacts setup for the same speakers, I get an issue. When I unlock the door and then open the door the unlock voice starts but then gets cutoff by the contact open voice and then seems to resume the original door unlock message. Has this been fixed in this version. If not is there a way to code it so the 2nd message does not start until the 1st one has finished. Unchedking the play resume did not seem to fix this or at least not the 1st part, any suggestions?

I’m getting this the app notification even though my phrase is not empty. I’m using Lannouncer custom commands as part of my phrase:

@|SPEAK=Someone is at the front door&FLASH=STROBE

However, the below doesn’t trigger a notification even though it’s a Lannouncer custom command too:

@|SPEAK= %devicename% is %devicechange% &FLASH=STROBE

I haven’t changed anything expect update to this new version.

Thanks for your time.

What does the app notification that you are seeing say?

Unfortunately this is a known issue that I do not know how to get around except to advise that talk events not be configured for devices that will likely be in quick succession to each other. ie: Motion Active, Light On when the light is triggered by the motion, etc… I have thought for a while about building a talk queue to prevent this, which would possibly do what you want but it’s not implemented and may be difficult to get done.

I haven’t looked at the Google Home API.
If someone creates a device type handler for SmartThings that exposes it with the musicPlayer or speechSynthesis capability, then we can use it. I’m not sure if that’s possible though not having looked at it’s API.

1 Like

bigtalker - check configuration. phrase is empty for Front Camera Motion Alert

I’m using a momentary switch in one of the switch slots to send a notification to the Lannouncer for the ON event. Nothing in the OFF event.

1 Like

Thanks, if you decide you want to do it, I would be more than happy to test for you, let me know.

2 Likes

Working on resolving this…

1 Like

I have published BigTalker 1.1.12 which resolves this issue.
I’ll adjust the 1.1.11 version to notify users of an updated version once I receive confirmation that it’s working (beyond my own testing which was successful).

2 Likes

Wow that was fast! :rocket:

Thank you!

1 Like

Repo is currently not letting me update to 1.1.12, but can’t wait to try it out.

You can copy/paste the code directly if “Update from Repo” is not working for you for some reason.
Here it is: https://raw.githubusercontent.com/rayzurbock/SmartThings-BigTalker/master/smartapps/rayzurbock/big-talker.src/big-talker.groovy

just tried 1.1.12 and no more errors with the ring doorbell pro. Thank you!!

1 Like

Flying the “New Version Available” icon for 1.1.11 now. Sorry folks but the in-app notification bug is somewhat crippling and annoying for many judging by the reports I received about it today. BigTalker 1.1.12 resolves this issue.

More details about this issue can be found here: https://github.com/rayzurbock/SmartThings-BigTalker/issues/5

2 questions, is there a way to set volumes for each speaker I am using. 2. Do you have a default volume set in the app?

There is a default volume that you can set on the “Configure Defaults” page if you are using BigTalker in musicPlayer mode (Sonos, etc).

This is not configurable per speaker. It affects all speakers that are configured for use in the app.
There has been a request to set the volume per event group which I will look into.

The default volume if a default has not been selected on the “Configure Defaults” page is 50%, but only if the speaker reports that it is at less than 50%. If the speaker reports that it is at 50% or above the volume is not adjusted (unless there is a default configured on the “Configure Defaults” page).

That said, when you asked this question I went to double-check and verify before I responded and it seems that I left some testing code in there that sets the “Configure Defaults” default volume behind the scenes to 89% but only if you haven’t configured a default volume on the “Configure Defaults” page. I’ll mark this to be resolved with the next release.

I think that is what I have been experiencing. If you are looking at doing volume per event, is it possible to look at volume per speaker? Here is the case. I want my bedroom volume to be 25% less than all the other speakers, right now I cannot do that. I tried to create a 2nd instance of the app, but I guess the two were conflicting, as messages started to get cut off.