# Event + Timer Mode

Send messages on every click and count the number of clicks at regular intervals.

The **Event + Timer** mode combines the behavior of Event and Timer modes, sending a message each time the built-in button is clicked or the external I/O is triggered, as well as counting the number of clicks and triggers and sending an additional message at regular intervals reporting the number of clicks and triggers detected during that interval.

## Configuration

To configure your button for **Event + Timer** mode:

1. Follow the [Configuration](https://docs.soracom.io/en/devices/soracom-lte-m-button/configuration#configuring-a-group) instructions for configuring **Soracom LTE-M Button settings**.

2. Select the **Event + Timer** mode option:

   ![Selecting the Event + Timer mode](https://docs.soracom.io/_astro/01-group-button-settings-event-timer.BCTNyw5o_1afCkW.webp)

   You can configure the following options for **Event + Timer** mode:

   - **Uplink frequency** - The frequency to send [Timer messages](https://docs.soracom.io/en/devices/soracom-lte-m-button/message-examples#timer-message).

   - **Auto sync** - For buttons with firmware version 3134 or later, automatically sync once a day.

   - **External I/O mode** - Configure the external I/O accessory port:

     - **Disabled**
     - [Edge Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/edge-detection)
     - [Pulse Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/pulse-detection)
     - [Temperature Sensor](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/temperature-sensor)

   - **Enable debounce** - Enables debouncing for Edge Detection and Pulse Detection external I/O modes to reduce false triggers.

After configuring **Soracom LTE-M Button settings**, follow the [instructions to sync your button](https://docs.soracom.io/en/devices/soracom-lte-m-button/configuration#syncing-button-settings).

## Messages

When the Soracom LTE-M Button operation mode is configured as **Event + Timer**, the button will send the following types of messages:

- [Event message](https://docs.soracom.io/en/devices/soracom-lte-m-button/message-examples#event-message) (when the external I/O mode is configured as [Edge Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/edge-detection), [Pulse Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/pulse-detection), or disabled), indicating the type of event that triggered the message
- [Event with Temperature message](https://docs.soracom.io/en/devices/soracom-lte-m-button/message-examples#event-with-temperature-message) (when the external I/O mode is configured as [Temperature Sensor](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/temperature-sensor)), indicating the type of event that triggered the message and reporting the measured temperature
- [Timer message](https://docs.soracom.io/en/devices/soracom-lte-m-button/message-examples#timer-message), reporting the number of built-in button clicks and external I/O triggers detected during the configured interval
- [Status message](https://docs.soracom.io/en/devices/soracom-lte-m-button/message-examples#status-message), reporting the current status and configuration of the button

> [!WARNING]
>
> For more information on the **Timer message**, refer to the [Timer Mode](https://docs.soracom.io/en/devices/soracom-lte-m-button/operation-modes/timer) documentation.

## Behavior

**Firmware 3134**

| Input | Action | External I/O mode | External I/O mode | External I/O mode | External I/O mode |
| - | - | - | - | - | - |
| Input | Action | Disabled | [Edge Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/edge-detection) | [Pulse Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/pulse-detection) | [Temperature Sensor](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/temperature-sensor) |
| Built-in button | Single short click | - LED blinks one short green blink: :blink\[.] - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - LED blinks one short green blink: :blink\[.] - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - LED blinks one short green blink: :blink\[.] - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - LED blinks one short green blink: :blink\[.] - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Single short click` |
| Built-in button | Double short click | - LED blinks two short green blinks: :blink\[. .] - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - LED blinks two short green blinks: :blink\[. .] - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - LED blinks two short green blinks: :blink\[. .] - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - LED blinks two short green blinks: :blink\[. .] - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Double short click` |
| Built-in button | Single long click | - LED blinks one long green blink: :blink\[.---] - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - LED blinks one long green blink: :blink\[.---] - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - LED blinks one long green blink: :blink\[.---] - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - LED blinks one long green blink: :blink\[.---] - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Single long click` |
| Built-in button | Extra long click | - LED blinks three short green blinks: :blink\[. . .] - Sends a **Status message** to report the current status and configuration | - LED blinks three short green blinks: :blink\[. . .] - Sends a **Status message** to report the current status and configuration | - LED blinks three short green blinks: :blink\[. . .] - Sends a **Status message** to report the current status and configuration | - LED blinks three short green blinks: :blink\[. . .] - Sends a **Status message** to report the current status and configuration |
| 2-wire accessory | Connected | | - LED blinks one short green blink: :blink\[.] - Increments the **edge\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Falling edge` | - Starts a timer and waits for the wire to disconnect | |
| 2-wire accessory | Disconnected | | - LED blinks one short green blink: :blink\[.] - Increments the **edge\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Rising edge` | - Calculates the timer and performs the same action as the built-in button | |
| Internal timer | Uplink frequency | - Sends a **Timer message** | - Sends a **Timer message** | - Sends a **Timer message** | - Reads the temperature sensor\*1 - Sends a **Timer message** |
| Internal timer | Every 24 hours | - If Auto sync is enabled, sends a **Status message** to report the current status and configuration | - If Auto sync is enabled, sends a **Status message** to report the current status and configuration | - If Auto sync is enabled, sends a **Status message** to report the current status and configuration | - If Auto sync is enabled, sends a **Status message** to report the current status and configuration |

1. The temperature sensor is measured at the end of each summary interval.

**Firmware 2220**

| Input | Action | External I/O mode | External I/O mode | External I/O mode | External I/O mode |
| - | - | - | - | - | - |
| Input | Action | Disabled | [Edge Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/edge-detection) | [Pulse Detection](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/pulse-detection) | [Temperature Sensor](https://docs.soracom.io/en/devices/soracom-lte-m-button/io-modes/temperature-sensor) |
| Built-in button | Single short click | - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single short click` | - Increments the **short\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Single short click` |
| Built-in button | Double short click | - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Double short click` | - Increments the **double\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Double short click` |
| Built-in button | Single long click | - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Single long click` | - Increments the **long\\\_summary\\\_\_#\_** counter - Sends an **Event with Temperature message** with detect type `Single long click` |
| Built-in button | Extra long click | - LED blinks one short green blink: :blink\[.] - Sends a **Status message** to report the current status and configuration | - LED blinks one short green blink: :blink\[.] - Sends a **Status message** to report the current status and configuration | - LED blinks one short green blink: :blink\[.] - Sends a **Status message** to report the current status and configuration | - LED blinks one short green blink: :blink\[.] - Sends a **Status message** to report the current status and configuration |
| 2-wire accessory | Connected | | - Increments the **edge\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Falling edge` | - Starts a timer and waits for the wire to disconnect | |
| 2-wire accessory | Disconnected | | - Increments the **edge\\\_summary\\\_\_#\_** counter - Sends an **Event message** with detect type `Rising edge` | - Calculates the timer and performs the same action as the built-in button | |
| Internal timer | Uplink frequency | - Sends a **Timer message** | - Sends a **Timer message** | - Sends a **Timer message** | - Reads the temperature sensor\*1 - Sends a **Timer message** |

1. The temperature sensor is measured at the end of each summary interval.

### LED Indicator

While the button is sending an **Event message**, **Event with Temperature message**, **Timer message**, or **Status message**, the LED will blink to indicate the progress:

| LED blink pattern | Description | Progress |
| - | - | - |
| ☀──☀──☀── (repeating) | Slow green blinking | The button is connecting to a network |
| ☀☀☀☀ (repeating) | Fast green blinking | The button has connected and is sending the message |
| ☀──────── | Extra long green blink | The button successfully sent the message |
| ☀──────── | Extra long red blink | An error occurred |

If the button has trouble sending a message, it will try one more time before giving up. For more information, refer to the [Troubleshooting](https://docs.soracom.io/en/devices/soracom-lte-m-button/troubleshooting) section.

Refer to the [LED Reference](https://docs.soracom.io/en/devices/soracom-lte-m-button/led-reference) for descriptions of additional indicators.

### Canceling a Message

If you want to cancel an **Event message**, **Event with Temperature message**, or **Status message**, simply click the built-in button once while the button is connecting to a network.

> [!NOTE]
>
> The **Timer message** cannot be canceled.
