AMQP node in Node-RED to publish messages

Client: Startup
Industry: ICT AMQP Node
Location: U.S.A

AMQP Node

Requirement

Client wanted to establish a secure and reliable communication channel between their Raspberry Pi based product and the AMQP Node server. The security requirement pertains to the server credentials being saved in plain text and that the data transmission to the server is over an unencrypted channel. The server communication is unreliable because the data packets sent to the server while the server is down are irrecoverably lost. They wanted us to help implement SSL in the server communication and buffering of AMQP Node data packets.

Solution

We have customized the AMQP node in Node-RED to publish messages to the RabbitMQ server. This node has option to configure SSL certificates, using which the node can publish the messages securely. If the connection to the configured server is lost, the node will buffer the messages in a local database and try to reconnect to the broker. On successful reconnection, the node will publish the buffered messages to the server. A Python CLI is developed to keep the server credentials encrypted and to manage multiple server credentials. The project was for the building automation industry

Technology

Platform:

  • Raspberry Pi
  • SQLite
  • RabbitMQ

Communication Technology:

  • AMQP Node
  • OpenSSL

Software Platform:

  • Python
  • Node-RED