UNPKG

signalk-server

Version:

An implementation of a [Signal K](http://signalk.org) server for boats.

209 lines (190 loc) 67.1 kB
<!DOCTYPE html><html class="default" lang="en" data-base="../../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Notifications API | Signal K</title><meta name="description" content="Documentation for Signal K"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../../assets/style.css?cache=1783009712609"/><link rel="stylesheet" href="../../assets/highlight.css?cache=1783009712609"/><script defer src="../../assets/main.js?cache=1783009712609"></script><script async src="../../assets/icons.js?cache=1783009712609" id="tsd-icons-script"></script><script async src="../../assets/search.js?cache=1783009712609" id="tsd-search-script"></script><script async src="../../assets/navigation.js?cache=1783009712609" id="tsd-nav-script"></script><script async src="../../assets/hierarchy.js?cache=1783009712609" id="tsd-hierarchy-script"></script><link rel="stylesheet" href="../../assets/theme.css"/><script>if(window.self!==window.top){document.documentElement.classList.add('embedded')}</script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../../index.html" class="title"><img class="title-logo" src="../../assets/logo.svg" alt="Signal K"/><svg class="title-home-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-label="Documentation home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg></a><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-search"></use></svg><span class="visible@s">Search</span></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><div id="tsd-toolbar-links"><a href="https://discord.gg/uuZrwz4dCS" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"></path></svg></a><a href="https://github.com/SignalK/signalk-server" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../../Developing.html">Developing</a></li><li><a href="../REST_APIs.html">REST APIs</a></li><li><a href="" aria-current="page">Notifications API</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="notifications-api" class="tsd-anchor-link">Notifications API<a href="#notifications-api" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h1> <p>The Notifications API enables the raising, actioning and centralised management of Signal K notifications and their associated alarms.</p> <h2 id="overview" class="tsd-anchor-link">Overview<a href="#overview" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h2> <p>Notifications are a special type Signal K update delta that convey the occurrence of an event or change in condition.</p> <p>They contain a <code>path</code> value that starts with the text <code>notifications</code> and a payload with specific attributes to indicate:</p> <ul> <li>The severity of the event / condition (<code>state</code>)</li> <li>How the event / condition should be indicated to the operator (<code>method</code>)</li> <li>What actions can be / have been taken (<code>status</code>)</li> </ul> <img src="../../media/notification_manager.svg" width="600px"> <p>The <strong>Notifications API</strong> introduces the following components into the Signal K server's delta processing chain:</p> <ol> <li>Notification Manager: Provides centralised management for all notifications including the emission of notification deltas</li> <li>Input Handler: Inspects all incoming deltas and routes notification messages <em>(i.e. path starts with <code>notifications</code>)</em> to the Notification Manager.</li> <li>Notification API: REST endpoints for raising and actioning notifications and their associated alarm.</li> </ol> <h3 id="terminology" class="tsd-anchor-link">Terminology<a href="#terminology" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <blockquote> <p>The Signal K specification uses the terms <code>notification</code> and <code>alarm</code> interchangably, whilst Signal K Server assigns notification deltas originating from NMEA2000 alarm PGNs with attributes with the term <code>alert</code>.</p> </blockquote> <p>For consistency and clarity this document will use the the following terminology:</p> <ul> <li><code>notification</code> - A Signal K update delta message with a path starting with the text <em>notifications.</em></li> <li><code>alarm</code> - The communication of the event / condition to the operator.</li> </ul> <h3 id="features" class="tsd-anchor-link">Features<a href="#features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>The Notifications API implements a <strong>Notification Manager</strong> that provides the ability to action alarms and lifecycle management.</p> <p>It does this by:</p> <ul> <li>Placing notifications into their own <code>update</code> in the delta message</li> <li>Assigning unique identifier which is used to perform actions</li> <li>Adding a <code>status</code> property to the payload</li> <li>Making available HTTP endpoints at <code>/signalk/v2/api/notifications</code> to perform actions</li> <li>Providing a plugin interface to allow plugins to access API methods</li> </ul> <blockquote> <p><strong>Note:</strong> Actions are only available for notifications containing a payload containing <code>state</code> and <code>method</code> properties.</p> </blockquote> <h2 id="notification-payload" class="tsd-anchor-link">Notification Payload<a href="#notification-payload" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h2> <p>The Notification API adds the following attributes to the notification payload:</p> <ul> <li><code>id</code> - Unique identifier that is used when taking action on a notification</li> <li><code>status</code> - An object detailing the actions that can be and have been taken</li> </ul> <p>The following attributes can be applied when a notification is raised using the API:</p> <ul> <li><code>createdAt</code> - Timestamp indicating when the notification was raised</li> <li><code>position</code> - Position associated with the notification <em>(i.e. vessel position when notification was raised)</em></li> <li><code>data</code> - Additional data associated with the notification in key | value pairs</li> </ul> <p><em>Example</em></p> <pre><code class="json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;emergency&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Person Overboard!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;createdAt&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;2026-04-06T03:34:48.203Z&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;position&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;latitude&quot;</span><span class="hl-0">: </span><span class="hl-2">57.73241514375983</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;longitude&quot;</span><span class="hl-0">: </span><span class="hl-2">11.66365146637231</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;data&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;crewId&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;c67345&quot;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="notification-status" class="tsd-anchor-link">Notification Status<a href="#notification-status" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>The <code>status</code> attribute is added to all notifications that have a payload containing <code>state</code> and <code>method</code> attributes.</p> <p>The following status properties indicate the actions that <strong>CAN be taken</strong>. Their values are determined by the notification's <code>state</code> attribute:</p> <ul> <li><code>canSilence</code> - indicates whether the Alarm associated with this notification can be silenced</li> <li><code>canAcknowledge</code> - indicates whether the Alarm associated with this notification can be acknowledged</li> <li><code>canClear</code> - Indicates that the associated Alarm can be cleared (triggering condition has been resolved).</li> </ul> <blockquote> <p>Note: <code>canClear</code> will always be <code>false</code> for notifications that are not originated by the Notifications API.</p> </blockquote> <p>The remaining properties indicate the actions that <strong>HAVE been taken</strong>:</p> <ul> <li><code>silenced</code> - <code>true</code> when the silence action has been taken</li> <li><code>acknowledged</code> - <code>true</code> when the acknowledge action has been taken</li> </ul> <h2 id="taking-action" class="tsd-anchor-link">Taking Action<a href="#taking-action" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h2> <p>The Notification API implements endpoints to raise, update, take action, and clear notifications and their associated alarm at <code>/signalk/v2/api/notifications/</code>.</p> <h3 id="raising-an-alarm" class="tsd-anchor-link">Raising an Alarm<a href="#raising-an-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>To raise a new notification with a specified alarm <code>state</code> send a HTTP POST request to <code>/signalk/v2/api/notifications</code> with an object containing the following properties:</p> <ul> <li><code>state</code> (mandatory) - alarm state value to set <em>(e.g. emergency, alarm, etc.)</em></li> <li><code>message</code> (mandatory) - message to display or speak</li> <li><code>context</code> (optional) - notification context</li> <li><code>path</code> (optional) - path to assign. <em>(default: <code>notifications.{notificationId}</code>)</em></li> <li><code>idInPath</code> (optional) - when <code>true</code> will append the <code>notificationId</code> to the supplied <code>path</code> <em>(e.g. <code>notifications.myalarm.{notificationId}</code>)</em></li> <li><code>includePosition</code> (optional) - when <code>true</code> includes the vessel position in the notification payload</li> <li><code>includeCreatedAt</code> (optional) - when <code>true</code> includes the current date/time in the notification payload</li> <li><code>data</code> (optional) - object containing additional key / value pairs to include in the notification payload</li> </ul> <p>The response from a successful <code>raise</code> request will contain the <code>notificationId</code> of the notification.</p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;COMPLETED&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;statusCode&quot;</span><span class="hl-0">: </span><span class="hl-2">200</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Example: Minimal <code>raise</code> request</em></p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">POST</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications&quot;</span><br/><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Port engine temperature is very high!&quot;</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Notification</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;path&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;notifications.a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;value&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Port engine temperature is very high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Example: <code>raise</code> request specifying path</em></p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">POST</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications&quot;</span><br/><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Port engine temperature is very high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;path&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;propulsion.port.temperature&quot;</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Notification</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;path&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;notifications.propulsion.port.temperature&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;value&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Port engine temperature is very high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="mob-person-overboard-alarm" class="tsd-anchor-link">(MOB) Person Overboard Alarm<a href="#mob-person-overboard-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>To raise a MOB alarm send a HTTP POST request to <code>/signalk/v2/api/notifications/mob</code>.</p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">POST</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications/mob&quot;</span> </code><button type="button">Copy</button></pre> <p><em>MOB Notification</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;path&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;notifications.mob.a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;value&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Person Overboard!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;emergency&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;createdAt&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;2026-04-06T03:34:48.203Z&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;position&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;latitude&quot;</span><span class="hl-0">: </span><span class="hl-2">57.73241514375983</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;longitude&quot;</span><span class="hl-0">: </span><span class="hl-2">11.66365146637231</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p>To include a specific message, provide a <code>message</code> with the request.</p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">POST</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications/mob&quot;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Crew member #1 overboard!&quot;</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>MOB Notification</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;path&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;notifications.mob.a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;value&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Crew member #1 overboard!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;emergency&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;createdAt&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;2026-04-06T03:34:48.203Z&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;position&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;latitude&quot;</span><span class="hl-0">: </span><span class="hl-2">57.73241514375983</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;longitude&quot;</span><span class="hl-0">: </span><span class="hl-2">11.66365146637231</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="updating-an-alarm" class="tsd-anchor-link">Updating an Alarm<a href="#updating-an-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>To change the alarm <code>state</code> or message send a HTTP PUT request to <code>/signalk/v2/api/notifications/{notificationId}</code> with an object containing <code>state</code>, <code>message</code> and / or <code>data</code> properties.</p> <p>The result of a successful update request that changes the <code>state</code> is that:</p> <ul> <li><code>state</code> is set to the supplied value</li> <li><code>status.silenced</code> is set to <code>false</code></li> <li><code>status.acknowledged</code> is set to <code>false</code></li> </ul> <p><em>Example: Notification payload prior to <code>update</code> action request.</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is above normal range!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;warn&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Update action request</em></p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">PUT</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications/a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is very high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-4">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Notification: after successful <code>update</code> request</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is very high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alarm&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="clearing-an-alarm" class="tsd-anchor-link">Clearing an Alarm<a href="#clearing-an-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <blockquote> <p>Note: The clear action is only available for alarms associated with notifications having <code>status.canClear = true</code>.</p> </blockquote> <p>To clear the alarm send a HTTP DELETE request to <code>/signalk/v2/api/notifications/{notificationId}</code>.</p> <p>The result of a successful clear request is that the:</p> <ul> <li><code>state</code> value is set to <code>normal</code></li> <li><code>status.silenced</code> is set to <code>false</code></li> <li><code>status.acknowledged</code> is set to <code>false</code></li> </ul> <p>If the clear action is requested when the <code>status.canClear</code> property is <code>false</code>, the alarm will not be cleared and an ERROR response is returned to the requestor.</p> <p><em>Example: Notification payload prior to <code>clear</code> action request.</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alert&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Clear action request</em></p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">DELETE</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications/a987be59-d26f-46db-afeb-83987b837a8f&quot;</span> </code><button type="button">Copy</button></pre> <p><em>Notification: after successful <code>clear</code> request</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;normal&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="silencing-an-alarm" class="tsd-anchor-link">Silencing an Alarm<a href="#silencing-an-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <blockquote> <p>Note: The silence action is only available for alarms associated with notifications having <code>status.canSilence = true</code>.</p> </blockquote> <p>To silence the alarm send a HTTP POST request to <code>/signalk/v2/api/notifications/{notificationId}/silence</code>.</p> <p>The result of a successful silence request is that the:</p> <ul> <li><code>sound</code> value is removed from the <code>method</code> attribute</li> <li><code>status.silenced</code> is set to <code>true</code></li> </ul> <p>If the silence action is requested when the <code>status.canSilence</code> property is <code>false</code>, the alarm will not be silenced and an ERROR response is returned to the requestor.</p> <blockquote> <p><strong>Note:</strong> Notifications with <code>state = emergency</code> cannot be silenced regardless of the value of <code>status.canSilence</code>.</p> </blockquote> <p><em>Example: Notification payload prior to <code>silence</code> action request.</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alert&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknowledge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <p><em>Silence action request</em></p> <pre><code class="typescript"><span class="hl-2">HTTP</span><span class="hl-0"> </span><span class="hl-2">POST</span><span class="hl-0"> </span><span class="hl-4">&quot;/signalk/v2/api/notifications/a987be59-d26f-46db-afeb-83987b837a8f/silence&quot;</span> </code><button type="button">Copy</button></pre> <p><em>Notification: after successful <code>silence</code> request</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alert&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: </span><span class="hl-2">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canSilence&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canAcknow;edge&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;canClear&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span> </code><button type="button">Copy</button></pre> <h3 id="acknowledging-an-alarm" class="tsd-anchor-link">Acknowledging an Alarm<a href="#acknowledging-an-alarm" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3> <blockquote> <p>Note: The acknowledge action is only available for alarms associated with notifications having <code>status.canAcknowledge</code> = <code>true</code>.</p> </blockquote> <p>To acknowledge the alarm send a HTTP POST request to <code>/signalk/v2/api/notifications/{notificationId}/acknowledge</code>.</p> <p>The result of a successful acknowledge request is that the:</p> <ul> <li>Both <code>sound</code> &amp; <code>visual</code> values are removed from the <code>method</code> attribute</li> <li><code>status.acknowledged</code> is set to <code>true</code></li> </ul> <p>If the acknowledge action is requested when the <code>status.canAcknowledge</code> property is <code>false</code>, the alarm will not be acknowledged and an ERROR response is returned to the requestor.</p> <blockquote> <p><strong>Note:</strong> Notifications with <code>state = emergency</code> will only have the <code>sound</code> value removed from <code>method</code>.</p> </blockquote> <p><em>Example: Notification prior to <code>acknowledge</code> request.</em></p> <pre><code class="JSON"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;message&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;Engine temperature is high!&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;method&quot;</span><span class="hl-0">: [</span><span class="hl-4">&quot;sound&quot;</span><span class="hl-0">, </span><span class="hl-4">&quot;visual&quot;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;state&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;alert&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;id&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;a987be59-d26f-46db-afeb-83987b837a8f&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;status&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;silenced&quot;</span><span class="hl-0">: </span><span class="hl-2">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-3">&quot;acknowledged&quot;</span><span class="hl-0">: <