Jump to content

Does anyone make an Insteon announcement speaker/device


Bill Morrow

Recommended Posts

Amazing voices at https://www.cereproc.com one could get the SDK but the cloud option is so easy, with two lines of code on pretty much any dev. language, you get a great voices. You can get 100,000 credits for £20 and that would last a long time in a house hold :) Voice can be test at the top of each page (black bar).

 

EDIT: I am playing with the cloud service and it is ridiculously easy and fast too.. I get 10,000 chars a month free, which is roughly 5 announcements a day. And if these are not enough can dip into the PayAsYouGo 100,000 for £20.

 

Sent from my S7 Edge using Tapatalk

Edited by TheFallenAngel
Link to comment

In the spirit of things to do once you get your system talking, the program I wrote to do the announcements has a couple of neat features:

 

1.  It checks for "seasonal" replacement words / sounds and makes the appropriate replacements.  I do this by placing "duplicate" sounds in numbered (1-12) directory folders.  If the word / phrase exists in the current month's folder, a replacement is automatically made.

 

2.  It allows for randomization by including multiple variances of the same word / phrase appended by -#.  For example "Hello-1.mp3" says "Hello."  "Hello-2.mp3" says "Hi".  "Hello-3.mp3" says "Greetings".  If numbered versions of a word or phrase exist in the audio folder (or month folder), one will be selected at random from those available.

 

Here are some example voice announcement functions that I have set up:

 

Announce exterior lighting turn on / off at sunrise and sunset (with time)

 

Announce arrival of mail and mailbox accesses

 

Announce visitor approaching

 

Announce me / wife arriving if the other is home

 

Welcome me / wife home when system disarmed

 

Wish me / wife a happy birthday (with a song included).

 

Announce count and times of doorbell rings when we were away

 

Announce count, times, and callers of missed calls when we were away

 

Announce completion of the dryer cycle

 

Announce time and / or temperature when requested

 

Announce all door / window opens and closings (ELK integration)

 

Announce ELK ARM / DISARM / mode (ELK integration)

 

Announce any ELK troubles (low battery, etc.)

 

Announce reminder every 40 days to change the furnace filters (manually reset when I change them)

 

Announce reminder to take out the trash on Tuesday nights

 

Announce notification of any exterior motion lights triggering

 

Announce reminders about Washington Capitals game and start times as leaving

 

Announce score updates for Washington Capitals games

 

Announce garage door openings and closings

I never thought about the random announcements........ But you can place a variable in a network resource.  I wrote a quick program to generate a random number and put it in a variable. Then placed that variable into the NR. So I tested it and it works!! Now I'm making 12 folders for the months so that I can have different sounds based on the months. Thanks for the great idea. I updated the set up guide if anyone wants to add this to theirs as well.

Link to comment

I never thought about the random announcements........ But you can place a variable in a network resource. I wrote a quick program to generate a random number and put it in a variable. Then placed that variable into the NR. So I tested it and it works!! Now I'm making 12 folders for the months so that I can have different sounds based on the months. Thanks for the great idea. I updated the set up guide if anyone wants to add this to theirs as well.

The random number in network resource will work, but I found it too likely that I would lose track of files and end up sending invalid "versions". That's why I ended up using the same resource, and having the speak routine handle randomization and substitution. It is able to parse what (and how many) options are actually available, and then select from them.

Link to comment
Cold Weather - 35'C - [ID 033A][Parent 0335]

If
        Module 'Climate' Temperature is -35 °C
    And Module 'Climate' Temperature <= -39 °C
 
Then
        Resource 'Weather Voice - Cold Weather -35'
 
Else
   - No Actions - (To add one, press 'Action')


I really shouldn't be programming this late at night when I had one too many in my system. My fuzzy brain some how doesn't think this program looks right?

 

Can someone who is sober, sane, and firing on all cylinders look over this simple program for me. This *proof of concept* program is supposed to monitor if the temperatures are from -35'C to -39'C and if so fire off the custom voice announcement I created.

 

For what ever reason the operators don't look quite right. 

Link to comment

 

Cold Weather - 35'C - [ID 033A][Parent 0335]If        Module 'Climate' Temperature is -35 °C    And Module 'Climate' Temperature <= -39 °C Then        Resource 'Weather Voice - Cold Weather -35' Else   - No Actions - (To add one, press 'Action')
I really shouldn't be programming this late at night when I had one too many in my system. My fuzzy brain some how doesn't think this program looks right?

 

Can someone who is sober, sane, and firing on all cylinders look over this simple program for me. This *proof of concept* program is supposed to monitor if the temperatures are from -35'C to -39'C and if so fire off the custom voice announcement I created.

 

For what ever reason the operators don't look quite right.

Module 'Climate' Temperature <= -35 °C
And Module 'Climate' Temperature >= -39 °C
I'm Gary Funk and I wrote this message. Edited by Gary Funk
Link to comment

Santa was a day late, so my Sunday project got bumped to after work last night.  Got everything setup and working!

 

This is the flow of my sounds so far:
Wired doors sensor > Raspberry Pi + PiFace Digital 2 > ISY > Raspberry Pi + AMP+ > ELK SP12-F flush-mount speaker

 

Out of 30+ door tests last night, only one time did the sound take longer than one second to play.  It was after a period of no activity, and it took 2-3 seconds to play.  I haven't been able to recreate that delay, but I'll keep my ears open.  

 

Using the guide on post #14, the only difference I found was that some menus were slightly different on the latest OpenELEC that I downloaded.

System>Settings>Web Server>Allow remote control>On

System>Settings>Music>Playback>turn off Play next song

 

were both

 

System>Settings>Services>Web Server>Allow remote control>On

System>Settings>Services>Music>Playback>turn off Play next song

 

on mine.  

 

Manually testing the JSON requests from a web browser, one very rookie mistake I made was typing in http://ipAddress/ and then pasting one of the JSON examples from post #14.

 

This resulted in a request that started with http://ipAddress//jsronrpc?...

 

The extra / in front of the JSON request caused it to bomb out with a file not found, which made me focus on the end of the request where I had the filename specified.   derp derp

 

Thanatar, thanks for sharing this awesome solution for playing sounds!!!  And thanks to so many others for the great ideas on how sounds can be used!

Link to comment

Thanks Gary will update the program code and see what happens. On a related note since the OpenElec has been turned off to play files in sequence.

 

Is there a command that can over ride that parameter just one time in a ISY Program then revert back to playing only one vocal file? So this is what happen as I was testing out a few programs to see what the results were. When I linked a KPL button as the scene controller to the activate the vocal program. I had included two separate files and when the button was pressed *Julie US* initially stuttered, stopped, then played the second file?

 

It quickly dawned on me the ISY Series Controller will not wait (pause) but will simply do what it was asked for which is fire off the network resources in sequence regardless of how long the sound file is. Obviously with red face in hand I added a wait in between the two NR's and *Julie US* did in fact play the NR files as expected.

 

My use case is to load some music files into the RPI and have different genres: Dance, Rock, Country, Classical, R&B, Top 40, etc.

 

The problem is I will literally have to add in a wait statement based on how long each song is before the next track is allowed to play. Does anyone have a more elegant way to accomplish this? I'm not home right now so can't test but another possibility was placing those music files in a folder and (IF) there is a JSON command that can over ride the Open Elec play once vs play all that would be the ideal solution.

 

Does that exist?

Link to comment

My use case is to load some music files into the RPI and have different genres: Dance, Rock, Country, Classical, R&B, Top 40, etc.

 

The problem is I will literally have to add in a wait statement based on how long each song is before the next track is allowed to play. Does anyone have a more elegant way to accomplish this? I'm not home right now so can't test but another possibility was placing those music files in a folder and (IF) there is a JSON command that can over ride the Open Elec play once vs play all that would be the ideal solution.

 

Does that exist?

 

 

Looks like the API supports Playlists.  Maybe use Kodi directly to create a Playlist for each genre, and then create a ISY NR for each Playlist?

Link to comment

That would be great if someone has time to look up what that API call is and format it correctly into JSON NR that would be greatly appreciated.

 

Really wish I was close to a computer instead of sitting here in the back seat watching snow fall.

Link to comment

That would be great if someone has time to look up what that API call is and format it correctly into JSON NR that would be greatly appreciated.

 

Really wish I was close to a computer instead of sitting here in the back seat watching snow fall.

Here you go.

/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:1,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%22special://profile/playlists/music/Test.xsp%22},%22options%22:{%22repeat%22:%22all%22}}}

 

You'll have to create a Smart Playlist first. http://kodi.wiki/view/Smart_playlists Mine was named test. The good news is it will continue to play even with play next turned off.

 

Next you may need a Stop NR when you are done listening.

/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 }, "id": 1}

Link to comment
  • 1 month later...

To those with this system working.

Thank you for the details already posted. 

I have most everything figured out but I am stuck on something that seems as though it should be easy - yet I have struggled long enough and want to ask for your guidance.

 

How do you get wav files into the music folder root?

  I have read about scanning them in using scan item to library.   I tried that and it puts the file into an album rather than into the root of the music directory.

I have read about needing tags in order for a wav file to be scanned in?  I tried adding a tag with Mp3tag.  I can see the tag is added yet I cannot scan the wav file into the music directory root.

    With the wav file loaded on a usb flash stick I can navigate to it from within Kodi and play the wav file fine from the usb stick.

I can then scan it to the library and see it in an album. I can also play it using the keyboard/mouse from the album.

 

Just cannot figure out how to get it into the music folder root so that the NR command example provided can then play it.

(e.g. "storage/music/my.wav"

 

 

Any help much appreciated.

Ela

Link to comment

To those with this system working.

Thank you for the details already posted. 

I have most everything figured out but I am stuck on something that seems as though it should be easy - yet I have struggled long enough and want to ask for your guidance.

 

How do you get wav files into the music folder root?

  I have read about scanning them in using scan item to library.   I tried that and it puts the file into an album rather than into the root of the music directory.

I have read about needing tags in order for a wav file to be scanned in?  I tried adding a tag with Mp3tag.  I can see the tag is added yet I cannot scan the wav file into the music directory root.

    With the wav file loaded on a usb flash stick I can navigate to it from within Kodi and play the wav file fine from the usb stick.

I can then scan it to the library and see it in an album. I can also play it using the keyboard/mouse from the album.

 

Just cannot figure out how to get it into the music folder root so that the NR command example provided can then play it.

(e.g. "storage/music/my.wav"

 

 

Any help much appreciated.

Ela

 

Hello ELA,

 

Once you enable SAMBA on the RPi (Open Elec) you simply go to my computer under the network and you should see the directory. Selecting the music folder will allow you to drag and drop the WAV files from what ever destination.

Edited by Teken
Link to comment

Hello ELA,

 

Once you enable SAMBA on the RPi (Open Elec) you simply go to my computer under the network and you should see the directory. Selecting the music folder will allow you to drop and drag the WAV files from what ever destination.

 

You should share your WAV files on a free service like Dropbox for people who want to do the same thing as you. Would save many a lot of time and help the community.

  • Like 2
Link to comment

OK, what I have done thus far so please check off anything I may have missed.

 

- RPi: I enabled both analog and HDMI in the program and confirmed sound is indeed heard on the HDTV and USB Speaker.

 

- Confirmed the IP address of the RPi which is 192.168.1.137

 

- The test NR looks like this simply copy and pasted from your example and for the sake of doing it I added an underscore to the test file called Entry_MS_Low_Battery.wav just in case the system wasn't liking the space between the words.

 

- When I press TEST for the NR I receive the expected 200 which I have appended in this reply.

 

- I've initiated the NR in the dummy program just in case there was a difference in behavior still no joy.

 

 /jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:%221%22,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%22storage/music/Entry_MS_Low_Battery.wav%22}}}

Hello Teken,

   May I ask you to elaborate on what fixed your issue where NR was not working from ISY ...    If it was something other than remote settings in Kodi?

 

I have just purchased the network module and this is the first use of same.   In Kodi I have all the remote controls turned on.

I can send from a web browser and Kodi responds and plays the wav file fine. 

Yet the ISY "test" for the NR responds just as you have posed here.   It seems the NR command syntax is correct but for some reason the ISY is not sending the command out the HTTP.     I have turned off the firewall and virus detection temporarily to see if they were holding it up but no luck.

 

Since I have never used the NR module before I am wondering if there is some setup I may have missed.

Link to comment

Hello ELA,

At the gym right now so will offer you a comprehensive *how to* link with lots of pictures to follow and troubleshooting steps upon my return.

 

EDIT: I just sent you a PM with the *How To* which indicates the trouble shooting steps to follow. Please let me know if it solves your issues. If not all of us can go through the next steps to accomplish the same.

Edited by Teken
Link to comment

Nice write up Teken,

Very kind of you to save others the pain you must have had went through :)

 

Damn those under_scores!   I had added them as a test at the ISY NR end but forgot to change the file name in the music folder also.

 

LOL!

 

Glad the *How To* helped you track down the little evil under score. This high lights, one can not take what the terminal window says literally.

 

Meaning just because it returned a successful 200 Ack it doesn't mean X will operate as expected. You noted in my *How To* the only proof in the puddling is when Julie U.S. speaks! Now, your next step is to take advantage of the fantastic *How To* from Blueman 2 in making the Amazon Echo *Alexa* offer you two way vocalization.

 

This is what I am working on right now and its been simply fantastic . . .

 

Please let me know if you are needing any help in this area also . . .

 

Best Regards

Link to comment
  • 1 month later...

A follow up note:  for anyone who might use a Rpi3 with built-in Wifi on a project such as this:

The wireless turns off (by default) every so often as part of Power Management in Openelec 6.0.3 ( Iinux kernal 4.1.18) and that was somewhat frustrating.

Resulted in miss-fires of network resources from ISY to RPi.   Ping times were excessive - even before timeouts occurred.

 

Upgrading to Openelec 7.0.1 (Linux kernal 4.4.41) appears to have corrected this.

  • Like 1
Link to comment
  • 3 weeks later...

Are you sending custom sounds/recordings stored on a an always on PC/NAS using the ISY NR to Elk speaker?

Not currently. I'm using concatenations of built in phrases that Elk supports. It works for the most part. Edited by MWareman
Link to comment

I recently installed an ELK system (thanks Scottmichaelj!), which replaced the Raspberry Pi/AMP+ solution that I've been using.

 

I only have one in-wall speaker, so I disconnected the Pi/AMP+ and have the ELK connected.  This way I get all ELK announcements/prompts/etc directly.

 

In terms of crispness, the ELK lady sounds like she's chewing on cotton balls when she speaks (compared to the WAV files I've been using on the Pi/AMP+).  I've tried both the ELK-73 Echo and ELK-SP12F Flush Mount speakers, and there wasn't any real difference in quality. 

 

Been considering adding the ELK components that let you use your own WAV files, but seems kind of spendy for what you get.  Oh well.  lol

Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...