That’s node-red-contrib-alexa-applestrudel etc. – but the title was getting too long:-). This article is about Alexa-related “nodes” for Node-Red.
To give this set of eight nodes (seven visible) their full title, the original offering was known as node-red-contrib-alexa-remote2 and when I first wrote this blog entry in September 2019. The package had just been updated and was looking very promising. For those of us who’ve been struggling adapting Amazon Alexa to our Node-Red-based home devices with various custom nodes over the months and years, the best option for a while back in 2019 seemed to be node-red-contrib-amazon-echo – it worked well – I’ve blogged about it and so have others, but it always helps to check out alternatives. Now I use node-red-contrib-virtual-smarthome which is a single, easy to use node but I want more…
And along comes node-red-contrib-alexa-remote2 – last updated mid-2020 to get Alexa to say what you want – like a Tannoy I guess. A quick check of the ISSUES section of the GITHUB page for that project however will tell you that the author has gone AWOL.
I then moved to the compatible FORK of that project, a version called node-red-contrib-alexa-cakebaked that actually works in 2021 – well, it did until the June 7, 2021 update but read to the end), I’m slowly figuring out what exactly to do with is – here’s where I’m up to – everything I’ve tried seems to work but I have a long way to go. If you’re ahead of me, please DO comment or email and let’s make this blog entry an informative tool instead of a partly-solved puzzle.
Ok, so, prerequisites, you should have a recent Node-Red installation, on, let’s say on a Raspberry Pi 3 or 4 . You should have an Amazon Alexa device – I have various DOT version 3 devices and an Echo Show (one will do of course).
Using the Node-Red ”Manage Palette” command (3 horizontal lines – top right of the main node-red browser screen) I installed node-red-contrib-alexa-remote-cakebaked.
Now for some configuring:
I’ll give you an EXACT example: From the selection of new nodes drag an “Alexa Routine” node onto a nice new test flow (page) in Node-Red. In the right side of the “Alexa Routine” node’s “account” field, create a new account… that is a brand new setup, the only thing that will be real here is your Amazon account – more on that soon. I’m assuming you have an Amazon account for your Echo/Alexa and have already played with devices. maybe real ones?
There is a dropdown box called “Account”. I created a new “account” not bothering with a name. In there is an “Auth Method” field and I left that at the default “proxy”. Then there is a field for “This IP”. It defaults to localhost which would be fine if your PI had a browser, mine doesn’t. I changed that to “192.168.1.19” – the local address of my PI. Next is “Port” – which defaults to port 3456. Next is the “file path” which is option but if you don’t want hassle every time you restart Node-Red I suggest doing as I did and providing as path and filename for a new file that can be written to. I set the “refresh” field to 0 and “Auto init” and “Events” I left alone.
“Service host” I set to the UK-recommendation “alexa.amazon.co.uk” and “Page” to the UK recommendation “amazon.co.uk”. I set the “language” field to the UK-recommendation “en-UK”. I left the optional “User agent” blank.
I closed that lot and I noted something about putting the IP number and port into a browser – it didn’t say WHERE (i.e. on the Pi or a PC etc) so this is where I save you time maybe? My PI has no screen attached. So in the above, I put in the internal IP address of the RPi I was working on… so now, in my PC, in my CHROME Browser I could enter “192.168.1.19:3456” – Bingo.
On my PC in the browser, using the above link, I entered my real Amazon account and password and this dialog closed leaving a page in the browser saying this:
The “File Path” field above is to store the account info to save re-entering every time. I went back to Node-Red and back in “Edit Alexa Routine Node” dialog with my new “account”, I selected “speak” and “announcement” and entered a text reminder for some pills I take on a daily basis. In devices, I selected “Everywhere” – I could have selected one particular Alexa but I chose the lot.
By adding a normal INJECT node to the input, I set a schedule, once a day at 10am, to trigger this message and sure enough, my Alexas now speak that message once a day to remind me to take the pills.
And that is where I am up to.. No errors – the nodes say “ready” as you can see.
The only other node I’ve tried is the “alexa event” node set to that same account and “device activity” and I have that output going to a debug node…. So for example if I ask Alexa to tell the time, I see the full transcipt of that operation including my input.
All of this of course is just a tiny, tiny part of what these nodes are intended to do but that’s as far as I’ve gotten up to now. Next I want to create my own commands to a dummy device of my choosing, but no idea how to do that as yet. More as I figure things out and/or get helpful feedback in here.
Reader Tom Redmond pointed out another compatible node-set – same again but ending Applestrudel – I’ve not tried this as my Cakebaked install was working just fine – but at the time of this paragraph (June 12, 2021) the Applestrudel version was last updated 4 days ago. THEN I found out that Cakebaked was updated 5 days ago. Nothing like a spot of competition to keep things moving… thanks to both of these guys for their efforts – which brings me to my tests…
<speak>
<lang xml:lang="es-ES">
<amazon:emotion name="excited" intensity="high">
Hola Maureen,
</amazon:emotion>
Buenos dias
</lang>
</speak>
You can probably figure out that the above fun test is supposed to say “Hola Maureen, Buenos dias” (or “Hello Maureen, good day” to my wife – that’s about the limit of my Spanish). I just checked – it sounds like “Olive Oil, Buenos dias”. Still, the idea is sound – for those struggling to do more than simple text (no I’m not a whiz at this) the node can handle Amazon’s “SSML”option giving you way more control over the sound, as for example making Alexa actually sound interested in what she’s saying.
SO – I upgraded my Cakebaked to the new version and guess what – it stopped working..
Let the race to the top begin…
SO – I followed the installation instructions HERE for Applestrudel – now WHERE did I get the idea it is called “apfelstrudel”?
Anyway – the Github Applestrudel instructions say:
node-red admin remove node-red-contrib-alexa-remote2
node-red admin remove node-red-contrib-alexa-cakebaked
node-red admin install node-red-contrib-alexa-remote2-applestrudel
And at least for me that’s WRONG – for each line above, I get:
Not logged in. Use 'login' to log in.
login: Cannot possibly work without effective root
And of course I NEVER install node-red nodes like that – so as user “pi” I went to my /home/pi/.node-red folder as usual and:
npm remove node-red-contrib-alexa-remote
npm remove node-red-contrib-alexa-cakebaked
npm install node-red-contrib-alexa-remote2-applestrudel
I then restarted Node Red with:
node-red-restart
and guess what… back in business with my dodgy Spanish!! That’s IT – that’s ALL I did to change over, no reboots, no changing credentials etc., EASY but for how long will it last? I also dropped an issue to the Cakebaked guy (Jens A.) – for Applestrudel (Bernd Bindreiter) I could not find any “issues” section… but as it works….
By the time you read this I could be back to Cakebaked or ANOTHER fix – who knows!
Hi Pete,
a bit late, but this article is referenced in Github Cakebaked.
For those of us who run Dietpi, the default location for node red modules is
/mnt/dietpi_userdata/node-red/node_modules
B.
Hi Brian
Hmm, wonder why they changed location for dietpi…
Just to re-iterate for those not that familiar with Raspbian (or Raspberry Pi OS as it is now called) Node-Red modules are in the /home/pi/.node-red/node_modules/ folder.
Pete
Using a pre-June 7 update of CakeBaked. Works like a charm except for the 2, 3, 5, or 7 days when it stops working and I must go in to the configuration, make a simple change, click on “Update”, “Done”, and then “Deploy” and is then good for another 2, 3, 5, or 7 days. No Rhyme or reason for this I can determine.
I’ve seen a few people comment on this – best tackle it directly here.. https://flows.nodered.org/node/node-red-contrib-alexa-cakebaked – updated 4 months ago and there are of course other comments on my own blog. https://tech.scargill.net/node-red-contrib-alexa-cakebaked/ – personally I’ve not had time to keep up with this but am always interested in hearing people’s experiences and any solutions to issues.
And my damned USB connection just in front of my keyboard keeps giving me electric shocks.. but I digress (first world problems).
Anyone seeing issues with the “On Device Activity” node? All the other Alexa nodes seem to be working without issue, but that one just sits at “listening” and doesn’t catch activity anymore. Logs aren’t helpful since there is nothing to toss to a debug node. I even tried a fresh VM and fresh applestrudel install – same exact issue. I also tried switching to cookie auth and that didn’t help.
hi,
have you solved the problem? i tried differents way to solve but i still can’t get activity from alexa node 🙁
I have the same issue with it no longer catching any device activity. I tried updating the config and redeploying. It did not help in my case.
Hi, same issue here, and it’s quite annoying since I use device activity to determine last alexa invoked and choose exactly that device to route the answer…
Did anybody came up with a solution for this problem?
I’ don’t have necessary skills to mantain a fork, and I’m wondering if anybody will ever constantly update this add-on.
Thanks !
same, no luck. Very sad, this is the most important node for me
I know this is half year old. So maybe irrelevant now. I just checked. Mine is working. I am using Proxy.
Keep ’em coming – updates are always welcome.
same issue here. everything was working perfectly and suddenly “on device activity” no longer works.
Hi
Long time since I delved into Node-RED and Alexa but of couse I’m using it to send messages from injects into my Alexa Show and my normal 3rd generation Echo. No idea if this is helpful but I’m using node-red-contrib-alexa-remote2-applestrudel to send speech to my devices from INJECTS and that part at least is working perfectly – just checked it now for you. I use Google Home now to actually make virtual devices and control them (ie device “mancave” which turns on and off a range of lights in my office – I’ve just noticed that “hey Google – mancave on” works – but “alexa – mancave on” while making the right confirmation tone, actually does nothing. I’m using node-red-contrib-googlehome for the Google virtual devices.
Ditto, DEVICE ACTIVITY no longer works. Does anyone have any idea how to fix it
All other functions are ok
I have restarted my ECHO several times and also Nodered
Here for me the DEVICE ACTIVITY also stopped working. Please any ideas?
Idem, DEVICE ACTIVITY no longer works. Does anyone have any idea how to fix it
I’m in the same boat. Not seeing any activity coming into Node Red, where it was working as recently as a month ago. I’m guessing it’s a cookie/auth/cache issue, since it sounds like scargill’s stuff is still working.
I just installed Applestrudel, after uninstalling the slightly working but mostly broken alexa-remote2. When I set up the Alexa Account Node, then visit the address http://my-ip:3456 to authenticate, the page is not served up. The node shows error “Error while checking authentication”. Any ideas why this may be?
Pete,
When you configured Apple Strudel (note: your title to this blog post misses the “r” in Strudel), and you were asked for your Amazon credentials, did you notice if the logon page was secure? It wasn’t for me (see the attached PNG file). Unsure if this is because I don’t have Node-RED configured for SSL on my network, or something else is going on (more nefarious). Suspect the former, but due diligence demands I check before entrusting this add-on with my Amazon credentials.
Oh, and when your site asks me for the sum of X and Y, is it clever enough to accept the answer if spelled out as opposed to numerals? 😉
Pat
Hi pfurrie
The title is fixed thanks to you. I didn’t put my Amazon Credentials in – they were already in from the cakebaked setup (most likely carried over from remote2). I THINK the logon page was secure, can’t be 100% sure. Node-Red is not set up for SSL on my setup. As for my site. not sure, it is hosted WordPress – that will be a plug-in.
Pete
I ran into the “not secure” problem first when I was trying cakebaked, then was searching for related help when your blog turned up. Thanks for the info regarding cakebaked update being broken, as I didn’t even bother to complete the Amazon logon with them… just installed Strudel and ran into the same condition. Guess I’ll need to figure out how to setup RED with SSL (local, not needed for external access). Certs not my forte.
Thanks for the info!
Pat
Hey all, I’ve been having problems with both the remote2 and also the cakebaked version, remote2 would work for 2 days & stop for no reason, make a small change to NR, deploy it & again it would work for another 2 days, I could not get the cakebaked version to work at all even though its setup correctly as per the above excellent guide I get authentication errors(with the correct amazon password etc.). So I decided to look at alternatives and came across “node-red-contrib-alexa-remote2-applestrudel”, this worked liked a charm, I filled in the IP and File Path, everything else I left as default and it works, now to see if it will work for longer than 2 days 🙂 by the way, excellent forum Peter, loving the updates!
Oh dear, your great feedback triggered me to check updates on Applestrudel (which for some reason I’ve been writing down as “apfelstrudel” (and no I’m not German – anyway fixed that now) and Cakebaked – the latter was updated 5 days ago so I figured “Why not update to the latest Cakebaked” – and lo, it’s stopped working – still – makes life interesting – I wonder if Amazon’s been messing about again and Applestrudel got in just after some changes?
SO I went to the Applestrudel Github page and found command-line instructions that at least for my RPI setup seems to be wrong – but see the updated end of blog – got it working (it’s been a long morning and it’s only 8am)
Hi all, I continue to get “Cannot GET /alexa-remote-smarthome.json” error messages. No devices are visible. I am on Nodered v.1.1.3. Would really appreciate some help!
Hello, thank you so much for documenting your progress on this. I was wondering if you had any insights on security. How does the library connect to the ASK service without opening a port?
Short answer… don’t know the answer to that… also am I right in saying that the author of this node has gone AWOL for 9 months and the Github site has a recent recommendation to try this https://github.com/cakebake/node-red-contrib-alexa-remote-cakebaked
Yet despite come comments on Github https://github.com/586837r/node-red-contrib-alexa-remote2/issues, people keep using and downloading this node…
I have had reliability issues with these nodes for a little while I suggest giving alexa-smart-home-v3 a try (also works for Google Nest). I’ve used it for 2-3 months and had no issues. Also Alexa-home-skill-bridge gives the flexibility to get validation on the settings you try to make.
Got this sort of working although any change to the Flow and I have to revisit the proxy page – I’ve set the file path option in the Alexa configuration (Peter you left that bit out but it says you need this to avoid the scenario I’m having) – it does generate a file but appears to ignore this. I’ve got a full path to mine “/home/chris/.alexa.cookie” – I’ve tried Firefox and Chrome to generate the cookie but can’t see why the proxy doesn’t reload it. I do have 2FA set on my account and I did need that the first time through the proxy but I told it not to ask again and it is following that request.
I also can’t get the command line version of this (alexa_remote_control.sh) working at all – it generates a capture whether MFA is set or not and putting a cookie from FF or Chrome in /tmp has no effect. This is on Ubuntu 2010 Groovy Gorilla.
Pete – might be worth updating the flow image to show the “Inject” node before the Alexa Response node – I got confused with what to do too but the comments helped me here – ‘twould be good to see that in the original instructions.
I am trying to get a feed from MQTT now – that way I can possibly have ESP devices sending messages directly but really need to avoid the necessity to refresh via the proxy on deployment every time I make a change – anyone any ideas?
Remote2 node seems to be able to trigger ON/OFF the existing Alexa devices. Is there a method for creating a new ‘virtual’ device? I was using HA-Bridge from Peter’s script with success. I entered several ‘virtual’ devices and combined it with mosquitto_pub commands. Alexa discovered it without any problems and it was working fine. Now I moved to Docker/IOTstack and I’m wondering if HA-Bridge should be used further on, or maybe Remote2 is able to do similar job.
BTW I tried Alexa-local node but my Echo Dot 3 does not discover any new device.
Has anyone been able to have an event trigger Alexa to speak? I have it working where I tell it to speak, but I can’t get over the hump of a device triggering it to speak. An example of what I am trying to do is a door opens, Alexa says “The back door has been opened” on all devices. I’m really new to Node Red an hoping someone can steer me in the right direction.
Nope – no solution found yet.
Hi – Using node-red-alexa-remote2, anyone know how to launch a skill and pass additional information to it?
eg: I can use the Routine node to “Launch Skill”: “BBC”. But I want to get Node-Red to do the equivalent of “Ask the BBC to play Radio 4”. How do I pass “play Radio 4” to the BBC skill?
Did you find a solution for this?
Not a solution for the general issue of passing input to skills, but more a workaround for your specific example: Use one of the builtin music providers, TuneIn e.g. plays BBC4 perfectly well.
PS: Looking at the source code, the “skill” function passes empty input, but at least passes input. Maybe it’s worth the try reaching out to the developer via his github, asking to provide a text field to pass that to Alexa.
Hi Malte. Good point re TuneIn and BBC Radio4, but a general solution would be good. I have raised an issue with the developer: https://github.com/586837r/node-red-contrib-alexa-remote2/issues/169
I do wonder if it’s possible: I note that I have the same restriction if I create a Routine within the Alexa app to launch a skill.
hey – I’ve found this blog super helpful in getting myself set up on NR. Though I’m stuck now. I have a number of input_booleans in HA that trigger my alexa devices (using Alexa Remote2). However, if/when I use alexa itself to control the devices the state of the input_booleans in HA do not change.
Does anybody know of a way to check the state of my devices (in Alexa) and use that state to trigger a change in input_boolean state in HA?
hello everyone, I haven’t been able to update or initialize the amazon cookie for a day now, after logging in it gives me back a page where it says:
Please Enable Cookies to Continue
To continue shopping at Amazon.com, please enable cookies in your Web browser.
Once you have enabled cookies in your browser, please click on the button below to return to the previous page.
please help me
Talk to the designer and do let us know what you come up with
Pete
I also struggled to get it running and I cannot login using the proxy either as amazon says I should enable cookies (which is actually already the case). I could solve it by switching to cookie authentification and geeting the cookie by logging into my account at pitangui.amazon.com (or your desired country server) and aquiring the cookie as described here: https://www.youtube.com/watch?v=Yg7dv4OOFAY (fast forward to 12:55). Hope that potentially helps, worked for me immediately even if other methods I googled on how to get the cookie did not work.
I had this until I updated my nodes, in the palette look for the remote2 node and click on upgrade.
Then the magic came back again.
I know its probably a bit late for you, but this is hoping that it will save others like me a few hours!
Better late than never 🙂
I’m getting the error that says ‘Unexpected end of JSON input’ while I’m using proxy method.
I get ‘Amazon Alexa Cookie successfully retrieved. You can close the browser.’ message okay when I log in on the browser.
Any help would be appreciated.
Did you manage to solve this?
I believe Aidan is working on that APP. In time I’ll update the blog… right now I’m working on RPi4 USB Boot, Sonoff Zigbee and other stuff but I always get there eventually.
Superb youTube presentation, so clearly explained. I was thinking about getting an Alexa or a Google device but no experience to base a choice on. However, I think that video has convince me Alexa is the way to go.
this node is absolutely awesome! Take a look at this video for lots of additional info, i just set up my music player using this 🙂
Thank you for that YouTube link.
Yes this node is indeed awesome!
The video pulled it all together for me.
The examples all work great.
Listening to the player now.
I’ve been using this very useful module for a while but having implemented some system monitoring routines I have discovered that the this module is throwing an uncaught exception occasionally and forcing a node red restart. Not sure yet if it’s my implementation or not but node red and module are on latest versions – so if anyone else is getting unusual node red behaviour this may be the culprit
as always, better report to the node author himself, on his github, opening a proper issues with details… he’s the only one who can investigate and fix it
I’m able to get the green “ready” on the AlexaRoutine node after using my server’s URL to retrieve the cookie. The problem I’m having (and had in earlier V3 releases) is that my AlexaRoutine node doesn’t allow me to change to a value other than “Speak” (there’s a dropdown, but when another value is selected, it doesn’t “stick”) AND I’m missing all the widgets below the Speak dropdown.
Any suggestions?
Node v10.15.3
node-red-contrib-alexa-remote2 v3.2.8
Node_RED v0.16.2.
My first question might be why are you using such an old Node-Red…
Yeah… I was afraid you might start with that. OK… I’ll give it an upgrade and then see where it takes me. Thanks, Peter.
Be careful – updating to 0.20 is easy – avoid 1.00 as there was an issue with msg cloning – 1.01 is good so far but MAY require the odd node install – see node-red site and do an RPI-CLONE or similar first….
Yep… I lost my UI along the way (restored my server to localhost) but it fixed the AlexaRoutine. And as a bonus, it compelled me to make the move up to v1.0.1 — so thanks, Peter 😉
Struggle continues. I have node red in a docker container. Has anyone got alexa remote working while having node red in docker?
Got it working. Just had to do port forward on the container.
It was quite quick then I expected to get Hello World working.
I would say add the name of the file (security consideration). This stores the credentials so that every time you deploy, you do not have to go authenticate again.
Hi, I’m having difficulty defining the file path to store the credentials. I’m running Node Red in a docker container using HASSIO.
be sure to expose the container /data folder to the host and then modify from there:
https://stackoverflow.com/questions/53030286/how-to-update-the-settings-js-in-node-red-node-red-docker-image-when-deployed-wi
https://nodered.org/docs/getting-started/docker
Thank you. I’ll try this later when I get home.
Managed to get this working. I first had to create a text file – cookie.txt – then set the file path:
How exactly did you go about this?
I faced exactly the same issue. In order to find out what path to use. What i did was create a basic text file in node red using the “file in” node. I used the basic path of / I then searched my file system for this file. I found my file was stored in /config/. Next i created an empty text file in /config/node-red/data/amazon.txt
I then set the node-red-alexa node to use this location.
Once you have logged in your should see the anazon.txt file update with the cookie info.
Oh yeah btw I am using the Node-Red add-on inside HASSIO / Home Assistant.
Arghh. I absolutely positively cannot find this file!! I have HA & NR running in Docker on a Synology DSM. I created a text file “alexa.txt” and placed it into my node-red data folder and have tried about every path possible… but keep getting the error “File not found.”
I have as my path /docker/hassio-02/homeassistant/node-red/alexa.txt and have tried everything removing one directory at a time and still nothing using the file in node and a timestamp inject node.
Since this is NR installed inside HA, I technically did not set up my own NR docker container.
Any ideas what the path should be?
Thanks guys
If it is the same principle as Node Red running under Home Assistant on Hassio then the file needs to be stored in the /share directory on your HA server so for me the full path is /share/alexa/auth and that is exacly what is entered in the Alexa Account Node config file path
Thanks for getting back in touch so quickly. I have the node-red config folder on a share inside the HA config folder but for the life of me cannot figure out the path. At this point I just cannot figure it out so I will move on. Love your blog
how did you do the port forward?
Some of the built in help in the collection of remote2 nodes is not very helpful. The IP address configured is actually the IP of the broker which may or may not be the machine node-red is running on. My goal is to use Alexa to query devices such as what is the humidity and temperature outside? (from my MQTT weather station) or is the garage door closed? and Alexa would answer appropriately. I found a forum with an excellent example for configuring remote2 to have Alexa speak the text contained in an MQTT payload. The example is at https://forums.homeseer.com/forum/homeseer-products-services/cloud-service-integrations/alexa-smart-home-skill/1320858-alexa-tts-that-works-better-imho-than-the-solution-for-home-assistant
Was going to give this a go, but I can’t install any nodes, says there is a permission problem. Using a Mac OSX, searched the net and found giving permission to the /.node-red which I did and have previously. Not sure what else to do?
2019-09-29T04:45:19.838Z [err] errno: -13,
2019-09-29T04:45:19.838Z [err] npm
2019-09-29T04:45:19.838Z [err] ERR! code: ‘EACCES’,
2019-09-29T04:45:19.838Z [err] npm ERR!
2019-09-29T04:45:19.838Z [err] syscall: ‘mkdir’,
2019-09-29T04:45:19.838Z [err] npm
2019-09-29T04:45:19.838Z [err] ERR! path: ‘/Users/scott/.npm/_cacache/index-v5/b2/d6’ }
2019-09-29T04:45:19.839Z [err] npm ERR!
2019-09-29T04:45:19.839Z [err] npm ERR! The operation was rejected by your operating system.
2019-09-29T04:45:19.839Z [err] npm ERR! It is likely you do not have the permissions to access this file as the current user
2019-09-29T04:45:19.839Z [err] npm ERR!
2019-09-29T04:45:19.839Z [err] npm
2019-09-29T04:45:19.839Z [err] ERR! If you believe this might be a permissions issue, please double-check the
2019-09-29T04:45:19.839Z [err] npm ERR! permissions of the file and its containing directories, or try running
2019-09-29T04:45:19.839Z [err] npm ERR!
2019-09-29T04:45:19.839Z [err] the command again as root/Administrator (though this is not recommended).
2019-09-29T04:45:19.855Z [err]
2019-09-29T04:45:19.855Z [err] npm ERR! A complete log of this run can be found in:
2019-09-29T04:45:19.855Z [err] npm
2019-09-29T04:45:19.855Z [err] ERR! /Users/scott/.npm/_logs/2019-09-29T04_45_19_840Z-debug.log
2019-09-29T04:45:19.861Z rc=243
This nodes collection is great. I just want to share a use I made of it.
I have some difficulties making my 13 years old doughter get up in the morning. She hears alexa’s alarm, but once stopped she continues sleeping. To avoid that, what I did was this:
At 1:00 AM I get the list of alarms she has set on her Echo Dot and for the first one I add three voice messages she hears, two, four and five minutes after the alarm sounds. The messages tell her something like: two minutes later: “It’s time to get up”, four minutes later: “Come on I you are hearing this message it’s to late, get up now” and five minutes later: ” Come on , get up immediatelly. Your dad is comming”. I use SSML to create some s between text. Each message has higher volume than previous.
I use cronplus node to fire messages.
If none of those messages work I have to get up to awake her ;).
Here’s a sample flow that works for me. The inject is just sedning the default timestamp. The only config I did on the Routine node is to add “This is a test” to the “Text” field and select my config in the “Account field”.
Once you deploy you should see a blue icon under the Routine node showing it’s connected. If not, you still have work to do. Oh, and it should show a list of available devices in the configuration page for the Routine node.
You may have to initialize if this is the first time. I did that a few days ago and am now trying to remember how. I know it’s an inject node and an Alexa Init node but there was more to it. I went ahead and added my refresh cookie sequence to the flow below. That should keep it initialized once you get it started. Let me know if you need more help on it and I’m happy to try. I’ve learned so much from you I’d love to give back.
[
{
“id”: “c8594bdc.1ed9d8”,
“type”: “tab”,
“label”: “Alexa Init”,
“disabled”: false,
“info”: “”
},
{
“id”: “2f8ed8a3.db9a68”,
“type”: “alexa-remote-init”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“account”: “a30831e3.1d09”,
“option”: “refresh”,
“x”: 280,
“y”: 340,
“wires”: [
[
“8d990367.02bd3”
]
]
},
{
“id”: “115fefb1.f4dc”,
“type”: “inject”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“topic”: “”,
“payload”: “alexa”,
“payloadType”: “flow”,
“repeat”: “”,
“crontab”: “00 12 * * 3,4,0”,
“once”: false,
“onceDelay”: 0.1,
“x”: 110,
“y”: 340,
“wires”: [
[
“2f8ed8a3.db9a68”
]
]
},
{
“id”: “8d990367.02bd3”,
“type”: “change”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“rules”: [
{
“t”: “set”,
“p”: “alexa”,
“pt”: “flow”,
“to”: “payload”,
“tot”: “msg”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 480,
“y”: 340,
“wires”: [
[
“349f952d.0689fa”
]
]
},
{
“id”: “349f952d.0689fa”,
“type”: “debug”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“active”: false,
“tosidebar”: true,
“console”: false,
“tostatus”: false,
“complete”: “false”,
“x”: 680,
“y”: 340,
“wires”: []
},
{
“id”: “acc03fc2.39c2a”,
“type”: “inject”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“topic”: “”,
“payload”: “”,
“payloadType”: “date”,
“repeat”: “”,
“crontab”: “”,
“once”: false,
“onceDelay”: 0.1,
“x”: 160,
“y”: 220,
“wires”: [
[
“3ff3c45d.20249c”
]
]
},
{
“id”: “3ff3c45d.20249c”,
“type”: “alexa-remote-routine”,
“z”: “c8594bdc.1ed9d8”,
“name”: “”,
“account”: “a30831e3.1d09”,
“routineNode”: {
“type”: “speak”,
“payload”: {
“type”: “regular”,
“text”: {
“type”: “str”,
“value”: “this is a test”
},
“devices”: [
“G090LF1073171DAP”
]
}
},
“x”: 400,
“y”: 140,
“wires”: [
[]
]
},
{
“id”: “a30831e3.1d09”,
“type”: “alexa-remote-account”,
“z”: “”,
“name”: “Home”,
“authMethod”: “proxy”,
“proxyOwnIp”: “192.168.254.15”,
“proxyPort”: “3456”,
“cookieFile”: “”,
“refreshInterval”: “3”,
“alexaServiceHost”: “pitangui.amazon.com”,
“amazonPage”: “amazon.com”,
“acceptLanguage”: “en-US”,
“userAgent”: “”,
“useWsMqtt”: “on”,
“autoInit”: “on”
}
]
Hi Terry – after changing the account to mine – and visiting my alexa account, all came up ready…. but on pressing that inject node – I got “Error: Response: input failed” again in the first node. Not having much luck here.
I remember something similar to that when I tried “Speak at volume” instead of “Speak”. Don’t know what it means though or how else to sort it out unfortunately 🙁
It’s probably something I’m doing wrong, or misunderstanding, but I can’t get this flow to import – I get an error of:
SyntaxError: Unexpected token “ in JSON at position 4
[↵{↵“id”: “c8594
with the first “ being the one that’s causing a problem…
If you are cutting and pasting its not unusual for windows to pick up the wrong quotation characters – try overtyping the offending ” with the keyboard and see if the error moves – if so you’ll have to do a global search and replace on that character.
Thanks to Terri for sharing that patch, took a while for me to sort out changing the account, but finally, it worked, I was struggling to get the inject to work from the example patches so this is a great starting place for me, and if it does need that regular update, thanks for that bit as well, as a Node-red novice its great to see some functional stuff like that to help newbies to see what’s possible.
A happy customer 🙂
Ok, so I went to the examples page for the node and put the first one – a test json flow called “alexa speak”. I put in the account I set up… on my phone the dashboard page came up, no issues – then I selected my office DOT – and in the other field put the text “hello how are you”. In Node Red that cause an “error: input response failed”. Back to square one?
You have to send it something. Put an inject node in front of the alexa routine node.
I read your blogs avidly and this one really got my attention, i have had a short play with this on my own setup this morning. Im am very excited about that this node can do!!. it appears to be able to open up the whole system at lot more than previous nodes. In the short time i had, i was able to connect to my Mihome alarm sensor and send verbal notifications to any echo device plus, a text notification to my phone. i used routines on the alexa app and set up a trigger word, using the on device activity node for feedback im able to filter out that trigger word to activate my devices. im no expert here, but i hope that helps.
So, making as few assumptions as possible do you want to show us exactly what you did? Rightt now I’m clueless as to how to proceed. Meanwhile of course I have node-red-contrib-amazon-echo telling a device “fred” to turn on and off – (simply by adding a device node eith the name “fred” and telling amazon to search for devices). The 1.0 outputs from the device node then go on via a simple function node to actaully turn something physical on and of etc. All of that (apart from colour, now sorted) was dead easy but I’m not quite picking up on what to do with this remote2 app (I don’t have any REAL Alexa compatible gadgets here – I just then go on to control them with MQTT – hence the mind-set..
Hi,
I was stuck as well but had the US service host rather than UK,
changed it and works now
Service Host Page Language
USA pitangui.amazon.com amazon.com en-US
UK alexa.amazon.co.uk amazon.co.uk en-UK
Thanks for that, Dave
I’m sure you figured this out, but I will post my experience for reference for others and to elaborate on Alan’s post above:
Once you get this all set up and working you can send state information back to Alexa by using the “Alexa Event” node to basically watch everything a particular Echo Device does/hears (Hook up a debug and watch the JSON come piling in).
I set up a routine in the Alexa app without an action, (an empty routine if you will) and when I ask “What is the Freezer temperature” nothing happens in the app, but, I use the Alexa Event node to watch for “Freezer Temperature” in the JSON. I have a DHT11 monitoring the freezer’s temperature, I save it to a flow variable, then if the Alexa Event node sees “Freezer Temperature” she speaks back the flow variable (the temperature) using the “Alexa Routine” node.
Just to add if you have multiple Echos, you can use Custom method in the Alexa Routine and pass it a payload something like msg.payload={type: ‘speak’, payload: { type: ‘regular’, text: ‘Freezer is’+temp+’degrees’, devices: [msg.payload.name]}}. Then the payload.name will make sure that the message is routed back to the device that the request was heard on.
Nice one James! Just what I was looking for. Many thanks.
Hi, that’s I’m trying to do, but before the correct answer, Alexa fire out standard unknown command answer or similar and I’ve no idea how to solve it. Can You post your workflow (without sensitive info obviously)? thank you!
You need to follow the part of the original post that goes “I set up a routine in the Alexa app without an action, (an empty routine if you will) and when I ask “What is the Freezer temperature” nothing happens in the app” – that prevents Alexa treating your request as an unknown command.
Thanks Scott.
Love the update to the site. Looking great.