Du ser en gammel version af denne side. Se den nuværende version.

Sammenlign med nuværende Vis sidehistorik

« Forrige Version 4 Næste »

After seeing some of the stuff my colleague Martin has done with Node-RED, I wanted to switch to oit, despite my KISS strategy, and Node-RED just introduces another device to mange.

Installling Node-RED

But, starting it on Docker on my Home Laptop (also used for Home Assistant on Docker and Plex Media Server):

mkdir /opt/node-red
docker run -d --restart unless-stopped --network=host -v /opt/node-red:/data --name nodered nodered/node-red

And it was running on http://sparrow:1880. I saw some wierd stuff in the start, until i pressed "Deploy" the first time, after that every thing has just bee working.


NR has (as far as I know currently, any users or admin/management in front of it by default, and I wanted to be able to use it from pretty much everywhere... so I created a dual stack of Reverse Proxies:

Proxies

Setting the browser to http://nodered.mos-eisley.dk it hits my Confluence Server (in a Datacenter) and the Apache2 on it proxies it to http://cantina,mos-eisley.dk:1890 (Home laptop), and the Apache2 on it proxies it to sparrow:1880 (the Docker container on the Home Laptop)

On both Apache2 I have IP Restrictions:

<VirtualHost nodered.mos-eisley.dk:80>

        ServerName nodered.mos-eisley.dk

        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
        ErrorLog ${APACHE_LOG_DIR}/nodered.mos-eisley.dk-error.log
        CustomLog ${APACHE_LOG_DIR}/nodered.mos-eisley.dk-access.log combined

		RewriteEngine on
        RewriteCond %{HTTP:Upgrade} ^WebSocket$ [NC]
        RewriteCond %{HTTP:Connection} Upgrade$ [NC]
        RewriteRule .*/(.*) "ws://cantina.mos-eisley.dk:1890/$1" [P,L]

        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPass / http://cantina.mos-eisley.dk:1890/
        ProxyPassReverse / http://cantina.mos-eisley.dk:1890/

        <Proxy *>
        Order deny,allow
        Deny from all
        Allow from xxx.xxx.xxx.xxx
        Allow from yyy.yyy.yyy.yyy
        </Proxy>

</VirtualHost>
cantina.mos-eisley.dk
<VirtualHost *:1890>
        ServerAdmin webmaster@localhost

		RewriteEngine on
        RewriteCond %{HTTP:Upgrade} ^WebSocket$ [NC]
        RewriteCond %{HTTP:Connection} Upgrade$ [NC]
        RewriteRule .*/(.*) "ws://localhost:1880/$1" [P,L]

        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPass / http://localhost:1880/
        ProxyPassReverse / http://localhost:1880/

        <Proxy *>
        Order deny,allow
        Deny from all   
        Allow from 77.243.52.144 # www.mos-eisley.dk
        Allow from 10            # Local Lan 
        </Proxy>

</VirtualHost>


With this setup I can use it from xxx.xxx.xxx.xxx and yyy.yyy.yyy.yyy that represents some well known adresses like work and fiber.


Adding Node-RED To Home Assistant

In Node-RED, under Settings → Pallette - Add "node-red-contrib-home-assistant-websocket":

In Home Assistant, Add "Node-RED Companion":

Check out https://zachowj.github.io/node-red-contrib-home-assistant-websocket/guide/custom_integration/ for some tips also.


  • Ingen etiketter