- Alexa Plugin Forum: https://forums.indigodomo.com/viewforum.php?f=359
GhostXML Plugin: https://www.indigodomo.com/pluginstore/38/
URL Routine Trigger Skill: https://www.amazon.com/Virtual-Smart-Home-Routine-Trigger/dp/B08SHHS8JZ/
The workflow looks like this…
- Action to “refresh” a GhostXML Device
GhostXML Device updates an online fake “doorbell” that you create.
Fake Doorbell activates in Alexa and initiates a routine
Routine Dynamic:
Custom Action “Ask indigo to speak VARIABLE NAME”
Pick the device you want to speak the message
Routine Static:
Message Action -> Announce -> All devices (or select devices) -> write static message
Step 1: Set up skill (follow their steps) and create a “trigger” to test with (add more once you get everything working. We’ll call this trigger “alpha”. The skill’s corresponding web page will give you three URLs. For this project, we will use the JSON one.
Step 2: Create a variable “alpha”. You can make this dynamic later with triggers or schedules…. for now, use, <speak>Testing the Alpha message thing</speak> . Use the tags so when your device speaks later, it will strip out the “value of the indigo variable is” part of the message and just read the text between the tags.
Step 3: Open the Alexa app and build your routine.
- When this happens -> Smart Home -> Select “Alpha”.
Add Action -> Custom -> write “ask indigo to speak Alpha”
From: Pick the alexa device to broadcast the message
Save, wait a minute or two, run the routine and make sure you message goes through.
Step 4: Create a GhostXML device. I used the (Real Type), but either should work.
- Device Name: Alpha
Feed Type: JSON
Refresh Frequency: Manual refresh
URL/Path: Full JSON path from step 1. https://www.blablabla=json
Authentication Method: None
Step 5: Create GhostXML action to refresh data for the Alpha device. Save and execute.
If you hear your alpha announcement, congratulations, you are well on your way to spreading your words of wisdom throughout your house.
Note: For me, I got hung up on the secure part of the URL and had to remove the “s”. If running the action results in an error, try removing the s and just using http.
Now you can add that action to a schedule or a trigger and every time it activates, you will hear that announcement.
A couple side-notes:
- My plan is to create a "doorbell" for each alexa device for dynamic announcement purposes and then create a handful of "doorbells" for some static messages (but things I would want announced), like if my actual doorbell is rung, or Dad is home, Uncle Ricky is here, it's 10 past the hour time to wash your hands, etc.
The skill is free and says it allows up to 300 doorbell devices which is more than I will ever need.
There are a few other skills that offer similar services. Another that looks promising is Voice Monkey. It does the fake doorbell thing for $6/year (something like that) you can send video or images to an echo show or push out audio announcements. The spoken words are embedded in the URL, so I'm guessing it would be easy to automate and remove the need for a couple of the steps above.
Once indigo adds doorbells to it's list of supported alexa devices, then the above is a moot point.
I'm still working on my https issue. Still not sure why I'm getting an SSL error when I try.
Update/Edit 8/18/2022:
This fun/awkward workaround has been working consistently and without any crashes since I started using it.
Continuing from the above steps....
Step 6:Create Trigger
- Use a name that is inline with the rest... so we'll call this Trigger "Alpha"
Trigger: when the variable "Alpha" has any change
Condition: if variable "Alpha" does not equal " " <- Null/Blank
Action: Execute the GhostXML action you created on Step 5, then modify the Variable "Alpha" to " " <- Blank
Now whenever a script or something somewhere else in your indio-verse updates that variable, you will automatically get an announcement to that specific alexa device. Do you want that variable to be read across all alexa devices....
Step 7:On the alexa app, you can have multiple routines doing the same thing. Look at step 3 above, Copy that routine action, select the doorbell (again), change the alexa device at the bottom of the routine, save and repeat until you go through all the alexa devices that you want a whole house announcement on.
Note: I find that this method does work, but there is a greater delay between devices. (Versus the single doorbell pr. static announcement method) .... so with a house full of echos, you will know why they are called echos.
Note: I can't remember if I wrote this elsewhere, but you can incorporate sounds into the message... try this for example...
- Code: Select all
<speak><audio src="soundbank://soundlibrary/bell/chimes/chimes_10"/>It’s 15 past the hour, time to wash your hands</speak>
Update/Edit 2/17/2023:
First Crash, but a simple fix. Obviously there are a lot of moving parts for an announcement to work. If it stops working, you have to check several things. About 1 year after setup, everything on the Indigo side was doing just fine. On the Amazon side, everything appeared ok. The skill still showed as linked, but if I tried to manually "ring" a doorbell with the URL, I got a "Failure" message in safari. Easy fix. Deactivate skill -> activate skill -> log back into skill with your amazon creds. That's it. I guess after a year (for me) the skill had to be re-introduced to Amazon. I'm back up and running.
Side note... Somewhere along the way I created a Virtual Action Device, "Stealth Mode" that sets a variable "StealthMode" to True or False. My announcement triggers (and some of my lighting triggers) use that variable as a condition before firing. Handy when the baby is sleeping or your wife asks you to look out back because she heard a "thump".