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
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).
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.
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)
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:
Even though serial nodes are not part of the AndinoSMS node connection and come pre-installed with a standard install of Node-Red on the Raspberry Pi, they are required for communication with the modem via Node-Red. This requires the correct configuration of the Serial nodes as follows:
Here, switch out the Serial Port line with the correct device for the modem. This normally is:
For the 2G Modem:
For the 4G Modem:
By default, the modem keeps all received SMS messages saved. This will lead to the SMS buffer eventually filling up, at which point no further SMS can be received. This can also be done automatically in Node-Red by following these steps:
Take the output of the Process SMS node and connect it to a Function node (official Function node provided with the base Node Red installation).
In the function node, enter the following code (in the "Function" tab)
msg.payload = "AT+CMGDA=\"DEL ALL\""; return msg;
Connect the output of the function node to a Serial Out node and configure this node as described in our documentation.
The SMS buffer should now automatically be emptied after every SMS that has been processed. In case the SMS buffer is already full, it is probably necessary to trigger the function node you created manually for the first time. This can be done connecting an inject node to the input of the function node (leave everything as default for the inject node), deploying everything and then simply pressing the button next to the inject node.
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:
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.
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.
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.
While the flows using function nodes offer some of the functionality of the custom nodes, they cannot be imported into existing projects in NodeRed as easily and are no longer officially supported or maintained. Their use is only recommended for testing. See here for a list of all function node flows.