Hacker News new | ask | show | jobs
by johntash 2210 days ago
I've been using Node Red for automation using home assistant (instead of their built-in automation) and generally like it.

I'd like to use it more like IFTTT, but haven't really found any good uses so far since I was never a fan of IFTTT and connecting all my various accounts to one service. Do you have any examples of what you use it for?

1 comments

I co-founded a disaster relief non-profit in 2017, so in that context, web scraping of sites/services without APIs is an obvious one.

Imagine the day after a hurricane has passed, needing to go find information before everyone else (even before the govt). Well, you can scan Twitter accounts who are posting videos and pics within a certain radius, scan for open local facebook groups with pic and video posts, scan instagram accounts for pics and videos (no api available for instagram), scan for public security camera feeds within a radius, etc. Being able to automate that makes your data gathering infinitely more effective. Doing it manually has an upper limit of what all you can check every hour, particularly when you get busy with other things.

RSS-Bridge is a scraping framework specifically for this purpose, that allows you to quickly write up scraping scripts and serve them as RSS feeds.

Of course scraping is all fine and good, but getting the data you find into a central database is where the magic happens. Even if you automate the scraping, you're going to have to centralize the data and serve your own API to it, or build a simple site to render it all, and have it in a store that allows it to be effectively queried. So how much time would it take to build scrapers for 5-7 different sites, plus database schema and database queries to store the data you get from them, plus a manually constructed API to serve the data from your database back out, plus a UI to render it all? For one dev that's a project of a few days at least, but you don't have a few days. The whole thing, from the standpoint of a rapid-response NGO, is gonna be over in a week when the FEMA and Red Cross trucks get deployed. You need to be able to do all of this quickly.

With Node Red you can build all that in a couple of hours, rather than a couple of days.

Being able to quickly integrate 3rd party API data and 3rd party libs with minimal custom code is a huge benefit too, in the same sort of activity. Node Red has a script that auto-generates nodes for Swagger API definitions, so you don't have to read docs and write integration functions to tie in third party data to a particular set of business logic, you just drag and drop it and pluck out the parts of the response objects you need.

For example, I built a rudimentary UPC scanning capable inventory system, also in about two hours. It went like...

Page with camera access button, quantity box, and submit button -> vanilla JS UPC reading library -> screenshot to base64 on the image for UI rendering -> Kroger product data API to fetch pricing info -> Postgres query for the returned item, if it exists increment by qty, if it does not exist create it with qty.

Now someone can scan donated items with their phone. Sure, it has rudimentary (at best) error handling and you have to explain that to the person doing the scanning, but if you're on a time limit and need something right now it can be done.

How long would it take to write all that by hand? Surely more than 2 hours. Re-creating oauth boilerplate for API authentication alone would probably take a good chunk of the first hour, whereas with Node Red you just fill a form with the headers and it's done.