WiFi Motion Core APIs (v3-x-x)

The WiFi Motion Core Cloud APIs facilitate the creation, configuration, and management of WiFi Motion networks via RESTful APIs. Additionally, it offers interfaces for accessing topologies, events, and motion data. This documentation outlines the endpoints for engaging with the WiFi Motion cloud and includes specifications for the following APIs:

Network Settings

Motion History

The motion history APIs provide various historical motion metrics.

Live Motion

The live motion API opens a web socket and triggers the network to emit recorded motion at a 500ms interval.

Events

The events APIs allow you to retrieve, create or tag events emitted by the network.

Network Status

High-level APIs for retrieving the network's topology, last status message, or to view or modify the network's metadata.

Location Data

The location data APIs expose localized motion data. Localization happens on a per mac, or custom location name base.

Find

A set of APIs to find a network in the WiFi Motion Cloud. Individual, or groups of networks can be queried by their primary identifiers or by MAC.

Insights (advanced)

APIs of the internal Home Insights Microservice. Used for motion-based activity and sleep insights.

Config (advanced)

Fine-grained network configuration. These APIs give full access to the underlying motion detection controls, but have no safeguards to prevent unwanted side effects. For friendlier configuration management, see the Network Settings APIs.

Node (advanced)

Interface to manage the access point or mesh nodes of a network. Provides APIs to find, delete or alter the configuration of nodes.

Gatekeeper (advanced)

Endpoint used by WiFi Motion agent for the initial cloud connection. This API returns credentials for connecting to the MQTT broker and stores the initial network configuration. We don't recommend using this API directly.

Management (advanced)

Execute commands directly on the network's access point, or on a mesh node. We recommend using the NOC Management Page for these actions.

Debug (advanced)

Debug endpoints, for internal use only.

Application Settings (advanced)

The application settings API allows users to create, update, delete, and retrieve configurations based on network ID.

Download OpenAPI description
Languages
Servers
Mock server

https://docs.cognitivesystems.com/_mock/assets/specs/mns/v3-x-x/

Network Settings

Operations

Motion History

Operations

Live Motion

Operations

Events

Operations

Network Status

Operations

Network Meta

Operations

Location Data

Operations

Find

Operations

Config

Operations

Node

Operations

Gatekeeper

Operations

Management

Operations

Debug

Operations

Insights

Operations

Insights v2

Operations

Universal Alerting

Operations

Update of Single Alert

Request

Update a single alert

If an alert has been switched into an "enabled": false state because the alert has completed every possible recurrence, the mutation must include a new RRULE that has at least one occurrence in the future.

Under the hood, PATCH is a get job, delete job, and create a job.

Note that the following parameters cannot be mutated via the PATCH:

  • external_id
  • uuid
  • options

path parameter can only be the uuid

Path
uuidstring>= 1required
Query
network_idintegerrequired

Unique identifier of the network whose configuration should be managed

Bodyapplication/jsonrequired
alert_namestring

Default: "" Defaults to an empty string if no value is provided.

Example: "Change"
enabledbooleanrequired
rrulestring

The RRULE string which can be generated here: https://jakubroztocil.github.io/rrule/

Note that new lines must be explicitly escaped with \n. COUNT will always internally converted to 1 since computing every possible alert is not required. The cloud needs only to know when the single next alert is.

Example: DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO

Example: "DTSTART;TZID=Europe/London:20220101T080000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n"
analytics_tagstring

Default: "" Any string that can be used for analytics tracing. Defaults to "" if the field is not included.

Example: "riseAndShinePreset"
monitorobjectrequired

This object defines the conditions and type of the motion monitor.

Example: {"monitor_mode":"SIMPLE","duration_minutes":120}
monitor.​monitor_modestring
Enum"NONE""SIMPLE""INACTIVITY"
Example: "SIMPLE"
monitor.​duration_minutesinteger

The length of time in minutes of the monitored duration. The cloud will determine the start time per the timezone in the rrule field by subtracting this from the targeted time of the monitor completion (in which the result is sent).

Example: 120
monitor.​inactive_minutesinteger

Required if the monitor_mode is "INACTIVITY"

monitor.​repeat_monitoringboolean

If the monitor_mode is "INACTIVITY", this boolean determines if the alert should continue monitoring if inactivity is detected.

monitor.​stop_event_filterobject

Not yet supported - 1/1/2022

The keys of the object will compare to keys of MQTT events as they are from core. All key value pairs placed in this object will be expected on the event from core.

Default {}
metaobject

The contents of this object is fully decided by the client and will not persist anywhere if the alert is deleted.

Example: {"alert_type":"RISE_AND_SHINE_PRESET"}
motion_actionsArray of objects(Root Type for POST_universal_alerts_actions)
Example: [{"user_ids":[],"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has begun their day","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Your loved one has begun their day"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}}},{"user_ids":[],"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has begun their day"}}}]
no_motion_actionsArray of objects(Root Type for POST_universal_alerts_actions)
Example: [{"user_ids":[],"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has not begun their day","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Your loved one has not begun their day"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}}},{"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has not begun their day"}}}]
unknown_actionsArray of objects(Root Type for POST_universal_alerts_actions)
Example: [{"user_ids":[],"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}}},{"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home"}}}]
error_actionsArray of objects(Root Type for POST_universal_alerts_actions)
Example: {"type":"Array","Items":{"user_ids":[],"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}}}}
curl -i -X PATCH \
  'https://docs.cognitivesystems.com/_mock/assets/specs/mns/v3-x-x/api/v1/universal-alert/{uuid}?network_id=0' \
  -H 'Content-Type: application/json' \
  -d '{
    "alert_name": "Change",
    "enabled": false,
    "rrule": "DTSTART;TZID=Europe/London:20220101T080000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n",
    "analytics_tag": "riseAndShinePreset",
    "monitor": {
      "monitor_mode": "SIMPLE",
      "duration_minutes": 120
    },
    "meta": {
      "alert_type": "RISE_AND_SHINE_PRESET"
    },
    "motion_actions": [
      {
        "user_ids": [],
        "action": "fcm_push",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Your loved one has begun their day",
            "click_action": "CustomAlertEvent",
            "sound": "Aura_Push_Final.wav"
          },
          "apns": {
            "headers": {
              "apns-push-type": "alert",
              "apns-topic": "com.csc.HaloHome"
            },
            "payload": {
              "aps": {
                "alert": {
                  "title": "Rise and Shine",
                  "body": "Your loved one has begun their day"
                },
                "sound": "Aura_Push_Final.wav",
                "category": "CustomAlertEvent"
              }
            }
          }
        }
      },
      {
        "user_ids": [],
        "action": "custom_event",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Your loved one has begun their day"
          }
        }
      }
    ],
    "no_motion_actions": [
      {
        "user_ids": [],
        "action": "fcm_push",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Your loved one has not begun their day",
            "click_action": "CustomAlertEvent",
            "sound": "Aura_Push_Final.wav"
          },
          "apns": {
            "headers": {
              "apns-push-type": "alert",
              "apns-topic": "com.csc.HaloHome"
            },
            "payload": {
              "aps": {
                "alert": {
                  "title": "Rise and Shine",
                  "body": "Your loved one has not begun their day"
                },
                "sound": "Aura_Push_Final.wav",
                "category": "CustomAlertEvent"
              }
            }
          }
        }
      },
      {
        "action": "custom_event",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Your loved one has not begun their day"
          }
        }
      }
    ],
    "unknown_actions": [
      {
        "user_ids": [],
        "action": "fcm_push",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Caregiver Aware could not determine motion in your home",
            "click_action": "CustomAlertEvent",
            "sound": "Aura_Push_Final.wav"
          },
          "apns": {
            "headers": {
              "apns-push-type": "alert",
              "apns-topic": "com.csc.HaloHome"
            },
            "payload": {
              "aps": {
                "alert": {
                  "title": "Rise and Shine",
                  "body": "Caregiver Aware could not determine motion in your home"
                },
                "sound": "Aura_Push_Final.wav",
                "category": "CustomAlertEvent"
              }
            }
          }
        }
      },
      {
        "action": "custom_event",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Caregiver Aware could not determine motion in your home"
          }
        }
      }
    ],
    "error_actions": {
      "type": "Array",
      "Items": {
        "user_ids": [],
        "action": "fcm_push",
        "payload": {
          "data": {
            "title": "Rise and Shine",
            "body": "Caregiver Aware could not determine motion in your home",
            "click_action": "CustomAlertEvent",
            "sound": "Aura_Push_Final.wav"
          },
          "apns": {
            "headers": {
              "apns-push-type": "alert",
              "apns-topic": "com.csc.HaloHome"
            },
            "payload": {
              "aps": {
                "alert": {
                  "title": "Rise and Shine",
                  "body": "Caregiver Aware could not determine motion in your home"
                },
                "sound": "Aura_Push_Final.wav",
                "category": "CustomAlertEvent"
              }
            }
          }
        }
      }
    }
  }'

Responses

201 - Created

Universal Alert Bulk Enable

Request

Enable or disable multiple alerts.

Query
network_idintegerrequired

Unique identifier of the network whose configuration should be managed

Bodyapplication/jsonrequiredArray [
uuidstring
Example: "93f3557e-734c-4bb9-8be3-53014c68642a"
enabledboolean
Example: true
]
curl -i -X PATCH \
  'https://docs.cognitivesystems.com/_mock/assets/specs/mns/v3-x-x/api/v1/universal-alert-bulk?network_id=0' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "uuid": "7b532ceb-2937-4f0e-8b0f-0a332883a202",
      "enabled": true
    },
    {
      "uuid": "93f3557e-734c-4bb9-8be3-53014c68642a",
      "enabled": true
    }
  ]'

Responses

Application Settings

Operations