[OBSOLETE 1.1.6 5/25/16] Big Talker - Talk when events occur

Version 1.0.1 released here: https://github.com/rayzurbock/SmartThings-BigTalker

  • Sonos Support corrected
  • Resume playback after speaking (not supported for VLC-Thing until the Device Type supports it)
  • Corrected custom speech device save for Switch events
  • General cleanup
  • Icon change
  • More event support to come in new releases soon.
  • Special thanks to SmartThings community member @greg for help with testing Sonos functionality and making this release possible.
2 Likes

Brian,

For your “future Feature List” can you add the ability to only talk in Certain Modes? I specifically see this being very Valuable for intrusion detection late at night for example. where I would want my Sonos Speaker in my Bedroom to alert me that the doors on the house have opened, but it only makes sense to get the alerts when my home is in “Late Night” mode. Having multiple mode selections would be ideal. Also, wanted to comment that I’ve been testing this with my Sonos speakers (2 of them simultaneously) and at least one always fires off correctly, and about 90% of the time, both fire off at the same time with the alerts… I think this has more to do with SmartThings implementation for Sonos at this point than your code, but just wanted to share.

Awesome App, looking forward to more improvements!

-Rob

I do plan to add time-based and/or home mode based criteria ability for each device type event group (Switches - Group 1, Group 2, Group 3). I think that will add considerably more flexibility for various use cases.

The ST platform seems to process the commands sequentially, so it sends the command to 1 speech device, then the next and so on. It just throws the command out and moves on, the rest of it should be processing time in the device types and devices themselves (ie: ST says speak > Device-Type processes the phrase and what to do with it > Device-Type sends it to your device via your ST hub > your device processes and finally handles it by speaking and then resuming previous play if needed). When sending to my VLC-Things, I hear one of my speakers in one part of the house speak and complete the phrase before the second finishes processing the data and finally begins speaking, but that’s fine with me and I don’t think there is anything I can do to speed that up. My second VLC-Thing is running on a Rasperry Pi so it will have slower processing as well which I am sure plays into the delay.

Current near future plans are (no particular order):

  • capability.speechSynthesis support (Ubi). This shouldn’t be hard, I just need to figure out the best way to lay it out without cluttering up the configuration pages.
  • Add optional time scheduling for event groups to fire (on these days, when time is between xx:xxam and xx:xxpm; possibly)
  • Add optional “When in this mode” scheduling for event groups to fire
  • Add more sensor events (Humidity, Water sensor, Acceleration, etc)

How did you get v1.0 to work with ubi? I still have that version and all I see is that I can see and select my ubi’s, nothing is said when events are triggered.

Where did you get your Ubi Device Type code? I’ve tried searching and found some code ( here ) but the “speak” command for it hasn’t been coded in yet. It just mentions its a To Do function in the device type.

If you are using a different device type codebase for your Ubi do you mind posting it or sharing where you found it. I would like to see if it supports the Speak or musicPlayer function(s).

Other than that, I would say use 1.0.1 for the code cleanup and bug fixes from 1.0.0 and change all references of “capability.musicPlayer” to “capability.speechSynthesis”, then in the Talk function (starts at line 1008 in 1.0.1), change all references of “it.playTextAndResume” and “it.playText” to “it.speak”.

I use jodyalbritton’s smart app and device type for the Ubi you linked to.

I did not realize that it does not capability.speechSynthesis scripted, but the speech coding looks similar to the VLC device type. It does create a thing for each Ubi and all sensor data is available. There is only one limitation. You must request Ubi support give you Web API access and once you have that you can setup Oauth2 access.

This method does let me at least pull the other Ubi capabilites into the ActiON dashboard. Still need to figure out how to get the attributes, soundLevel and airPressure, and of course sound.

I do have another method of getting Smartthings status’s info into Ubi, but that method is a bigger handshake between the two systems.

Minor Release - 1.0.2

12/26/2014 - 1.0.2 - Corrected bug where Sonos would show up to be selected as a default speech device, but not as a custom speech device for each device/event group.

GitHub link: Big Talker 1.0.2
Source is also shared in the SmartThings IDE under “Fun & Social”.

If anyone wants to write in additional device event support (including Ubi speech support), I will welcome any support making this app better! Please keep the current coding structure (unless we discuss a more efficient structure) and submit a pull request on GitHub with your changes. I will attribute your major modifications/bug fixes to you in the release notes upon acceptance and release.

The author of the Ubi app/device type ( @jody.albritton ) has just updated the code to support the speak() function (Awesome!). I don’t have an Ubi to test it out. If you or someone else tests it and it works, I’ll further pursue adding Ubi support into the Big Talker project (without users having to make code changes themselves).

I do not know if you can just update your Ubi Device Type and Ubi ST App code or if you will have to remove your devices/things, update the code and then add them back through the Ubi ST App. The updated code is located at the authors GitHub here: https://github.com/jodyalbritton/smartthings/tree/master/theubi

After getting the Ubi code / devices updated, to make them show up in BigTalker, grab version 1.0.2 ( here ) replace all instances of “capability.musicPlayer” with “capability.speechSynthesis” (Note: if you’re using Sonos, it will no longer show up, so this is just for testing Ubi functionality).

I do not see the speak() command in your code. Maybe I am missing something, but the ubi device can accept the speak(message) command where message is the string you wish the ubi to say.

@jody.albritton you are correct. I forgot to mention that in my most recent post. It used speak() and speechSynthesis in version 1.0. I touched on the changes needed for testing about 5 posts up from this one which did include changing .playText and .playTextAndResume with .speak and capability.musicPlayer with capability.speechSynthesis. If it tests out I’ll add a cleaner approach to support Ubi in the app.

Ok, I’ve uploaded a version that should work with just speechSynthesis devices (such as Ubi). If this version works with the latest Ubi device type code released today (mentioned a couple of posts up), I’ll start working on merging the functionality into the next release of Big Talker so that both speechSynthesis (Ubi / VLCThing) and musicPlayer(Sonos / VLCThing) speech devices can be used without having to install different and/or multiple versions of the app.

12/26/2014 - 1.0.2-Ubi-Beta2 - Modified to use capability.speechSynthesis and it.speak() in order for users to test Ubi support. Note: This version will not work with Sonos. For Sonos support, use 1.0.2 (not 1.0.2-Ubi-BetaX). https://github.com/rayzurbock/SmartThings-BigTalker/tree/Ubi-test

1 Like

So stupid question…I installed the app wrong the first time, and then accidentally ran it twice to configure…so I now have 3 instances of the app in my smart apps, but only one of them actually functions (the one I did right). There is no delete button for the others, how do I get rid of them?

Not a dumb question! I have about 7 instances of it in my SmartApps. I’m still not sure which one, if any, I configured properly and I can’t figure out how to turn it all off… :smile:

You can uninstall the extra apps from the IDE

Click on My Locations
Click on smartapps
Click Edit

Uninstall

I think you may also be able to open the unused ones on your phone, edit the settings and get the delete option in the setup

@incapacitater @mkmark
Not a dumb question at all. It actually brought an unexpected issued to light.

You typically should find the Uninstall option after going into the BigTalker app instances on your phone, going to Configure, then scroll to the bottom. There should be a red “Uninstall” button at the bottom of the page.

Looking back at the code it looks like if you started to install the app and backed out before completing, it would never realize the app was partially installed so it wouldn’t show the Uninstall button for that instance. I didn’t expect the SmartApp to actually partially install without the user hitting Done, but ST appears to handle it this way if a user backs out during initial configuration. This can be resolved in one of 3 ways:

  1. Go into each extra instance, click Configure, configure the default speech device and hit Done (to complete the install for that instance). Go back into that instance and you should find the “Uninstall” button now at the bottom of the Configure page. Rinse and repeat until all unwanted instances are gone.

  2. As @kevintierney stated, you should be able to go into the IDE ( https://graph.api.smarthings.com ) > My Locations > smartapps > Edit > Scroll down to the BigTalker instances that you do not want > Uninstall

  3. You can search the code under def pageConfigure() and change uninstall: state.installed to uninstall: true and then Save and Publish for Me to make the button show up for current and future instances. In version 1.0.2, this is found on line 541.

I’ll fix this in Version 1.0.3 so that the Uninstall button is always there. Which by the way, if anyone wants to help test 1.0.3, the development releases are available here: https://github.com/rayzurbock/SmartThings-BigTalker/tree/1.0.3-Dev. I’ve fixed this in 1.0.3-Alpha7. You will find a few more events to speak on (acceleration, water, smoke, button), bug fixes (possibly some added, as this is the in-development version). I’m adding one or two more features and bug testing what I can before releasing 1.0.3. If you test the development versions and find issues, please submit an issue on Github, or PM me here in the community. Also I would appreciate knowing if you do not find any issues that everything seems to be ok for you in the dev release.

Since you’ve been so helpful and I’m rather clueless on some of these things, I have another question that’s smartthings sonos related. For whatever reason, both for Sonos Mood music and Sonos Weather (after the weather report) the option to have sonos play a track or station always comes up with no available tracks or stations to play. I’ve read on here that playing a playlist or station on your sonos through the sonos controller app will then place it in smartthings availability, for for me this hasn’t been the case. Is there some kind of custom app workaround or otherwise that I’m unaware of?

@incapacitater
I’m not sure. I do not have a Sonos to test with so I’m not familiar with how well it integrates into SmartThings overall. Others in this thread have been gracious to test out the Sonos functionality in Big Talker, hopefully they will chime in / PM you regarding your question.

I don’t have an Ubi either but am (hopefully) writing in support for Ubi for the 1.0.3 release based on the most recent released device type code for it.

My use / first-hand testing of BigTalker is with VLCThing. It’s free and I run it on a Raspberry-Pi which cost me $59 for everything I needed (Raspberry Pi, Case, Wifi card, Storage… I already had speakers).

If Sonos is playing something and an event fires after the notification is spoken Sonos doesn’t start up again. Volume control would be nice as well :slight_smile:

Do you know which version you are running (it should be listed at the top of the code for it in the IDE, or on the first screen of the configured app if using 1.0.2)

I am calling the playTextAndResume() function. The SmartThings Sonos device type handles the playing of the text and then resuming the audio. Early versions of Big Talker didn’t call this function and therefore didn’t resume. I’ve been told that 1.0.2 does.

The development version for the upcoming 1.0.3 release has volume control for Sonos/VLCThing built in. :smile:

@rayzurbock

I was finally able to test the ubi code and it works as is expected. Great Job!

1 Like