Android as a Speech/Alarm Device released! And Updated!

@Phil_Panfili, I use it long-term with a tablet that is just sitting there, not plugged in except once in a while when being used for quick games or SmartThings. It doesn’t have to be “on” in the sense of lit up, just on in the sense of sleeping. It will still talk. Just ensure the WiFi is set to never sleep; the screen doesn’t matter.

Mine is plenty loud without an external speaker, but you might want to consider a mini-headphone wire. Probably more reliable than Bluetooth for long periods. Based solely on the troubles I have with headphones when running, but I find wires more reliable.

anyone else having trouble getting to the settings menu? it just dies when i click on it

Looks like its only the version on the play store, when i uninstalled it and side loaded it from the site i can get to the settings menu

1 Like

I wasn’t able to get to settings menu either…Still cant…I downloaded from playstore too…I will have to try to side load to see if I can get it to work.

I got the apk from here

If any of you are interested, Rule Machine can now speak messages using this.

3 Likes

With this great enhancement, I maybe setting up an android tablet wall mounted in the not to distant future to take advantage of the more dynamic nature of this RM method of input.

For now, I am using a Aeon Doorbell with prerecorded messages to announce static events in my HA environment. Example - Night Alarm announcements in the master suite - “Down Stairs Door Open” or “Garage Motion”

I suspect I will keep this up because the Aeon Doorbell implementation I believe will be more stable than android plus apps - android updates, app updates, etc - that could effect the reliability of the announcements. But I think the dynamic text to speech input ability of using the android is great, and with RM’s ability to leverage this makes it too awesome to pass up for those things that don’t require the level of reliability I hope to get out of the Aeon.

Hey guys, thanks for using BigTalker and tagging me into this thread. I will be looking into the issues with BigTalker working with 1.1.3 and apparently not the 1.1.4-Beta versions. I have to get the latest Android release installed on my kids phone to install LanDroid and test it out. I’ve been waiting on the ISP to release the update and they have now.

Also, In a near future release of BigTalker, I plan to add a token to allow you to play an MP3 from an online source of your choice for events… Something like %mp3=http://www.domain.com/path/to/file.mp3%. This will give BigTalker the ability to play your Dog Bark, Star Wars Lightsaber or hosted speech phrases (to get over the SmartThings TextToSpeech conversion issue). #StayTuned my friends.

3 Likes

Right. As I mentioned five days ago, the sideload version is newer… but has some incomplete stuff in it.

I’ll get it all updated soon on the Play store. I’m adding some more cool functionality.

Fwiw, I can’t seem to open the settings menu either.

@matt From the sideload version or from the Google Play version? The download at KeyBounce should work.

I’ve been having what seems to be the same issue some have reported where sounds no longer work after the Android service has been running for a while. Stopping and restarting the service fixes it every time. It seems to happen once a day, usually in the morning. I opened up the logcat and see the following traces around all failed attempts to chime when a door opens:

01-02 10:33:59.281 12587-12610/? I/LANnouncer SocketServic: Connection received from /192.168.0.114
01-02 10:33:59.290 12587-7955/? I/LANnouncer SocketServic: Received data: GET /&SPEAK=@#ALARM=CHIME&@DONE@ HTTP/1.1
01-02 10:33:59.291 12587-12587/? I/LANnouncer SocketServic: Received Socket Message: GET /&SPEAK=@#ALARM=CHIME&@DONE@ HTTP/1.1
01-02 10:33:59.291 12587-12587/? D/LANnouncer SocketServic: Trimmed input to GET /&SPEAK=@#ALARM=CHIME
01-02 10:33:59.291 12587-12587/? D/LANnouncer SocketServic: Removed speak envelope: ALARM=CHIME
01-02 10:33:59.291 12587-12587/? I/LANnouncer SocketServic: Parsed Commands:[ALARM: CHIME]
01-02 10:33:59.319 12587-7958/? I/OMXClient: Using client-side OMX mux.
01-02 10:33:59.323 12587-7958/? E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
01-02 10:33:59.436 12587-12587/? W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client; transfer 4, track 44100 Hz, output 48000 Hz
01-02 10:33:59.436 194-908/? E/AudioMixer: AudioMixer::getTrackName out of available tracks
01-02 10:33:59.436 194-908/? E/AudioFlinger: no more track names available
01-02 10:33:59.436 194-908/? E/AudioFlinger: createTrack_l() initCheck failed -12; no control block?
01-02 10:33:59.437 12587-12587/? E/AudioTrack: AudioFlinger could not create track, status: -12
01-02 10:33:59.438 12587-12587/? E/SoundPool: Error creating AudioTrack

For comparison, here is a working example after restarting the service:

01-02 12:15:14.131 8083-8106/? I/LANnouncer SocketServic: Connection received from /192.168.0.114
01-02 12:15:14.141 8083-16423/? I/LANnouncer SocketServic: Received data: GET /&ALARM=CHIME&@DONE@ HTTP/1.1
01-02 12:15:14.143 8083-8083/? I/LANnouncer SocketServic: Received Socket Message: GET /&ALARM=CHIME&@DONE@ HTTP/1.1
01-02 12:15:14.144 8083-8083/? D/LANnouncer SocketServic: Trimmed input to GET /&ALARM=CHIME
01-02 12:15:14.144 8083-8083/? I/LANnouncer SocketServic: Parsed Commands:[ALARM: CHIME]
01-02 12:15:14.193 8083-16426/? I/OMXClient: Using client-side OMX mux.
01-02 12:15:14.205 8083-16426/? E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
01-02 12:15:14.312 8083-8083/? W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client; transfer 4, track 44100 Hz, output 48000 Hz
01-02 12:15:14.314 194-635/? D/audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
01-02 12:15:14.324 194-635/? D/audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
01-02 12:15:14.324 194-635/? D/ACDB-LOADER: ACDB -> send_afe_cal
01-02 12:15:14.324 194-635/? D/audio_hw_primary: enable_snd_device: snd_device(2: speaker)
01-02 12:15:14.332 194-635/? D/audio_hw_primary: enable_audio_route: apply and update mixer path: low-latency-playback

I don’t think your code is published anywhere and I’m no Android expert, but a quick google search seems to indicate you may not be releasing audio resources properly after using them: http://stackoverflow.com/questions/11964623/audioflinger-could-not-create-track-status-12

Thank you for reporting this. I haven’t been having that issue and can’t reproduce it; I’m using SoundPool in the documented fashion, which should handle resources (especially since there’s only a few.) But I have made changes that should proactively protect against this. They’re in Version 12, which should be live in a bit.

I’m using the version off Google Play. I’m not familiar with sideloading apps, but I’ll figure it out and give it a try. (The Android device is rooted so that could be the cause of issues too. I’ve seen other app developers saying they could make no guarantees about their apps running custom ROMs.)

There’s a new version on Google Play now too. Please let me know how it turns out. All my devices are running custom ROMs. The one thing I won’t support is Marshmallow; I can’t stand the changes to external SD Card access.

So if we are running marshmallow we should not upgrade to the new version?

Oh, nothing like that! I haven’t broken anything in Marshmallow. I simply gave up on running it on my devices, so I won’t support attempts to deal with the SD Card or Dropbox support on Marshmallow. It all should work fine. But, in the ideal world, Google wouldn’t remove access to external SD cards either.

1 Like

@bravenel 's Rule Machine supports cameras… which now LANnouncer is one. You can tell it to take a photo directly from the Android camera using LANnouncer. That photo will appear in the SmartThings notifications area, and in the carousel in the LANDroid device page. (Yes, the naming is a bit inconsistent. Thanks, Google.)

But… LANdroid can also take photos from other cameras, IP Cameras, such as the AMCrest PRO HD. Just configure it up on the Camera settings page, and in Rule Machine, set up a rule that says… @#RETRIEVE=camera name from LANnouncer
Your photo will be taken and dumped in your dropbox folder under apps/LANnouncer!

2 Likes

This is so cool.

I’ve now got it running with just one contact sensor (the fridge) on a Nexus 7 Android tablet. I paired the tablet it with our Amazon Echo, so the audio runs through that, which is a better speaker than the tablet. My wife is rolling her eyes as I open and close the fridge and the Echo announces, “the fridge is open. The fridge is closed. The fridge is open…”

The Android audio isn’t as good as the Alexa voice, but there are a few premium voice synthesis apps in the Google Play Store that you can use as the default voice renderer in Android. The one I installed, Acapela, sells decent voices for only a few dollars. (I’m testing a British English one that’s sort of Jarvis-ish, which isn’t too bad.)

Probably not a good question… .but what would it take to get to get this to run under JellyBean or Kitkit? All of my Android devices are old and none run Lollipop. I think there are custom Lollipop ROMs for 2 of them; I’m looking into that.

1 Like