# Message Examples

Decode click and sensor payloads sent by the Soracom LTE-M Button.

The Soracom LTE-M Button will send messages using a highly efficient binary format. Once the message arrives at Soracom, it will be decoded into a more application-friendly JSON format.

You can then use Soracom Beam or Soracom Funk to send the JSON data to your server, a webhook, or a cloud function to handle the message as needed in your application, or to Soracom Harvest Data to simply store the message in Soracom without needing to set up any servers.

Below are examples of the messages sent by the button once they have been decoded into JSON:

## Event Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "event",
  "seq_number": 42,
  "batt_vol": 3000,
  "detect_type": "Single short click",
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "event",
  "seq_number": 42,
  "detect_type": "Single short click",
  "crc8": true,
  "binaryParserEnabled": true
}
```

## Event with Temperature Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "event_with_temperature",
  "seq_number": 42,
  "batt_vol": 3000,
  "detect_type": "Single short click",
  "temp_cur": 33.94,
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "event_with_temperature",
  "seq_number": 42,
  "detect_type": "Single short click",
  "temp_cur": 33.94,
  "crc8": true,
  "binaryParserEnabled": true
}
```

## Timer Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "timer",
  "seq_number": 42,
  "batt_vol": 3000,
  "applied_freq": 24,
  "short_summary_1": 1,
  "short_summary_2": 2,
  "short_summary_3": 0,
  "short_summary_4": 0,
  "short_summary_5": 0,
  "long_summary_1": 0,
  "long_summary_2": 0,
  "long_summary_3": 1,
  "long_summary_4": 0,
  "long_summary_5": 0,
  "double_summary_1": 0,
  "double_summary_2": 1,
  "double_summary_3": 0,
  "double_summary_4": 0,
  "double_summary_5": 0,
  "edge_summary_1": 0,
  "edge_summary_2": 0,
  "edge_summary_3": 0,
  "edge_summary_4": 0,
  "edge_summary_5": 0,
  "temp_summary_1": 33,
  "temp_summary_2": 36.44,
  "temp_summary_3": 28.44,
  "temp_summary_4": 23.81,
  "temp_summary_5": 22.94,
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "timer",
  "seq_number": 42,
  "applied_freq": 24,
  "short_summary_1": 1,
  "short_summary_2": 2,
  "short_summary_3": 0,
  "short_summary_4": 0,
  "short_summary_5": 0,
  "long_summary_1": 0,
  "long_summary_2": 0,
  "long_summary_3": 1,
  "long_summary_4": 0,
  "long_summary_5": 0,
  "double_summary_1": 0,
  "double_summary_2": 1,
  "double_summary_3": 0,
  "double_summary_4": 0,
  "double_summary_5": 0,
  "edge_summary_1": 0,
  "edge_summary_2": 0,
  "edge_summary_3": 0,
  "edge_summary_4": 0,
  "edge_summary_5": 0,
  "temp_summary_1": 33,
  "temp_summary_2": 36.44,
  "temp_summary_3": 28.44,
  "temp_summary_4": 23.81,
  "temp_summary_5": 22.94,
  "crc8": true,
  "binaryParserEnabled": true
}
```

For more information on each of the summary values, refer to the [Timer](https://docs.soracom.io/en/devices/soracom-lte-m-button/operation-modes/timer) operation mode section.

## Alert Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "alert",
  "seq_number": 42,
  "batt_vol": 3000,
  "detect_type": "Single short click",
  "crc8": true,
  "binaryParserEnabled": true
}
```

## Heartbeat Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "heartbeat",
  "seq_number": 42,
  "batt_vol": 3000,
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "heartbeat",
  "seq_number": 42,
  "batt_vol": 3000,
  "crc8": true,
  "binaryParserEnabled": true
}
```

## Status Message

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "status",
  "seq_number": 42,
  "batt_vol": 3000,
  "fw_ver": "3134",
  "hw_ver": "102",
  "curr_oper": "Event + Heartbeat",
  "curr_auto_fota_check": false,
  "curr_edge_debounce": true,
  "curr_ext_io": "Edge",
  "curr_ul_freq": 24,
  "curr_nw_standby": 0,
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": true,
  "msg_type": "status",
  "seq_number": 42,
  "batt_vol": 3000,
  "fw_ver": "2220",
  "hw_ver": "102",
  "curr_oper": "Event + Heartbeat",
  "curr_edge_debounce": true,
  "curr_ext_io": "Edge",
  "curr_ul_freq": 24,
  "crc8": true,
  "binaryParserEnabled": true
}
```

## OOB Message

When a button syncs, it may receive an instruction to update its operation mode depending on how its group's [Configuration](https://docs.soracom.io/en/devices/soracom-lte-m-button/configuration). After updating its operation mode, the button will send the OOB message to confirm that its mode has been updated.

**Firmware 3134**

```json
{
  "prod_type": 1,
  "f_ack": false,
  "msg_type": "oob",
  "seq_number": 42,
  "batt_vol": 3000,
  "crc8": true,
  "binaryParserEnabled": true
}
```

**Firmware 2220**

```json
{
  "prod_type": 1,
  "f_ack": false,
  "msg_type": "oob",
  "seq_number": 42,
  "batt_vol": 3000,
  "crc8": true,
  "binaryParserEnabled": true
}
```
