SmartThings Community

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

This sounds to me like a configuration that has not been handled properly/accounted for in the code.
The best advise I can give you is to login at https://graph.api.smartthings.com/ide/logs and then view your BigTalker related logs for errors when you attempt to access the status section of the SmartApp.

1 Like

Hi thanks for the help, below is the log

482d47b4-662d-4abb-8bb5-fd1c2278bcd8 12:43:50 PM: error java.lang.NullPointerException: Cannot invoke method substring() on null object @ line 4563

Seems also see this from Hello Home?

8cc26deb-acaf-429a-97a6-566c758a6e70 2:18:51 PM: trace getPhrases(), state.welcomeIssue = null

Hi, thanks for this!

This seems to work for me when testing in with VLC on. PC, however when testing on my Yamaha receiver (using the generic media rendered), it won’t talk.

On the display of the Yamaha receiver the source does change to “server”, then I get a “no content” message, then briefly the play icon (for half a second maybe) and then “no content” again. (Note that the generic media renderer seems to work ok, it is able to play radio for example). I tried to set a delay, but no luck.

Any ideas? Thanks!

I have a Yamaha receiver as well. I’ve never been able to get it to work with SmartThings. I finally gave up trying. In your case it sounds like it’s getting some instruction. Maybe the speech audio duration is too short for it? Try a long phrase and see if it plays. I would recommend turning on any available logging in the receiver and the generic media renderer. Perhaps the generic media renderer custom device type handler isn’t coded to convert text to speech or is using a custom text to speech service that isnt working. You’ll need to hit up its author or support community to troubleshoot it.

I thought the mp3 message was generated by Big Talker rather than the media renderer…?

I tried with a longer message, same story.

I see this in the logs:

Big Talker:
b2e05f78-0254-450f-9321-5a43a23fa8e9 5:25:39 PM: trace BIGTALKER(1.1.12) || TALK(motion)|mP| Yamaha Receiver MR | Current Status: stopped, CurrentTrack: [transportUri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, trackUri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, level:, status:stopped, station:SmartThings Message, album:SmartThings Catalog, name:SmartThings Message, trackNumber:1, artist:, enqueuedUri:, uri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, metaData:upnp:classobject.item.audioItem.audioBroadcast</upnp:class>upnp:albumSmartThings Catalog</upnp:album>upnp:artistSmartThings</upnp:artist>upnp:albumArtURIhttp://graph.api.smartthings.com/api/devices/icons/st.Entertainment.entertainment2-icn?displaySize=2x</upnp:albumArtURI>dc:titleSmartThings Message</dc:title>http://s3.amazonaws.com/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121 ], CurrentTrack.Status: stopped.
b2e05f78-0254-450f-9321-5a43a23fa8e9 5:25:39 PM: debug BIGTALKER(1.1.12) || TALK(motion)|mP| Sound: https://s3.amazonaws.com/smartapp-media/polly-tts/salli/motion_sensor_is_now_inactive.mp3 , 7
b2e05f78-0254-450f-9321-5a43a23fa8e9 5:25:39 PM: debug BIGTALKER(1.1.12) || TALK(motion)|mP| currentVolume:52
b2e05f78-0254-450f-9321-5a43a23fa8e9 5:25:39 PM: debug BIGTALKER(1.1.12) || TALK(motion)|mP| currentTrack:[transportUri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, trackUri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, level:, status:stopped, station:SmartThings Message, album:SmartThings Catalog, name:SmartThings Message, trackNumber:1, artist:, enqueuedUri:, uri:http://s3.amazonaws.com:80/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121, metaData:upnp:classobject.item.audioItem.audioBroadcast</upnp:class>upnp:albumSmartThings Catalog</upnp:album>upnp:artistSmartThings</upnp:artist>upnp:albumArtURIhttp://graph.api.smartthings.com/api/devices/icons/st.Entertainment.entertainment2-icn?displaySize=2x</upnp:albumArtURI>dc:titleSmartThings Message</dc:title>http://s3.amazonaws.com/smartapp-media/polly-tts/salli/7ff4726cb87d912cec0a355f763d48a3555ed85b.mp3?ts=1503851126121 ]

…and this in the media rendere one:
0eec95e5-0b34-4035-bb03-8c94343fab1b 5:30:00 PM: trace poll_()
0eec95e5-0b34-4035-bb03-8c94343fab1b 5:29:39 PM: trace Refresh()
0eec95e5-0b34-4035-bb03-8c94343fab1b 5:28:39 PM: trace Refresh()

Note that the same media renderer + big talk work on my Sony TV. (It doesn’t on my Jongo t4 thought… but that’s another story…)

Any other suggestions? (I’ll try in the media renderer thread as well…)

To make log reading easier, highlight them in the message and click the </> button above the comment edit box. It will format the logs better.

BigTalker makes a SmartThings API call to the textToSpeech() function when using a mediaPlayer device. This function causes SmartThings platform to do work in the background and convert a desired text phrase to an mp3 file and then hosts it on their servers. BigTalker gets a URL back from the API call that points to the MP3. BigTalker then sends a request to your device handler using it’s API calls playText(url), playTextAndResume(url), etc telling the devicehandler to communicate with your device and request that it play the mp3 at the given URL. If you’ve configured volumes, these get thrown into the function calls to your device handler as well. The Device Handler is what does the actual communication/control of your device.

(unrelated to your configuration but for the sake of completeness), In the case of speechSynthesis devices, no MP3 is produced and a simple API call to the function speak() is made to the Device Handler with the desired text. The device handler handles sending that text to the device to be converted to spoken audio.

I see in your logs that SmartThings returned the URL https://s3.amazonaws.com/smartapp-media/polly-tts/salli/motion_sensor_is_now_inactive.mp3 . I’ve checked this URL with VLC and it does indeed play.

Are these the complete logs?
I’m not seeing anything happen after getting the “Current Status”, Sound URL, “currentVolume” and “currentTrack” information. I’m not seeing the API call to playText, playTextandResume, or playTextandRestore. It appears to just stop processing.

Have you tried the BigTalker 2.0 development version to see if it will play them? That is where my development and troubleshooting focus is at now. It can run alongside BigTalker 1.1.12, just install it as a different smartapp (don’t overwrite your 1.1.12 code with it).

thanks for the detailed comments. i didn’t realise the textToSpeech is a ST function. I’ll have a look at the logs again, and try v2.0 of Big Talker. (But in the meantime I’ve also tried RemindR and Core, and get same results, so it indeed must be something with Yamaha/media renderer…)

You’ve built a great product and I love how it works with VLC thing, but I’m having an integration issue with Lannouncer. Trying to get it to work with my local Lannouncer device (an old Nexus 7p) and can’t seem to get the BigTalker SmartApp to “see” the Lannouncer as a text-to-speech device. The lannouncer device itself seems to work fine - I can directly send it CURL command and I can trigger speech and sirens directly from within smartthings, but when I try to add my lannouncer device within the Bigtalker smartapp, BigTalker only seems to recognize my VLC Thing devices.

1 Like

When you first install BigTalker, it can see either a music player device (VLC thing) or a speech device (LANnouncer). You can install another copy of BigTalker and configure it for a speech device. Your two copies can run concurrently. Once configured as a speech device, BigTalker should see your Nexus 7p running LANnouncer.

2 Likes

That was it!! I just had to add a new instance, flip a switch, and I’m good-to-go. Thanks so much.!

1 Like

Perfect! I love this community

Hi @rayzurbock,

I found something interesting after I downgrade my android smartthings app to a quite old version when I access the status tab I got ”you are not authorized to perform requested action" error

Thanks

Andrew

482d47b4-662d-4abb-8bb5-fd1c2278bcd8 8:20:36 AM: error java.lang.NullPointerException: Cannot invoke method substring() on null object @ line 4563

Hi,
Thanks for your effort in producing such a cool app.

I’m a SmartThings newbie here and so far I’ve installed Big Talker successfully with all my SmartThings sensors with Sonos and VLC Thing.

I have been trying to have Big Talker notify me when my contact sensor (my garage door) is open, but only when it has been open for 30 minutes.

Can you provide any tips on how to structure that? The built-in Samsung SHM custom event can do it, but unfortunately, the audio is unreliable and stutters (I’m suspecting the audio clip provided by SHM is too short).

You might want to take a look at WebCore which is a community written rules engine for SmartThings. It has a longer learning curve but is very flexible and can do what you want.

There is also a separate community forum:

Hope you guys can help me out with what I’m running into at the topic below:

Posted here also:

Just wanted to reply here and say I believe it is now working with the harmony activitities. However there is a pretty big delay before the announcement is made (20 or so seconds). There is a very small announcement delay with all of the other zwave devices on my smartthings network with announcements with VLC things utilizing alexa (just a few seconds, 2-3).

Would anyone have any suggestions for me with my setup for this delay with my harmony activities? (Very little delay with my zwave devices)

I’m thinking there is no possible fix since this communication I assume is having to go through multiple servers. Harmonies and then smartthings.

I’m up for any comments though.

I think you are spot on with this.
I’m not that familiar with the harmony stuff, but if its going out to the Internet for processing then being sent to Smartthings as a command, then being sent from Smartthings back out to their servers to convert text to speech and finally ordering your VLC device to go grab the mp3 of the speech and play it there are a lot of factors that come into play (including the speed and stability of your own Internet connection). The processing time of each of these services comes into play as well.

thanks for the pointers. Yes, webCoRE is very flexible indeed! I’ve managed to get it working as desired.

Big talker issue Not able to configure the Text-to-speech device.