The i.Report Text Messenger is a self-contained remote monitoring and alarm notification system that monitors data points in one or more Modbus or BACnet devices and alerts you and others via SMS when an event has been detected that somebody should know about. The i.Report Text Messenger offers simple yet powerful remote monitoring without the need for a monitoring service - no contract required.

VP3-2290 Cellular Remote Telemetry Unit

i.Report VP3-TM10 Modbus Text Messenger for Modbus RTU

Order code: VP3-TM10

VP3-2290 Cellular Remote Telemetry Unit

i.Report VP3-TM30 BACnet Text Messenger for BACnet MS/TP

Order code: VP3-TM30

VP3-2290 Cellular Remote Telemetry Unit

i.Report VP3-TM60 Modbus Text Messenger for Modbus TCP

Order code: VP3-TM60

VP3-2290 Cellular Remote Telemetry Unit

i.Report VP3-TM70 BACnet Text Messenger for BACnet IP

Order code: VP3-TM70

Control Solutions’ i.Report Modbus Text Messenger can be Modbus master or slave. As master, it will poll other Modbus slaves, querying the registers you have selected and evaluating register content against alarm criteria. As slave, you can have your PLC or SCADA system write data to the i.Report for alarm evaluation. As a slave, the i.Report will contain up to 100 holding registers addressable by your PLC or SCADA.

Modbus RTU also includes "Sniffer Mode" which means you can monitor Modbus data without any reprogramming of the Modbus devices being monitored. As long as there is traffic on the network between a master and one or more slaves, you can monitor it and receive notifications when your selected registers match the criteria you set. Modbus TCP does not need sniffer mode because you can always have multiple masters on a TCP network. So if you know what register you want to look at, just poll it.

Control Solutions’ i.Report BACnet Text Messenger can be a BACnet client or server. As a client, it will read properties from objects in other BACnet devices and retain copies of that data for evaluation against alarm criteria. As a server, the i.Report will contain a collection of Analog Value and/or Binary Value objects which other BACnet devices may write data to. Data written to these objects by other BACnet devices will be evaluated against alarm criteria for possible notification.

The notification message can say almost anything you can dream up. The notification can be triggered by exceeding a threshold high or low, a change in state or value, or deviation from a setpoint.

The message can be anything you like. To make the messages more meaningful, there is a set of variable names that can be used to get real time information when the message is created. For example, if you include “{val}” in your message, the {val} will be replaced by the actual value of that data point as of when the message is created. Other variables include {site} for site name or location of the VP3-TM or {name} for name of this particular data object. Refer to the section about alarm message formatting later in this user guide for the complete list of available variables.

One of the more interesting variables is {opt\a\b}. This means text option. If the alarm is active, then text string “a” is included in the message, otherwise text string “b” is included. An example using “opt” would be "{name} at {site} is {opt\too high\normal}”. If the object name is “Tank level” and site name is “Station 1”, then the message delivered when the alarm is active would be “Tank level at Station 1 is too high.”

You can do everything needed to configure the VP3-TM entirely via SMS. This is most useful for making changes after the remote monitoring is already deployed at some remote location. You will find initial setup is greatly streamlined with the use of the free configuration tool software provided by Control Solutions.

The VP3-TM configuration tool provides easy templates to fill in for configuring data points and their respective alarms, as well as entering users in the phone book. To further speed up the process, you can create a list of data points using a standard spread sheet program (e.g. Excel). Save your data points as a CSV file, and the VP3-TM configuration tool will import your entire list at once. A CSV import may also be used to import your list of users into the phone book.

Once you have created the initial configuration, you can save your entire configuration to a text file as a configuration script. Your data points, alarm settings and messages, and phone book are all included in this file. This is useful both as a backup copy, and for duplicating the same configuration for a second similar site.

You have the option of starting from scratch with a totally blank VP3-TM device and configuring it entirely via SMS messages. Normally, commands including configuration changes can only be sent by a known user in the phone book whose credentials include commands allowed. But if the device is brand new and totally blank, then there are no known users. There is a special command usable one time only when there are no known users.

The command Owner=”My Name” is used to claim ownership of the VP3-TM. The name must be enclosed in quotes when sent to the VP3-TM’s phone number. If recognized, the reply will be “Welcome”. At this point, the phone number from which the owner command was sent is automatically entered in the phone book with the command qualification set to “yes”. This user may then proceed to send additional commands.

One of the important settings that should be sent early on is the site name.

Objects may be defined, and alarms configured for those objects, entirely via SMS. The various commands for doing so are detailed later in this user guide.

Protocol settings will also need to be made. In this case, protocol settings for polling a Modbus holding register are illustrated. The means of setting protocol parameters for BACnet is similar.

And with that, this i.Report is up and running.

If you don't have the Modbus device but do have things to monitor, like sensors, switch contacts, and the like, Control Solutions' ValuPoint I/O devices make a perfect match for the i.Report.

Screen shot from web portal used with VP3-2290 Cellular Remote Telemetry Unit

Example: Tank Level Percentage

Messages may contain “variables”. One of the more interesting variables is {opt\a\b}. This means text option. If the alarm is active, then text string “a” is included in the message, otherwise text string “b” is included. In this example, the message will say “Low” if the alarm is active, and “Ok” otherwise.

The {val} variable can be used to include the data point or object’s actual value at that point in time. But sometimes the actual number is less meaningful than a relative value. In this example, the {%60} means the message will include a percentage which will be the object’s actual value divided by the number given in the variable. The number following “%” in the variable can be any number. In this example, the object’s actual value would have been 2.4 to generate a message saying 4%. If the fuel level on the backup generator is down to 4%, somebody needs to get moving!

Screen shot from i.CanDoIt graphical programming tool used to create control programs for the VP3-2290 Cellular Remote Telemetry Unit

Example: Simple On-Off

Sometimes we don’t care about level as a percentage, we just want to know if something is on or off. This example illustrates that. In this example, we want to know about it if our fan stops running. The object is defined as Boolean/bit, and our alarm is active any time that bit is not 1 - a 1 usually implies “on” or running.

Screen shot from web portal used with VP3-2290 Cellular Remote Telemetry Unit

Example: Enumerated State

There are times when the notification we desire is not strictly a matter of high/low or on/off. We want to know when something changes state, and there may be multiple states. One example might be a 3-position switch that is on-off-auto. Or a speed setting of off-low-medium-high. It is possible to use a collection of cascaded objects to generate notifications, one per setting. We refer to this type of alarm as an enumerated alarm.

The first object in the sequence will be configured to query some remote device to obtain the present value of the switch setting in question. The remaining objects will simply refer to the previous object using the “virtual link”. We also select the option “Notify Active Only”. Normally you would receive a message when the alarm transitions to active, and another message with the alarm transitions to inactive. With the “Notify Active Only” selected, you will only receive a notification when the alarm transitions to active. Since we have cascaded the same data point to multiple objects, and each object has its own “alarm” setting, we only want to know about the active transitions.

In the example illustrated here, you will receive the “Switch Not in Auto” notification when switch transitions to a value of 0, “Switch is in Auto” when the switch object transitions to a value of 1, and “Switch is in Override” when the switch transitions to a value of 2. On startup, the value of zero is treated as a transition for purposes of an “equal to zero” test.

Screen shot from web portal used with VP3-2290 Cellular Remote Telemetry Unit

Example: Alarm Escalation

The alarm escalation has been mentioned previously. Here we illustrate the settings necessary to implement that escalation. The alarm settings such as test and threshold are made the same as with any other alarm. The only additional requirement in configuring the object’s alarm parameters is that you select “Require Ack”. This means the alarm notification will potentially repeat indefinitely until acknowledged by a user known to the VP3-TM, i.e., found in the phone book.

The more important settings for alarm escalation are found in the group configuration. The Repeat time is a timeout in seconds. If the alarm is not acknowledged within this amount of time, the notification will be sent again to everyone in that group.

The Delay is an optional timeout in seconds that causes this group’s notifications to be delayed. The delay time for a group should always be greater than the repeat time for the previous group.  If the alarm has been acknowledged before the delay time expires, then this group is never notified at all.

So here is what is going to happen in this example. When the alarm occurs, Jack and Tom will be notified immediately. They’ve got 10 minutes to acknowledge the alarm. They will get a reminder after 5 minutes. Suppose they don’t acknowledge the alarm. At 10 minutes, Jack and Tom will get another reminder notification, but now Jim is also notified. He’s the supervisor and he’s probably going to be on the phone looking for Jack and Tom. Jim has the option of acknowledging the alarm himself, but he forgets. Another 10 minutes go by and nobody has acknowledged the alarm yet. Now Pete is going to get his first notification while everybody else gets another reminder. Pete is the big boss, and he’s going to be unhappy because he should never have to be notified. But hey, that’s why we have escalation capability in the first place - keep those guys in line.

How do you acknowledge the alarm? It’s easy. If acknowledgement is required, there will be a number in brackets at the start of the message. Simple reply to the text with “Ack a/b” where a/b are the numbers in the message being acknowledged. The acknowledgement must come from a phone number in the phone book, and the a/b numbers must match before the acknowledgement will be registered.


VP3-TMxx Hardware Features

• Self-contained remote monitoring & alarm notification system
• Monitors data points in one or more Modbus/BACnet devices
• Alerts one or more users via SMS when event detected
• User configurable SMS messages with dynamic content
• Up to 100 data objects (Modbus registers or BACnet objects)
• Alarm settings, SMS message content programmable per object
• Up to 50 user phone book, 8 user groups
• Notify multiple users with configurable delay & repeat times
• Notification escalation with repeat when not acknowledged
• Password protected replies accepted from authorized users
• Unrecognized phone numbers ignored
• Optionally change parameters or command outputs remotely
• Modbus TCP 10/100BaseT. up to 20 TCP devices
• Modbus RTU 1200 to 38400 baud, up to 100 RTU devices
• BACnet IP 10/100BaseT
• BACnet MS/TP 9600, 19200, 38400, 76800 baud
• Master or slave, client and server
• Modbus RTU “Sniffer Mode”
• Operating voltage: 10-30VDC, 24VAC
• Operating current: 0.1A @ 24VDC typical,
    0.4A @ 24VDC peak (transmitting, 500mSec duration typical)
• DIN rail mounting, 100mm H x 70mm W x 60mm D
• Pluggable screw terminal block for power & RS485 network
• Operating temperature -40°C to +85°C;
• Humidity 5% to 90% non-condensing
• AT&T compatible 4G LTE (bands 2, 4, 12)
    Contains FCC ID:RI7XE866A1NA, IC: 5131A-XE866A1NA
• Verizon compatible 4G LTE (bands 4, 13)
    Contains FCC ID: RI7LE866SV1, IC: 5131A-LE866SV1

The VP3-TM is shipped to US locations with your choice of AT&T or Verizon compatible SIM pre-installed. You activate the SIM at your own convenience with low-cost no-contract service. Non-US destinations will require a user provided SIM compatible with local carriers.


• VP3-TM Support Package
Contains configuration tool software, documentation.

• Modbus Tutorial
Introduction to Modbus, including function codes, exception codes, register numbering.

i.Report Text Messenger Video Library

Watch these videos for an overview of quick and easy configuration of the i.Report Text Messengers.

i.Report Modbus Text Messenger Setup

i.Report BACnet Text Messenger Setup

Our most extensive technical support is provided by the same engineering staff that developed the products. Your personal attention from this staff is available via the support ticket system.

No user/password is required to open a new ticket. Once you open a ticket, you will immediately receive an email with your ticket number. Your ticket number becomes your login to review your ticket(s) later. Click the Support Ticket icon anywhere you see it. (If you do not get an email with your ticket number, within minutes, check your junk folder, spam settings, etc, and try again if necessary.)

 Open a Ticket