SmartThings Community

BigTalker 2.0 -- Development

3 Likes

Thanks Michael, but what I have in mind is for an app to announce the time every 10 minutes between e.g. 06:00 and 07:30, interrupting the currently playing music, so that everyone in the home knows how long they have to get ready for school/work etc. This should obviously happen automatically during that period. And maybe, during other times like over weekends, interrupt the music every hour on the hour to announce the time (or chime the time like an old-fashioned grandfather clock)

Ironically, I have a feature just for that in the next month or so using the Ask Alexa app. Not sure if you have an Alexa, but it actually isn’t required for this ‘scheduler’ feature. I can go into more detail if you’d like, but if you don’t have an Alexa I actually don’t recommend you go through the hassle of the install as it is a very large app for just this little feature. However, if you DO have an Alexa, it will give you EXACTLY what you are looking for in terms scheduling and voice notifications/reminders to external speakers.

1 Like

I do have Alexa.

1 Like

Excellent…In that case you will want Ask Alexa…either now to get the installation over with or after I release the scheduler extension.

Let me know if you need assistance setting it up. I would start here: http://thingsthataresmart.wiki/index.php?title=Ask_Alexa

The nice this is that Big Talker is compatible with Ask Alexa in that you can pump output from BT to Ask Alexa…not much use right now, but when push notifications come from Amazon all partner apps will then be able to use Alexa as their output device.

Let me know if you need anything with the setup. If you ALREADY have Ask Alexa I may be able to give you a sneak preview into the new features to ensure they work for you.

1 Like

I recently started testing BT2 and am running into similar issues I was having with BT1. The issues revolve around events that happen back to back and that only make sense if announced promptly and in the correct order. An example is the door unlocked, door open, door closed and door locked. The announcement has to happen quickly and in sequence… but both BT 1 and 2 suffer from some degree on “tongue tripping” so to speak. Messages are stuttered or truncated and in some cases there is a long delay. I realize that a component of this is how fast the contact sensor and lock both report their status so addressing this may be impossible… however I keep wondering the same thing, which is:

Some “things”, such as a door, can have more than one correlated status… open / closed and locked / unlocked. Why doesn’t ST support an object “Door” that has device lock, and contact open/closed associated with it? Given ST doesn’t support this, it may be ideal for BT to have the ability to configure correlated announcements for the same “thing”. Right now, if I were to use the default setup, I would get messages that say “front door lock is now unlocked” and then “front door is now open”. The first issue is that I prefer it say “front door is now unlocked” rather than using the actual device name (which has to be more detailed than just ‘front door’) and the second issue is that unlocked, open, closed and locked often happen very quickly so it would be ideal to consolidate them when possible. To address these issues I have 1 child for each door so that the unlocked / locked can be hardcoded with the door name rather than having to use the door lock name, and then I shortened all the messages eliminating “is now”. It is still not ideal though… If BT had the concept of door, with a name for it that it can use to announce a status, this would eliminate the issue of devices with longer more descriptive names, and then it might even be able to say “front door unlocked and open” or “front door closed and locked”… this may be harder to achieve given the multiple devices communicating at different times but I just have to wonder…

It would be nice if ST supported this natively though. It appears ST, Alexa, etc are all setup for those who have a tiny number of devices that can be given non descriptive names such as “front door”, “light”, “lock” but as soon as you have a number of devices where you need to know which aspect of a door, or which light, etc then you have to use longer names like “Master Bedroom Table Lamp” which can be a tongue twister to say but it tells you room and device. Now… if Alexa supported the concept of “Room” and an Echo associated to that room… we could say “turn on table lamp” and it would know which light to turn on… but this is a totally different topic…

2 Likes

This has been a struggle forever. Events are instantaneous and the newest event can interrupt execution of the previous. I attempted to resolve the back-to-back notifications in BT2 by introducing a talk queue with a minimum delay time between events. Can you try adjusting line 3216 of the parent app (parent app version P2.0.a8) in BT2 to increase the delay between talk events?
Line 3216 sets this delay to 6 seconds.

def minDelay = 6 //Minimum seconds between talking

1 Like

Can someone point me to the correct post? I’d like to use the Sonos as TTS for events via BigTalker but cannot find how to get Sonos to show up as a speech device in BT. I used LANnouncer in the past with BT and it worked well. What’s the piece I’m missing in BT? A custom DH for Sonos? A TTS SmartApp?

Ah, I suppose I need to change the speech synthesis mode someplace. Digging more. It’s been awhile since I set this up.

Unfortunately, musicPlayer or speechSynthesis mode can only be set during the install of the BigTalker SmartApp.
For Sonos, you need to be in musicPlayer mode.
For LanNouncer, you need to be in speechSynthesis mode.

You can either uninstall and reinstall the app from the SmartThings mobile app or go to the Marketplace (since you already have the BigTalker code published in your IDE) and install another instance choosing musicPlayer mode during initial setup.

I recently got a Google Home, and I’ve set it up to announce BT events using the MediaRenderer SmartApp and BubbleUPnP server running on my Synology.

This combination strikes me as sub-optimal for a number of reasons, not least of which is the long delay between the time an event is triggered and an announcement is made on the speaker.

I stumbled across a DTH that implements the Cast API here, and I’m working on a Docker image for the node.js proxy that is required. I’d be very interested in seeing Google Cast devices supported as a native device type for BT.

1 Like

Any chance of adding this feature into 2.0. Or is it only going to be available for 1.1.12? Adjusting the volume for announcements.

This is in 2.0. In the parent app you set the default volume for announcements. then in the child app you can override the default announcement volume.

1 Like

I must be blind because i can not see it. I am looking in the BigTalker-Dev-Parent app and I cant find it. Can you message me a screenshot.

Can you please add more personality to the app? Thanks.

1 Like

Launch BigTalker-DEV-Parent (Scroll down and make sure that you are at Big Talker P2.0.a8). The default volume setting is on the Configure Defaults page. Then in each one of your configured event groups, use “Set volume to (overrides default)”

Edit:
Just to follow up for anyone else following this question or that may have the same issue.
@OrangeScuba and I discussed via PM and found that BigTalker was installed in speechSynthesis mode which does not support or expose the volume controls. The SmartThings API does not support changing volume for these devices with the Speak() function. musicPlayer mode does expose the volume controls. Which mode to use depends on what SmartThings DTH (Device Type Handler) or the custom DTH you are using supports to interface with your device(s) for talking.

1 Like

The personality structure is built into the code in a way that makes it easily expandable, but I need good examples to use. I’ve incorporated most of what I’ve seen offered so far. I just need more ideas that would be useful to most users.

The personality code structure allows for specific random personality based on event type (switch, contact, etc), event action (on, off, motion active, inactive, etc) as well as an overall generic pool that would make since/apply to any phrase spoken that is not event type or event action specific. I pull from both the specific event type, event action and generic pools at random to minimize annoyance of repeats (unfortunately the pools are so small right now that frequent repeats are unavoidable). It allows for prefixing or appending the specific personality phrase to the users original desired phrase.

ie: Users desired phrase on a switch ON event might be “The light is now on”, the user has personality option turned on, personality function determines that this is an ON event (which has it’s own generic ON pool), keys on the word “light” to pull from the “light” event type pool or it uses the overall generic pool at random and either uses a prefix/suffix phrase from one of the three pools (On event, Light event, overall generic pool).

  • Light pool might say “The light is now on, Where are my sunglasses”
  • ON generic pool might say “The light is now on, there goes the electricity bill”
  • Overall generic pool might say “Hey there, the light is now on”

Current pools are (PRE = prefixed; POST = appended to the original phrase)

  • Overall generic pool
  • “{PRE}Hey there”
  • “{PRE}Don’t mean to bother but”
  • “{PRE}All I know is”
  • “{POST}that is all I know.”
  • ON event pool
  • “{POST}there goes the electricity bill!”
  • “{POST}the same old thing everyday.”
  • “{PRE}Oh, Hi”
  • OFF event pool
  • “{POST}It’s about time!”
  • “{POST}time to save some money!”
  • “{POST}going green are we?”
  • “{PRE}Oh, Hi”
  • LIGHT ON pool
  • “{POST}please don’t forget to turn the light off”
  • “{POST}night vision goggles would do the same but I guess they are more expensive.”
  • “{POST}Thanks Thomas Edison!”
  • “{POST}Wow, this is bright!”
  • “{POST}Where are my sunglasses.”
  • “{POST}there goes the electricity bill!”
  • “{POST}the same old thing everyday.”
  • “{PRE}Oh, Hi”
  • LIGHT OFF pool
  • “{POST}It’s about time!”
  • “{POST}time to save some money!”
  • “{POST}wow, it’s dark”
  • “{POST}going green are we?”
  • “{POST}I’ll still be here, in the dark.”
  • “{POST}Hey! You know I am afraid of the dark.”
  • “{POST}Please don’t leave me alone in the dark.”
  • “{PRE}Oh, Hi”

There are so many more event actions/types to add (motion, buttons, etc).

1 Like

Here is two
For ON " It is about time it is awfully dark in here"
For OFF " Good thing you turned it off otherwise I would have"

For On " Glad you are here I was lonely"

1 Like

I’m showing version 1.1.12 in my SmartApps IDE panel. I’m pretty sure I am getting updates from the main repo. It’s rayzurbock, SmartThings-BigTalker, & master… right? There’s no 2.0 out there to mess with yet, right?

2.0 is alpha and a different branch