---
id: external-notification-module
title: External Notification Module Settings
sidebar_label: External Notification Module
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';

:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::

<PluginModule name="ext_notification_module" rename="ext_notification_plugin" />

<!--- TODO add link to hardware setup to admonition--->

:::note
This module requires attaching a peripheral accessory to your device. It will not work without one.
:::

## Overview

The External Notification Module will allow you to connect a speaker, LED, or other device to notify you when a message has been received from the mesh network.

:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::

## Settings

|                Setting                |    Acceptable Values     | Default |
| :-----------------------------------: | :----------------------: | :-----: |
|    ext_notification_module_active     |     `true`, `false`      | `false` |
|  ext_notification_module_alert_bell   |     `true`, `false`      | `false` |
| ext_notification_module_alert_message |     `true`, `false`      | `false` |
|    ext_notification_module_enabled    |     `true`, `false`      | `false` |
|    ext_notification_module_output     |        `integer`         |   `0`   |
|   ext_notification_module_output_ms   | `integer` (milliseconds) |   `0`   |

### ext_notification_module_active

Specifies whether the external circuit is triggered when the device's GPIO is low or high.

:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::

#### Specify High/Low GPIO triggers circuit

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

```shell title="GPIO active high"
meshtastic --set ext_notification_module_active true
```

```shell title="GPIO active low (default)"
meshtastic --set ext_notification_module_active false
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>

### ext_notification_module_alert_bell

Specifies if an alert should be sent when receiving an incoming bell.

#### Enable/Disable alert on incoming bell

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

```shell title="Enable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell true
```

```shell title="Disable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell false
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>

### ext_notification_module_alert_message

Specifies if an alert should be sent when receiving an incoming message.

#### Enable/Disable Alert on incoming message

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

```shell title="Enable alert on incoming message"
meshtastic --set ext_notification_module_alert_message true
```

```shell title="Disable alert on incoming message"
meshtastic --set ext_notification_module_alert_message false
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>

### ext_notification_module_enabled

Enables the module.

#### Enable/Disable the module

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

```shell title="Enable Module"
meshtastic --set ext_notification_module_enabled true
```

```shell title="Disable Module"
meshtastic --set ext_notification_module_enabled false
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>

### ext_notification_module_output

Specifies the GPIO that your external circuit is attached to on the device.

:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::

#### Specify GPIO for circuit to monitor

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

:::note
Replace `GPIO` in the below command with the GPIO number your circuit is attached to.
:::

```shell title="Specify GPIO that circuit is connected to"
meshtastic --set ext_notification_module_output GPIO
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>

### ext_notification_module_output_ms

Specifies how long in milliseconds you would like your external circuit triggered. Default is `1000`. (Because of the way that defaults are handled in the protobufs `0` is interpreted as `1000`)

#### Specify how many milliseconds to trigger circuit

<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="cli">

```shell title="Set to default (1000ms)"
meshtastic --set ext_notification_module_output_ms 0
```

```shell title="Set to other value"
meshtastic --set ext_notification_module_output_ms 1500
```

  </TabItem>
  <TabItem value="android">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="iOS">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
  <TabItem value="web">

:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::

  </TabItem>
</Tabs>
