React App
React works with ThingHTTP and MATLAB® Analysis apps to perform actions when channel data meets a certain condition. For example, you can have a mobile app report your latitude and longitude to a ThingSpeak™ channel. When your position is within a certain distance of your house, have ThingHTTP turn on your living room lights.
Note
If you use the React
app with the Test
Frequency set to On Data Insertion when using
Bulk-Write JSON Data, your
React
is triggered once per bulk-update request. It is
triggered when Condition matches
ConditionType, even if the Condition
is matched more than once.
If you set your React
to run on a specific Test
Frequency with a specific Condition Type, be
cautious of how your React
is triggered. The data is now
collected over time and updated as a batch, and the Condition
Type that triggers the React
can vary within a
single batch of data.
Define Reactions to Channel Data
Select Apps > React.
Click New React.
Select:
Condition Type
Test Frequency
Action
Options
Click Save React.
Condition Types
ThingSpeak channels support numeric sensor data, text, strings, status updates, and geo location information. Use these condition types to specify conditions that trigger reactions based on your channel data.
String
This condition tests a text string with ASCII characters in a ThingSpeak channel field. For example, “If Channel 1, Field 1, is equal to blue, then set my light to blue.”
Check the data with these constraints when testing for strings:
contains
starts with
ends with
is equal to
is not equal to
Status
This condition tests a ThingSpeak status in a channel. You can search the status for a word, and send a ThingHTTP request when the test condition is met.
Check the data with these constraints when testing for ThingSpeak channel status:
contains
starts with
ends with
is equal to
is not equal to
Numeric
If you have sensor data or numeric data in the fields of a ThingSpeak channel, use the numeric condition. You can send a control command to another service or device that accepts HTTP requests using ThingHTTP.
Check the data with these constraints when testing for numbers in a ThingSpeak channel field:
is greater than
is greater than or equal to
is less than
is less than or equal to
is equal to
is not equal to
Geo Location
This condition checks the location data in a ThingSpeak channel. For example, if you have mobile app reporting your latitude and longitude to a ThingSpeak channel, you can turn on your living room lights when your position is within a certain distance of your house.
Check the data with these constraints when testing for location information on a ThingSpeak channel:
is within
is farther than
No Data Check
This condition checks whether the ThingSpeak channel is receiving data at the specified interval. If no data updates occur within the specified time range, the action selected in your React app is triggered. For example, if a power outage interrupts your device and your channel is not updating, you can trigger an action. Specify the amount of time that your channel does not receive new data before triggering the action.
Test Frequency
Select the frequency at which you can test for the specified condition.
On Data Insertion: Test each time data is inserted. You cannot have more than one React configured with
On Data Insertion
for the exact same conditions.Every 10 minutes: Test every 10 minutes, on the clock. For example, a React created at 10:08 a.m. triggers at 10:18 a.m., 10:28 a.m., and every 10 minutes after.
Every 30 minutes: Test every 30 minutes, on the clock.
Every 60 minutes: Test every hour, on the clock.
Action
You can trigger a MATLAB Analysis or ThingHTTP action.
Replacement Keys
You can pass data to your apps using replacement keys. The following table summarizes the standard and custom replacement keys you can use. Some keys are specific to a particular type of request, as indicated in the last column.
Key | Description | Example | Use With |
---|---|---|---|
%%YOUR_CUSTOM_LABEL%% | ThingHTTP replaces this custom replacement value with data in the trigger request that has the label "YOUR_CUSTOM_LABEL". | field1=%%YOUR_CUSTOM_LABEL%% POST data: YOUR_CUSTOM_LABEL=1234 .RESULT: field1=1234 . | Any request |
%%channel_CHANNEL_ID_ | The last value of the specified channel and field. Replacement requests to private channels not owned by the same user as the ThingHTTP request return blank values. | The latest value is %%channel_12_field_1%%.RESULT: The latest value is 2.5. | Any request |
%%datetime%% | The full date and time when the TimeControl or React ran. | The date and time the event occurred is %%datetime%%.RESULT: The date and time the event occurred is 2014-09-24 5:32 p.m. | TimeControl or React |
%%day%% | The name of the weekday when TimeControl ran. | The day the event occurred is %%day%%.RESULT: The day the event occurred is
Wednesday. | TimeControl |
%%day_index%% | The zero-based index of the weekday starting on Sunday. | The number of days used this week is %%day_index%%.RESULT: The number of days used
this week is 3. | TimeControl |
%%hour%% | The hour of the day when TimeControl ran. | The hour that the event occurred is %%hour%%.RESULT: The hour that the event occurred is 5. | TimeControl |
%%minute%% | The minute of the hour when the TimeControl ran. | The minute the event occurred is %%minute%%.RESULT: The minute the event occurred is
30. | TimeControl |
%%trigger%% | The value that triggered React. | It is way too hot in here at %%trigger%% C .RESULT: It is way too hot in here at 40 C . | React |
%%channel_id%% | The channel ID that triggered React. | The channel that triggers is %%channel_id%%.RESULT: The channel that
triggers is 1256. | React |
Options
Run action only the first time the condition is met: Trigger the action if the condition was previously false and is currently true.
Run action each time condition is met: Trigger the action every time that the condition is true.
React App with MATLAB Analysis Code Errors
When you have MATLAB Analysis code that uses a React, React stops running if there are a number of consecutive errors in the MATLAB Analysis code. You can choose to receive an alert via email by checking the box Notify me via email if this MATLAB Analysis fails when triggered by TimeControl or React in the MATLAB Analysis app.