The Internet of Things

Connect SAJ Solar Inverter to Node-Red (part 4)

Node-Red flow part 3

Node 14:

Out of order cath node

Node 15:

Out of order function node

Node 16:

Convert Date & Time function node

Node 17:

Display Date text node

Node 18:

Display Time text node

Connect SAJ Solar Inverter to Node-Red (part 3)

Node-Red flow part 2

Node 7:

Display Day power text node

Node 8:

Display Day power gauge node

Node 9:

Display State text node

Node 10:

Display Power text node

Node 11:

Display Power gauge node

Node 12:

Display Power chart node

Node 13:

Display Max Power text node

Connect SAJ Solar Inverter to Node-Red (part 2)


Node-Red flow part 1

Node 1:

Inject every second a Timestamp


Node 2:

Connect to http://192.168.1.24/real_time_data.xml


Node 3:

Convert XML to a Javascript Object


Node 4:

Convert the Javascript Object to individual Objects


Node 5:

Convert the Onjects

Node 6:

Select the objects

Connect SAJ Solar Inverter to Node-Red (part 1)


My SAJ Solar Inverter:

Model: Sununo Plus 4K-M:

http://www.saj-solar.com/

SAJ Solar Inverter local webpage:

http://192.168.1.24

SAJ Solar Inverter local data:

http://192.168.1.24/real_time_data.xml

Node-Red program: 

Node-Red screenshot:

https://192.168.1.31:1880/ui

Node-Red Security

Log in to the Raspberry Pi using Putty

Stop Node-Red

  • sudo systemctl disable nodered.service
  • node-red-stop
  • sudo reboot & exit

Generating new SSH keys

  • cd .node-red (cd /home/pi/.node-red or cd ~/.node-red)
  • openssl genrsa -out privatekey.pem 1024
  • openssl req -new -key privatekey.pem -out private-csr.pem
  • openssl x509 -req -days 365 -in private-csr.pem -signkey privatekey.pem -out certificate.pem
  • ls -all and you find 3 new files:
    • certificate.pem
    • private-csr.pem
    • privatekey.pem

 Update settings.js

  • nano settings.js
  • uncomment lines:
    • var fs=required("fs");
    • https: {
    • key: fs.readFileSunc('/home/pi/.node-red/privatekey.pem')
    • cert: fs.readFileSunc('/home/pi/.node-red/certificate.pem')
    • },
    • adminAuth: {
    • type: "credentials",
    • users: [{
    • Username: "admin",
    • password: " --- ",
    • permissions: "*"
    • }]
    • },
  • save & exit settings.js 

Install node-red-admin

  • su (to log as root)
  • npm install -g node-red-admin
  • exit
  • pwd
  • cd .node-red
  • node-red-admin hash-pw
Enter the password you want, copy the hash code and save this to the 'password' line in the settings.js file.

Start Node-red

  • sudo systemctl enable nodered.service
  • node-red-start
Now you cane see Node-red in your browser by using https://'ip adres raspberry pi':1880
and login with admin and your password.

Update Node-Red on the Raspberry Pi

Update Raspberry Strecht Lite to the latest version.

Log in to the Raspberry Pi using Putty
Type the following commands one by one
  • sudo rpi-update
  • sudo reboot & exit (reboot the Raspberry Pi)
  • sudo apt-get -y update
  • sudo apt-get -y upgrade
  • sudo apt-get dist-upgrade
  • sudo reboot & exit (reboot the Raspberry Pi)


Install the latest Node.js and Npm

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

To find the version type this commands:
node -v
v8.9.3
npm -v
5.5.1

Install n

  • sudo npm install -g n
  • sudo n latest
  • sudo npm install -g npm@latest
  • sudo reboot & exit (reboot the Raspberry Pi)
To find the version type this commands: 
node -v
v9.3.0
npm -v
5.6.0

Start and Stop Node-Red

node-red-stop - to stop Node-red
node-red-start - to start Node-Red
node-red-log - to view the recent log output
sudo systemctl enable nodered.service - to autostart Node-Red at every boot
sudo systemctl disable nodered.service - to disable autostart on boot

Fix the Serialport Error

  • cd .node-red
  • node-red-stop
  • sudo npm rebuild
  • de-red-start (ctrl c to exit Node-red)

Start Node-Red as a service

  • sudo systemctl enable nodered.service
  • node-red-start (ctrl c to exit Node-red)
Now you cane see Node-red in your browser by using http://'ip adres raspberry pi':1880

https://youtu.be/B0hpv_8is0Q




MQTT


MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. For example, it has been used in sensors communicating to a broker via satellite link, over occasional dial-up connections with healthcare providers, and in a range of home automation and small device scenarios. It is also ideal for mobile applications because of its small size, low power usage, minimised data packets, and efficient distribution of information to one or many receivers.


MQTT








What do you need?

  1. Raspberry Pi
  2. Power supply 5V 2A
  3. SD Card with Raspbian Strech Lite link
  4. UTP Cable
  5. Case for the Raspberry Pi
  6. PuTTy on a Windows or Linux computer.

Setup Raspbian Stretch Lite

  1. Installation of the MQTT Broker on Raspberry Pi. http://mqtt.org/
  2. Make a SSH connection with PuTTy:
    Login: 'pi'
    Password: 'raspberry'
  3. sudo apt-get update
  4. sudo apt-get upgrade
  5. sudo apt-get install mosquitto
  6. sudo apt-get install mosquitto-clients
  7. Testing the Working of MQTT
  8. Open two putty programs on windows, you can do this by clicking the putty.exe file and enter the host name and click to open do this twice so that two putty programs access Pi via ssh. Lets say putty1 and putty2 are open and connected to Pi via ssh for our convenient.
  9. In putty1 window type the command with the topic name YouTube test this topic name can be anything, according to the convenience of the user .

    mosquitto_sub –d –t YouTube test

  10. In putty2 image 2 window type the following command with the same topic i.e YouTube test

    mosquitto_pub –d –t YouTube test –m “Hello from Yuotube”

  11. Now come to the window putty1, image 1 here you will be able to see the message

    Hello from Yuotube


https://youtu.be/hhcc9Pt03x8