Node-Red and Smartthings

I believe @sulisenator is using the SmartThings palete of NodeRed to send text to speech to Alexa. Here’s one of his videos (in Italian. Use CC or follow the visuals)

1 Like

Yes I managed too to recreate Echo-Speaks like features, without having to use WebCoRe.

I’m using node-red-contrib-alexa-remote2 and node-redcontrib-smartthings. The only issue I’m facing is that about once a week the Alexa authentication throws a json error and I have to paste a new cookie. The other authentication methos fails more often.

Aside that it’s very powerful, in the attached flow I setup a reminder system for windows left open, which tells me that a windows has been opened when outside is less than 12°C (it gets that from a sensor outside) OR it’s more than 29°C and AirConditioning (Integrated in ST via Tado°).
Then it starts remiding to close that window every x minutes.
In the TTS reminder it says the name of the specific windows, the outside temperature, and it process every single windows independently, so if a window is open, another gets open and closed, the remindinr goes on for the 1st window. This is made with the the node-red-contri-msg-resend, which is perfect for that, and can be interrupted by a resend_ignore package.
EchoSpeaks + webcore couldn’t do that.

I have a flow like this from the tb window but I needed to use the samsung automation studio node because I couldn’t get the .tpic update. But open your first node and send a print to see how it is getting the current status of the windows?

Sure. I had too some issues when starting with ST palette, but I simply hadn’t configured correctly the smartapp. IN particular, I din’t put “Http://” before the IP address of the node-red server.

I prefer to use this palette so the ST hub and Node-Red can talk at LAN level, without relying on the cloud.

image

mine is with http in smartapp and I can’t get the status … I’m having to do that there. And how do you use the topic update?

There were issues around logging in that came up with Alexa Media Player in home assistant. Enabling two factor Authorization on the Amazon account seems to fix it. Do you have two factor authorization on?

ALL custom code, SmartApps and DTHs, runs in the ST cloud. There is no avoiding the ST cloud at this time.

2 Likes

yes, that’s active. But I see on the node red palette forum page many people are complaining about it. Don’t you ever get that error?

No, I only have to re-authenticate my Alexa login in Home Assistant maybe about once a month, if that. But I’m using Home Assistant and a HACS add-on called Alexa Media player- GitHub - custom-components/alexa_media_player: This is a custom component to allow control of Amazon Alexa devices in Home Assistant using the unofficial Alexa API.. With that setup, the Alexa devices all are entities in Home Assistant. With the Home Assistant Smartthings integration - SmartThings - Home Assistant all my Smartthings devices are also entities in Home Assistant. So after all that is setup (which was quite the process), node red controls the Home Assistant devices using this palette node-red-contrib-home-assistant-websocket (node) - Node-RED and can do announcements with a properly formatted JSON.

It works well and reliably, but took a lot of steps to setup. Your method is fewer steps to get going but if the login has to be re-validated every week that would be a deal breaker for me. Here’s an example in the Alexa Media player WIKI Examples: NodeRed · custom-components/alexa_media_player Wiki · GitHub

Understood, thanks. For now I prefer to update the cookie than have to maintain a HA installation, they just forked the palette so let’s hope the find a fix.

1 Like

Yeah probably not worth putting up Home Assistant just for this. Hopefully they fix the palette since it would be a great solution for people to get Alexa control and do other Automations.

If you’re going to use it for other things, Home-assistant is powerful but still hard to use. I’m running Home Assistant in Docker and most setup instructions are using the supervised Home-assistant hassio, so it makes it even harder to figure things out. On the plus side with the container version I can use the same machine for node red, an NVR for security cameras, SSL server, and more.

Node red looks easy to use at first but getting things to work is harder then it looks. I still find I’m slowly moving more automations to node red from webcore, since the reliability is way better and faster with local automation processing vs multiple back and forth to the cloud. My webcore piston to turn lights on in the morning didn’t work today, and now this Voicemonkey outage is dragging on.

I know all the device controls for Smartthings and link to Alexa still rely on a cloud connection, but at least the automation on node red itself is local vs webcore. I’d say that makes it a huge plus.

2 Likes

With it looking less likely Voicemonkey is coming back, I found a nice workaround to actually trigger node red flows easily from Webcore, and actually pass a string to the msg.payload from Webcore to Node red. This can be nice to take advantage of using both Webcore and Node red, or gradually switch to Nodered without doing everything at once.

First step is to setup Node red of course, then use the Http in node. Create any random URL endpoint you want with method POST.

Then use Webcore to make a web request using your internal node red IP address adding on the URL endpoint you put in the HTTP node. The expression you put in the plain text of the POST request in Webcore will be in the message.payload in Node Red. You can then use this to make announcements to Alexa of whatever the expression was from Webcore. Or trigger whatever other flow you want in Node Rd. You just need a template node and HTTP response node so Webcore knows the web request was successful.

Screenshot from 2021-03-12 15-18-12

1 Like

Anyone have experience with this palette? It appears to grant access to Smartthings devices and is API based, so will continue working after the Groovy IDE is phased out.

And it also seems possible to host Node red in the cloud without purchasing equipment or putting up a server, which could be an option fur some.

1 Like

I’m using this palette … as for hosting the nodered I created an instance on aws EC2 but I can’t put a password … it needs to be a public ip …

in this flow I’m using these nodes

1 Like

I am using it as well, but with Hubitat. I am running it at home with DuckDNS and Nginx to help with the external access and SSL/TLS and provide security. Nginx has allowed me to setup endpoints with SSL and not expose the main interface, just the endpoint.

Ok… I finally was able to use the official node “Automation” from node-red-contrib-samsung-automation-studio-nodes.

I had to import the template “SmartThings : Automation” from Samsung Automation Studio.
Template "SmartThings : Automation"

I also had to read the source code to understand Automation can only connect with a single Event Device and nothing more, not even Debug.

I simply used localtunnel

lt -p PORT -s SUBDOMAIN --local-https

I created the “WebHook Endpoint” and was able to deploy and test.
The problem is: the smartapp just DISAPPEARED and now I can’t modify its settings anymore.

That is fairly strange. I have had mine out there now for weeks or even a few months. Make sure you check your Smartthings developer workspace and that the app is still registered and showing as functional with connectivity. Your tunnel may be what is causing the issue.

The interesting part is that the automation still works.
I just can’t modify the selected devices anymore.

It stops working when I click “Unlist from test” and starts working again when I click “Deploy to test”.

image

Did you somehow take your phone out of developer mode?

1 Like

That is exactly what happened! Thanks, @Mavrrick58
For some reason, Developer Mode was disabled.