Andino / RaspberryPi: SMS Handling Nodes

Package name: node-red-contrib-andino-sms

This collection of Node-Red nodes contains 4 nodes enabling different aspects of SMS handling using the Raspberry Pi and a 2G/4G modem on the Andino. The following sections explain the functionality of each node. The nodes use at commands to communicate with the modem in conjunction with serial nodes. For a tutorial on how to install Node-Red on the Raspberry Pi, as well as how to install custom nodes, please refer to


SMS Sender

This Node, in conjunction with a serial out node, enables sending SMS to a target phone number.

The node requires two input values:

The node then sends three output messages (switching the modem to text mode, entering the phone number, entering the message).

SMS Checker

The SMS Checker node sends out a request reading all unread messages to the modem when receiving an input (the content of the input message is irrelevant). It first sets to modem to text mode, then sends a check SMS command.

SMS Listener

This node checks all inputs for an indicator message, that a new SMS has arrived (+CMTI:). When receiving a matching message, it relays the message to the next node.

The SMS Listener node can be used in conjunction with the SMS Checker node to automatically check for incoming messages. (see example flows below)

SMS Processor

The SMS Processor node takes incoming signals messages from a serial node, checks if the input is part of an SMS message and returns a message with the following variables:

Example Flows

Downloads for all example flows can be found on GitHub!

Using the nodes as described above, we created several example flows for common use cases in SMS processing. These include:

Sending SMS

Node-Red Raspberry Pi Sending SMS

Using the Send SMS node in combination with a Serial out node, this flow can send SMS for testing purposes. The flow is initiated by a inject node, injecting msg.payload and msg.number.

Reading SMS manually

Node-Red Raspberry Pi Reading SMS Manually

This flow can roughly be split in two parts: At first, the Check for SMS node is triggered by an inject node. It then sends out a check message request through the Serial Out node.

The Process SMS node then checks all incoming messages from the Serial in node for an SMS output message. These are sent to three debug nodes that print msg.timestamp, msg.number and msg.payload to the debug window.

Reading SMS automatically

Node-Red Raspberry Pi Reading SMS Automatically

On this flow, the Serial in node sends all incoming messages to the Listen for SMS node. This checks if the incoming message indicates a new SMS. If it does, it triggers the Check for SMS node, which sends an SMS Read request to the Serial out node.

As above, the Process SMS node then checks all incoming messages from the Serial in node for an SMS output message. These are sent to three debug nodes that print msg.timestamp, msg.number and msg.payload to the debug window.

Flows using function nodes

While the flows using function nodes offer most of the functionality of the custom nodes, they cannot be imported into existing projects in NodeRed as easily. Their use is only recommended for testing. See here for a list of all function node flows.


Author