Announcement

Collapse
No announcement yet.

Trigger Alexa Routines from Homeseer using Voice Monkey

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Trigger Alexa Routines from Homeseer using Voice Monkey

    I've been wanting to be able to trigger Alexa Routines from Homeseer for a while now and it looks like there is an Alexa Skill (Voice Monkey) that is up to the task. Once you add the Voice Monkey skill to Alexa, you can generate Voice Monkey Triggers and then create Alexa Routines that respond to the triggers including the ability to make announcements; Homeseer can trigger the Alexa Routines by using a URLAction command for a URL that Voice Monkey will generate for you --- it works.

    Here is the URL:

    https://voicemonkey.io/



    #2
    Further to this, when coupled with a Zoos Zen34 switch, I'm able to invoke Alexa routines with the push of a button and get customized text-to-speech confirmation from an Echo device of my choosing:

    Button Press on Zoos Zen34 Switch

    -triggers (via Zwave)

    Homeseer Event (along with Device Actions, etc)

    -triggers (via URLAction command)-

    VoiceMonkey

    -triggers (via Alexa Skill)

    Alexa Routine (Device Actions, Customized Text-To-Speech)

    Comment


      #3
      I looked at this when you first posted. Looks great until you read the small print where its free during beta but they will charge a subscription fee at some time. Basically that means when they have enough user base who depend on it. IFTTT comes to mind!
      Jon

      Comment


        #4
        While this is awesome from a technology point of view, the bottom line is that nothing is free... this service has costs that need to be covered. This statement is ambiguous and troubling:

        "How much does Voice Monkey cost?
        Voice Monkey is FREE whilst in BETA and we plan to keep it free as long as possible.

        We’d love to offer this as a free service permanently but behind the scenes there are infrastructure and maintenance costs.

        We’ll keep it free as long as we can, and if demand puts too much pressure on costs, we’ll let you know with plenty of warning if we introduce pricing structures."

        So basically, they are going to monetize the users somehow... you just don't know how

        Comment


          #5
          I find this to be very interesting and if they eventually monetize it ... oh well. if it's of a great use to me and they are not charging a lot....i'll pay for the service.
          I signed up for it last night, haven't had a chance to play with it yet.

          Remind me of another skill I am using called "Notify-Me" for echo. I have adapted the script and I use it a lbit for things like take out the trash, or to notify me of BLLAN reported outages of my cameras and whatnot. I see the yellow ring, I ask for notifications, and I get a notification from notify me that x camera is not responding, or that it is responding, or to take out the trash.

          I could see doing similar things with this potentially on a more immediate nature, whereas the notifications sit and wait for you to ask for them.

          Addendum:
          currently, for voice notifications with my Alexas throughout the house, I have an Echo Dot mounted directly under the speaker of my HS machine. it does a speak of "Echo announce" (4 sec pause) and then whatever I want to be announced through the house. it's kinda ghetto but it works.
          Last edited by RogerL; April 17, 2021, 03:35 AM. Reason: edit to add current method

          Comment


            #6
            well, I had a little time to play with it...and it works great.
            I adapted the script I had for Notify-Me.
            it will allow you to run one script with a parameter of the monkey you want to run.
            I've only tested it with one monkey. but you should be able to call any of the (up to 300) monkeys you create

            I created a routine in alexa for the "living-room-monkey" to speak a phrase when the monkey is called
            Click image for larger version

Name:	voicemonkey3.PNG
Views:	769
Size:	77.2 KB
ID:	1469322

            here is the event in HS3 to "call a monkey" routine.

            Click image for larger version

Name:	voicemonkey1.PNG
Views:	778
Size:	23.1 KB
ID:	1469321
            I'll end up renaming the vb file from living-room-monkey to something more generic... like "call-a-monkey.vb" sounds good, right?

            here is the script. you'll have to insert your own tokens
            Click image for larger version

Name:	voicemonkey2.png
Views:	822
Size:	18.9 KB
ID:	1469320
            So create some monkeys first, then assign routines to the monkeys to say whatever you want.
            then create the events to call the monkey you want, with whatever trigger you need.

            Click image for larger version

Name:	voicemonkey4.PNG
Views:	776
Size:	17.4 KB
ID:	1469323

            Hope this is helpful.

            Roger

            Comment


              #7
              Hi All, I was playing around to make a more "generic monkey".... so now instead of making a voice monkey for each statement you want spoken, and then creating a routine for each monkey in Alexa, and then activating that monkey with HS... I have a script to let you use one configured monkey (I call him "speak-monkey") then I have only one routine in Alexa, (also called speak monkey) and then I have one event FOR EACH time you want the voice monkey to speak using the parameters fed to the script.

              the only downside to this version vs the preconfigured speech specific in the routine is this will only go out to one selected Echo.
              Whereas with the other method I first used you can actually announce to a speaker group by using the "Announce" action instead of the "skill" function.
              Unfortunately, in order to use the parameters it looks like you have to call the skill ...unless someone else figures a workaround.

              So here's the voice monkey settings: simple, just create the monkey.
              Click image for larger version

Name:	Capturemonkey3.PNG
Views:	938
Size:	15.4 KB
ID:	1469843

              Here's the Alexa routine:
              Click image for larger version

Name:	Capturemonkey4.PNG
Views:	758
Size:	90.4 KB
ID:	1469846

              Here's the new event:
              Click image for larger version

Name:	Capturemonkey1.PNG
Views:	763
Size:	20.1 KB
ID:	1469844

              and finally the new script. you'll of course have to use your tokens.
              Click image for larger version

Name:	Capturemonkey2.PNG
Views:	772
Size:	19.1 KB
ID:	1469845
              So remember, if you want to announce to all or several of the Echos you may have, you'll need to use the first script and routine system i showed.
              If you only have one Echo, (or want to setup multiple spoken items for only one of your Echos, then you can use this method shown here.

              if someone can figure out a way to do this new way with it being spoken to multiple Echos, that would be great.

              the term "announcement" being used by Voice Monkey in their API is not the same as used within Alexa for an announcement (which broadcasts from all devices)

              Comment


                #8
                Well I did a big ol' Rube Goldberg in the events.... but I have my announce to all Echos using the Voice Monkey, and I get to use the substitution voices from Voice monkey too.

                I created a Monkey for each of my echo devices (all 8 of them)
                I created a routine in Alexa for each one specific to announcing in their own room.
                I created a script for each one in HS to allow use of replacement variables.
                I created a master script that runs all the other scripts.
                I created a virtual device solely to hold the text i want to speak in it's string.

                Now for whatever I want them all to say, I use an event triggered by whatever I want to assign the text string to the virtual device.
                (using Easy Trigger for that function) (Device 1063)
                Then after the text is assigned to the virtual device, I run the master event that runs all the individual room events.
                In the individual room events the scripts have their parameter set to the replacement value $$DTR:1063:
                So that makes them all speak the same thing in each room.

                And now that I have the infrastructure setup.... anything I want said in the posh British accent of "Brian" gets said to all the rooms.
                and for each different whole house announcement I want, I just need an event to assign the string to device 1063 before calling the master event.
                it's a three tiered system....but the two bottom tiers are built and working...all I have to do is put the cherry on top for each announcement.
                I can retire the echo that sits under the HS speaker that was doing the "Echo announce"(4 sec pause) and then saying something.

                It probably ain't pretty, but it works and I'm sure some genius could write a plugin or better scripts to do it all neatly.... SO PLEASE DO! 😁

                Comment


                  #9
                  I assume they all announce at slightly different times and not in sync with each other?
                  Jon

                  Comment


                    #10
                    Originally posted by jon00 View Post
                    I assume they all announce at slightly different times and not in sync with each other?
                    that is true.... but I had that problem before just using the native Alexa "echo announce" feature. Which was HS speaking to the echo dot, and then it sending it to all the rooms.
                    I need to test it some more, but for the most part (so far) it's no worse sounding than it was

                    edit to add....but now it's in an English Accent too! lol

                    Comment


                      #11
                      Many thanks to RogerL for his excellent contributions to this thread! I just started using Voice Monkey today, and I used his ideas to create a very similar but different implementation for using Voice Monkey to give speech to my HomeSeer event. RogerL's work was a HUGE jump start for me. I hope to return the favor to the community.

                      The main differences in my work from Rogers are as follows:

                      1. I converted the script over to C# instead of VB (I like C# much better).

                      2. I revamped the way you configure the HomeSeer event in a way that (in my opinion) makes the configured event show better in HomeSeer. To do this, I stopped using the "Main" function in the my VoiceMonkeyInvoke.cs script, and added a new public function for each Echo device I want to support. I then was able to use the "parameter" string for the actual text that is to be spoken. When put together, it makes the event screen read nicely, as shown in the following screen shot:

                      Click image for larger version  Name:	SS1.png Views:	4 Size:	95.6 KB ID:	1475170

                      or when expanded:

                      Click image for larger version  Name:	SS2.png Views:	4 Size:	320.2 KB ID:	1475171

                      I have attached my VoiceMonkeyInvoke.cs file to this post. Of course you will need to replace the "xxxxx" strings with your particular access token and secret token strings. I have added a lot of comments to VoiceMonkeyInvoke.cs to try to document it for you. If you have any questions, let me know and I'll do what I can to answer them. And I'm always open for additional ideas! And I had to name the file VoiceMonkeyInvoke.txt instead of *.cs, as this forum won't let me upload *.cs files. So rename the file after you download it.

                      Thanks

                      Comment


                        #12
                        I should of posted here earlier but I also created a small plugin which uses Voice Monkey and implements the normal speak something in events etc: https://forums.homeseer.com/forum/3r...r-3-homeseer-4
                        Jon

                        Comment


                          #13
                          Originally posted by bradleyward View Post
                          Many thanks to RogerL for his excellent contributions to this thread! I just started using Voice Monkey today, and I used his ideas to create a very similar but different implementation for using Voice Monkey to give speech to my HomeSeer event. RogerL's work was a HUGE jump start for me. I hope to return the favor to the community.

                          The main differences in my work from Rogers are as follows:

                          1. I converted the script over to C# instead of VB (I like C# much better).

                          2. I revamped the way you configure the HomeSeer event in a way that (in my opinion) makes the configured event show better in HomeSeer. To do this, I stopped using the "Main" function in the my VoiceMonkeyInvoke.cs script, and added a new public function for each Echo device I want to support. I then was able to use the "parameter" string for the actual text that is to be spoken. When put together, it makes the event screen read nicely, as shown in the following screen shot:

                          Click image for larger version Name:	SS1.png Views:	4 Size:	95.6 KB ID:	1475170

                          or when expanded:

                          Click image for larger version Name:	SS2.png Views:	4 Size:	320.2 KB ID:	1475171

                          I have attached my VoiceMonkeyInvoke.cs file to this post. Of course you will need to replace the "xxxxx" strings with your particular access token and secret token strings. I have added a lot of comments to VoiceMonkeyInvoke.cs to try to document it for you. If you have any questions, let me know and I'll do what I can to answer them. And I'm always open for additional ideas! And I had to name the file VoiceMonkeyInvoke.txt instead of *.cs, as this forum won't let me upload *.cs files. So rename the file after you download it.

                          Thanks
                          WOW!

                          I've been kinda off the forums a bit the last week or so and just saw this. I've been rebuilding a server for my NVR and cameras.
                          I'm so glad to see that my little bastardaztion events have actually helped and inspired real programmers to make useful contributions to HS. 👍

                          Comment


                            #14
                            Originally posted by jon00 View Post
                            I should of posted here earlier but I also created a small plugin which uses Voice Monkey and implements the normal speak something in events etc: https://forums.homeseer.com/forum/3r...r-3-homeseer-4
                            More options are always a good thing.... variations on a method breeds improvement. 😀

                            Comment


                              #15
                              bradleyward

                              I'm trying to use your script and am getting this error. Any ideas?

                              Click image for larger version

Name:	Capture.jpg
Views:	496
Size:	33.2 KB
ID:	1541067
                              Compiling script (3)VoiceMonkeyInvoke.cs: {interactive}(185,46): error CS0103: The name `CSscripts' does not exist in the current context {interactive}(185,56): error CS0023: The `.' operator cannot be applied to operand of type `' {interactive}(21,17): warning CS0414: The private field `Script.hs' is assigned but its value is never used {interactive}(22,36): warning CS0414: The private field `Script.hs4' is assigned but its value is never used {interactive}(189,29): warning CS0414: The private field `Script.VoiceMonkeyInvoke.newline' is assigned but its value is never used ->Check your scripting references in settings.ini, they are case sensitive.

                              Comment

                              Working...
                              X