Tag Archives: the script

The Script (Original Article)

It occurs to me that I regularly refer to my “script” – without ever having detailed what it does!  I’ll fix that now.

The “script” is something Aidan and I originally put together for our own use, mainly to help when running home control systems – to simplify Debian Jessie installations on the Raspberry Pi to suit our purposes. Over time as I have reviewed various SBC boards I’ve modified the script with LOTS of feedback from readers in here until today where it will install software over a basic Debian Jessie installation on a range of boards including but not limited to:

  • Raspberry Pi2
  • Raspberry Pi3 (inc Raspbian "Stretch")
  • NanoPi M1, Neo etc
  • Chip
  • Orange Pi PC (Armbian)
  • Roseapple Pi (Armbian)
  • BananaPi M2+ (which came up with 3 usable UARTS in Node-Red!)
  • Orange Pi Zero
  • Various FriendlyArm boards
  • Various VMs (Debian 8, XENIAL, DIETPI and PIXEL)

As the Raspberry Pi 1 is a little underpowered and old - it is not supported - if anyone wants to provide information to make it work - we can look at that.

The software installed using this script includes

  • Python, Samba, Telnet
  • Mosquitto with Websockets
  • Apache with PHP, SQLITE and PHPLiteAdmin
  • NodeJS
  • Node-Red including:
    • node-ned-nontrib-config
    • rode-red-contrib-grove
    • node-red-contrib-diode
    • node-red-contrib-bigtimer
    • node-red-contrib-esplogin
    • node-red-contrib-timeout
    • node-red-contrib-openweathermap
    • node-red-contrib-google
    • node-red-contrib-sqlite
    • node-red-contrib-emoncms
    • node-red-contrib-geofence
    • node-red-contrib-ivona
    • node-red-contrib-moment
    • node-red-contrib-particle
    • node-red-contrib-web-worldmap
    • node-red-contrib-sqldbs
    • node-red-contrib-ramp-thermostat
    • node-red-contrib-graphs
    • node-red-contrib-isonline
    • node-red-node-ping
    • node-red-node-random
    • node-red-node-smooth
    • node-red-contrib-npm
    • node-red-contrib-file-function
    • node-red-contrib-boolean-logic
    • node-red-node-arduino
    • node-red-contrib-blynk-websockets
    • node-red-dashboard
    • node-red-node-darksky
    • node-red-node-serialport
    • node-red-contrib-owntracks
    • node-red-contrib-chatbot
  • GPIO library as appropriate
  • Webmin
  • MPG123
  • Screen
  • PHPSysinfo
  • CU
  • MC (and editor)
  • HA-Bridge

Node-Red packages have been added recently and some removed (admin which is no longer needed as there is a package manager built into Node-Red). Also some changes have been made to make non-root GPIO easier.

Firstly let me state that this was built for our own purpose and is neither guaranteed to work nor supported. You should have a clean Debian (or Ubuntu or Raspbian) installation with perhaps 8GB of SD – though this lot won’t actually add much and on a Raspberry Pi if you get rid of WolfRam (one of the menu options) you’ll save more than you lose! That and LibreOffice take up a massive amount of space and if you’re an experimenter I’m assuming you’re not likely to need either. 8GB of SD typically leaves LOADS of space for files and future additions.

If this script is to work you should create a user “pi” when setting up the board – clearly a Raspberry Pi will have this already.  Copy the script – call it, say, script.sh, into the pi directory and make sure it has execute rights. You should be logged in as user pi to do this. Then run the script – could take half an hour or twice that long – depends on the board. You will be asked simple questions about passwords etc.

And that is it – the script if it runs correctly (will likely show up some WARNINGS on the way – ignore – and NPM ERRORS which aren’t errors) will at the end suggest a reboot – do the reboot – and you should be up and running.  Don’t attempt this if you’re not familiar with running scripts and have absolutely no related experience. It is simple, it should run, but I don’t provide a support workshop other than people asking questions in here which I or another reader may respond to.

If it all works well, you should find Node-Red on port 1880, Webmin on port 10000 and at port 80 you should have Apache with default pages. With some boards, it may be necessary to change permissions on serial ports if you can’t open them and of course parallel port operation from Node-Red other than real Raspberry Pi is likely to require using the EXEC node – explaining that is beyond the scope of this article and may be trivial or non-trivial Generally, I’ve managed to get port access without requiring a degree in Linux.

Always happy to listen to TESTED changes to the script with a view to incorporating more useful features. Right now I’m about to install on a BananaPi M2+ and next week we’ll be trying out the Orange Pi Zero (alongside a review of that board). See the later article on this subject here.