Node red after groovy?

Hi everyone.

I have been searching for an edge driver for node red.
I haven’t been able to find one. Does anyone know if it exists, as the smartapp will stop working in the end of the year.

Kind regards Simon

1 Like

Edge Drivers replace groovy device type handlers. NOT smartapps.

Edge drivers must be written in Lua and run on your own hub.

SmartApps for the new architecture can be written in any language, but you have to host them yourself on a hosting service or local server. We are not allowed to run them on the hub. So you typically have to connect to SmartThings via cloud to the REST API.

There are a few exceptions, like what @taustin has done for MQTT integration. He has a custom smartapp running on a local server.

If you would be willing to use MQTT as the go between between ST and Node Red, you could use his project. It has both an Edge Driver and a custom smartapp that you host yourself on a local server.

But if the Samsung Studio option @Automated_House mentioned is working, that would probably be a better choice. (For some reason I thought people had reported that that had stopped working late last year, but maybe it was a temporary glitch.)

@sulisenator is the Samsung automation studio node red plugin still working for you?

I haven’t been able to get this successfully working, but it is (for me at least) pretty complicated. The ST token set within Node-RED can send commands to ST devices, but to get updates from devices back to Node-RED involves a webhook, ssl, etc. Hopefully someone comes up with a complete step-by-step process to get this set up. Even more complicated is some ISP’s block port 80. One of the easiest ways to get an SSL certificate through Nginx reverse proxy is if you have port 80 open. There’s other ways, but for the average user, like me, it’s pretty complicated. Also, apparently, you have to have different Smart Apps through the ST Samsung Developer Portal for each device you want to send back status for. I’m probably not explaining this perfectly, but there’s quite a few moving parts to get this working.

2 Likes

I use Node-Red and ST with http requests. There is an official WIZ integration for ST but I use these devices through Node-Red to run them locally. Simple commands, nothing too complicated.

Hi @Sakari can you please explain how everything is set up? I believe many don’t realize that Node-RED is available for us and think we need to be educated on how to set it up from steps A-Z. Thank you.

At the moment no because I started fresh with a new hub and I still have to publish a new “smartapp” in the Samsung developer platform, which is giving some issue. But in general from the other people I know are using it I got no news about malfunctions.

I can try but I’m complete novice with this. My knowledge is very basic.

But I have set few http requests to control my Panasonic air pump and WIZ lights. I just send http request from ST to my Node-Red server. There is a http request driver made by @TAustin. It all works in local LAN. There is a some amount of JSON code that has to be written to make things work.But what comes to that I’m no person to give any help. I just copy paste all and if that doesn’t work then it comes down to trial and error before everything works.

Agreed. Node-Red is viable option but could be too much for some of the users.

1 Like

There’s an integration directly with ST as I mentioned before, but it’s a bit of a convoluted process.

Yes there is but I haven’t used it. I tried but for some reason I couldn’t make it work. I just decided to take the easiest route which in my case is the http requests.

Would you mind posting how you put it together? Is this 2-way communication (e.g., Node-RED can send commands to ST and ST can update device status, live?) In other words, if you are watching for a light to turn off, is this immediately communicated to Node-RED to take action?

Correct me if I’m wrong, but the distinction between how you have it set up and how the “other” set up is is that your connection(s) between ST and Node-RED is all local, as opposed to the other method, it is not local, as ST requires an SSL public connection to Node-RED for device status to be possible.

That is very simple, you create flows with HTTP request nodes, in which you put a specific URL
Then in Smartthings you use the Web Requestor Device (created with its driver) to issue requests at that URL (e.g. http://192.168.1.100:1880/anyword where the IP is the IP of the machine where nodered is installed and port the one of NodeRed, usually 1880) , triggering the flow.


Do you think it’s possible to show the set-up from beginning until end (both from the Node-RED perspective, which you’ve shown, and the web requester side of things, please? I assume your Node-RED is running on the Rapsberry Pi? If so, that is pretty easy to install. What I am not getting is how to put it all together. In other words: If device XX changes to ‘on’ in SmartThings, then send me an email. At XXXX time every day, turn on device XX. This would cover both sending commands out to ST and receiving device status from ST back to Node-RED. Which palette are you using in Node-RED? Does this require the ST token?

I think it would help tremendously to see exactly how it’s set up, as that will be easier to visualize. How many web requester devices do we need to have? In other words, if I have 20 water sensors and I want any of those to send me an email when it detects ‘wet’ and turn off the automated water valve, how would that look, programmatically, from both the Node-RED side and the ST side with the web requester? Is that 20 web requester devices that need to be set up in ST? How do we decide what that the specific URL is, other than knowing a component of it consists of the local device IP running Node-RED?

just to be clear, this last method requires no integration between ST and NodeRed, and it doesn’t require the token. It’s just a sort of messaging between the 2 systems, ST sends a request that triggers a specific node of NodeRed, and that starts a flow.
You need only 1 web requestor device, then you can either:

  • go into the setting of the web requestor and set pre-configured web requests, then in ST routines,as an action,you select the devices and the specic pre configured web requet you want to send
  • directly in the routine (on the ST app) you can choose the web requestor as device for the action and specify there the URL

Unfortunately I have barely the time to record videos for my youtube channel in Italian, if I make another on NodeRed I’ll keep in mind to add english subs.

1 Like

@taustin has a Web Requestor webhook edge driver which you could probably use.

1 Like

Thank you for more information. Still not totally getting it, as wouldn’t you want Node-RED to make the request to ST first if you’re only controlling a device (like turning on a light?) Conversely, I could see how if you are asking a device to report back to ST (e.g., ‘wet’ sensor,) the communication would be from ST to Node-RED and then Node-RED would run the flow.

I understand time is an issue and appreciate you giving a bit more detail on this. If you happen to have just a few moments to put together a brief example here with screenshots like you have, hopefully it will help seeing the “big picture.” One example would be if it’s XX time, turn on this device in ST. Another is if any of the water sensors detects 'wet," turn off the water valve. Seeing a few screenshots and an actual example from both sides I think will complete the circuit, so to speak :slight_smile: It would provide 2 simple examples going both ways (from Node-RED to ST and vs. versa.)

Thank you, after I saw @ sulisenator previous explanation, I did a search and found it (I think this is what he speaks of?)

I’m still trying to put all the pieces together on this :slight_smile: If anyone has the same set-up and has a brief amount of time to put a couple examples together, that would be great, not just for me, but probably a group of us on here. I am aware of the alternatives currently available to us, but this could open up even more flexibility now and into the future. I’m wondering why routines are being used here? Couldn’t the web requester send the request back to Node-RED so there’s not another step in the process? What are the benefits of using this setup vs. just routines? I’m guessing because you are harnessing the full power of Node-RED, but still trying to fully understand this.

1 Like