Skip to content

# Notify Action

The Notify action sends a notification using an available, configured notification method.

Each notification method has its own requirements and limitations; see below.

All notification methods support an expression as the message to be sent. This is done by placing the expression within `${{ }}`. For example, a message that inserts the expression variable `humidity` might look like this: `${{ "The current humidity is " + humidity + "%" }}`. Notice that the expression is entirely surrounded by the curly braces. The form `The current humidity is ${{humidity}}%` is incorrect and will not work. Any valid expression may be used, and all operators and functions are available. For example, if you have temperature in degrees-C but you want your message in degrees-F, you can use `${{ "The temperature is " + ( temp * 1.8 + 32 ) + "F" }}`.

## Notification Methods

The following notification methods are currently supported:

### Alert

The Alert method puts up a notification on the Reactor Status page. Profiles are not supported for this method.

### SMTP Mail

The SMTP Mail method sends a SMTP (Simple Mail Transfer Protocol) message. A message and list of recipients must optionally be specified. Email addresses specified with this method must be in the form `someone@domain` or `Name <someone@domain>` and may not contain commas, even if quotes are used (e.g. `"Lastname, Firstname" <someone@domain>` is not acceptable).

The recipient, subject, and message body all allow expression references using the usual `${{ expression }}` syntax.

Before using this method, you must configure at least one profile with an outbound mail server. In the configuration file `notification.yaml`, you'll find an `SMTP` section. This section contains the various settings that you may need to configure your SMTP server. By default, an SMTP MTA running on the same system as Reactor (aka `localhost`) will be used, unless you modify the configuration to do otherwise. The configuration details are documented in the configuration file. Please note that any passwords needed are stored in plain text in the configuration file.

### Prowl

The Prowl method sends the requested message to the Prowl servers. Setup of an API key is a prerequisite to using this method. An API key can be sourced from the Prowl service by registering for an account at https://www.prowlapp.com/ and then creating an API key at https://prowlapp.com/api_settings.php. Note that the storage of the API key is not secure (plain text in the config file).

You can configure the API key in the `Prowl` section of the `notification.yaml` file.

### Pushover

The Pushover method sends notifications through the Pushover service. You must register for an account on their web site or through one of their mobile apps. This will give you a user key (shown on the landing page when you log in), and then you can register an application to get an API token. These data can then be added to a `Pushover` profile in `notification.yaml` configuration file.

Info

Pushover is a paid service. It offers a limited trial period. See their site for current pricing (as of this writing, it's one-time US$4.99 per client/endpoint).

Attention

As of this writing, the "Emergency (2)" priority level verifiably does not work on Android, and apparently not on iOS either. This is a bug and/or limitation of the Pushover service (and iOS). It is therefore not displayed as an available priority level.

### Syslog

The Syslog method sends the message in a Syslog UDP datagram to a server (target port 514). The IP address of the server must be specified. Configuration of this method is done via the `Syslog` section of the `notification.yaml` configuration file.

Syslog messages may contain expression variable references using the usual `${{variableName}}` syntax.

Any error that occurs in communication with the Syslog server will be logged to the `reactor.log` file, although these will be minimal because UDP does not guarantee delivery. Please look in the log for messages before posting "it doesn't work" messages on the community forums. The author will not provide diagnostic support for your network or Syslog server.

### Telegram

The Telegram method sends a message using the Telegram Bot API. The message text may contain expression variable references using the usual `${{variableName}}` syntax. Errors are logged to the `reactor.log` file.

This notifier supports three basic formatting options for messages: plain text, Markdown (V2), and HTML. If you send messages using the Markdown or HTML format options, your message text must follow the rules for that format, including escaping of special characters, etc. Refer to the Telegram API documentation for specifics.

Updated 2021-Aug-09