Nobi integrations Nobi integrations

Nobi integrations

David Thielman David Thielman

See below "attachements" for a basic presentation about the Nobi integrations

1. Purpose

An integration allows Nobi to exchange information with a third party.
This information can be about the structure/organization of the site, such as departments, housing units, rooms, residents, …
But also in case of an escalation, this third party (eg a nurse call system) can be informed, and will handle the communication of the escalation towards the nursing staff over the local IP network of the site, or via the Nobi cloud.

 

2. Types of integration

2.1. Master data integrations

A master data integration will synchronize data such as residents, departments, rooms, escalation history, etc.

The basic purpose of a master data integration is to synchronize the data from the Nobi database with an external database, and this to keep the residents care records up to date with regards to aftercare.

 

2.2. Nurse call system integrations

These systems are installed locally in a care facility. The communication with these systems is done on the local network directly from the Nobi lamps.
In case an integration is made with one of these systems, the Nobi lamp will no longer start calling itself to the telephone numbers from the escalation procedure. The Nobi lamp will send the escalation to the integrated nurse call system (Aperi, Ascom, Essec, …), and this call system will handle the communication towards the nursing staff (via the normal channels also used for the nurse call system of the site: eg DECT handphones, smartphones, …)
Here we see 3 different types of integration:

  • Vendor specific integration (Aperi, Ascom, Essec, Octapi, 25-8)
  • Nobi generic integration: for nurse call systems who don’t have their own API, this generic API from Nobi was developed. The specifications of this API (Nobi Escalation Integration – Nobi EI) can be found on the following location:  https://nobi.cloud/api-docs/index.html?urls.primaryName=Nobi%20EI
  • Nobi Relay integration: this is for integration by means of the Shelly modules, so that an escalation can be given to a nurse call system via a (potential-free) contact. 

 

2.3. OAuth application

For this type of integration, no specific effort is needed from Nobi. The third party receives our API documentation, and implements our API on their system or the system from the Nobi customer. All interaction is in this case between the third party system and the Nobi cloud.

The authentication of the third party is done via OAuth.

The following elements (=scopes) can be integrated by the third party:

- Department: information of the different departments in the site can be requested or changed by the third party

- Device: information of the devices (Nobi lamps) can be requested by the third party

- Escalation Event: this command allows the third party to close an escalation

- Housing unit: information of the housing units can be requested and changed by the third party

- Occupancy: is the link between the resident and a housing unit. Information about the occupancies can be requested or changed by the third party

- Resident: the data of the residents can be requested or changed by the third

- Room: information about the rooms can be requested or changed by the third party

- Speech: a lamp can be requested to say a certain message (via the loudspeakers) to the resident. The API allows to send a command to the device (lamp) to speak the requested message

- Webhooks: the third party can “subscribe” to the webhook, requesting to be informed when a resident_measurement, device_parameter, escalation_event, activity or alert is triggered (created, deleted or updated)

 

3. How to integrate

3.1. Master data integrations

Nobi made a master data integration with Caresolutions. To set up this integration, go to “integrations” from the main menu, and click on the button in the upper right corner.

There select “Caresolution” under Master data integrations:

You will have to fill in the following parameters:

 

  • Base url(*)
  • Initials(*)
  • Password(*)
  • Application key(*)
  • Database(*)

 

The information for these parameters can be obtained in consultation with the Nobi customer and Caresolutions. The information marked with (*) is mandatory.

 

3.2. Nurse call system integrations

Nobi support the following nurse call systems:

- Aperi
- Ascom
- Essec
- Octapi
- 25-8
- Nobi Generic
- Nobi Relay

To set up an integration with a nurse call system, go to “integrations” from the main menu, and click on the button in the upper right corner. Select the nurse call system you want to integrate for this site.

Every nurse call system has its own specific parameters to fill in. Hereafter a short overview:

 

Nurse call system

Parameters
  • Url(*): the url (IP address, port and path) of the Aperi Alert server
  • Username(*): the username to be used to log in with on the Aperi Alert server
  • Password(*): the password to be used in combination with the login above

In addition, an external ID needs to be added to the housing unit. This ID is defined in agreement with Aperi. By using external ID’s, they can be used for their internal routing (eg. the first digit can indicate the floor: 0 for ground floor / 1 for 1st floor). External housing unit ID’s are configured in the backend (edit Housing Unit)

 

  • Address(*)
  • To(*)
 
  • Url(*): the url (IP address, port and path) of the Netrix server
  • Username(*): the username to be used to log in with on the Netrix server
  • Password(*):the password to be used to log in with on the Netrix server
  • Group ID(*): this is the ID of the Netrix group

For the integration with Essec, no external ID’s are used for the housing units. The Nobi ID of every housing unit needs to be given to Essec. This housing unit ID can be found in the url of the housing unit,

or under “Housing Units” in the Nobi backend.

To close the escalations on the Nobi dashboard via the Essec system, it is important to make sure that also the port 8081 is open from the Netrix server to the Nobi lamp.

To set up a voice call from the DECTs to the Nobi lamp, the lamp needs to be registered on the SIP server. The information related to the SIP server can be given in under de device settings in the Nobi backend (edit device). See screenshot below.

Remark: for the username, a reference to the housing unit can be used. Every lamp needs it own username. The password can be set the same for all housing units.

  • Auth Url(*): authentication URL
  • API Url(*): URL to be used for the API communication
  • Client ID(*): login ID
  • Client Secret(*): login password
For the integration with Octapi, no external ID’s are used for the housing units. The Nobi ID of every housing unit needs to be given to Octapi. This housing unit ID can be found in the url of the housing unit or under “Housing Units” in the Nobi backend.
  • API URL(*):URL to be used for the API communication
  • API key(*): key to be given to secure the communication
  • Room state fall(*): ID for a fall in the room
  • Room state panic(*): ID for a panic button alarm in the room
  • Room state presence: ID to indicate that a nurse is present in the room
In addition, an external ID needs to be added to the housing unit. This ID is defined in agreement with 25-8. External housing unit ID’s are configured in the backend (edit Housing Unit).
  • Third party server URL(*): server url, port and path
  • Check connection endpoint(*): connection heathcheck path
  • Escalate endpoint(*): path to report escalations
  • Escalation open endpoint(*): path to check for open escalations
  • Nurse present endpoint: Nurse present is a recommended option. It’s not a must since not all legacy system can provide the nurse present information. Leave it empty if not used
  • Auth type(*): can be “No Auth” or “Basic Auth”
  • Auth config
    • Username
    • Password

In addition, an ID for every housing unit needs to be exchanged with the third party. For the Nobi Generic integration, both the internal ID and the external ID (if filled in) will be exchanged. The external ID is defined in agreement with the third party.

It is recommended to set up these external housing unit ID's. This is a one-time configuration during startup, but it provides the advantage of preventing issues when the internal Nobi ID's changes. Additionally, it can be utilized to introduce logic into the numbering system for external routing.

External housing unit ID’s are configured in the backend (edit Housing Unit)

 

All detailed info about this API can be found on https://nobi.cloud/api-docs/index.html

Select here Scherm­afbeelding 2024-01-08 om 16.54.13.png

Once the Nobi relay integration has been activated, housing units can be added by going to peripherals, select the Shelly relay module . During the configuration process, you will be asked to select the function you want to use for this shelly. Here select “Nurse call system”

 
The table below gives an overview of the integrations which are available today, and the supported functionality for every integrations:
Integration Closes escalation Supports nurse presence Supports de-escalation if Closed in app Supports external monitoring events
Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.51.34.png

Scherm­afbeelding 2024-01-08 om 14.55.46.png

Scherm­afbeelding 2024-01-08 om 14.55.46.png
Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.51.34.png
Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.55.46.png

Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.55.46.png

Scherm­afbeelding 2024-01-08 om 14.55.46.png Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.55.46.png

Scherm­afbeelding 2024-01-08 om 14.51.34.png

Scherm­afbeelding 2024-01-08 om 14.51.34.png Scherm­afbeelding 2024-01-08 om 14.51.34.png

Scherm­afbeelding 2024-01-08 om 14.55.46.png

Important remark: If the snooze button is used to close an escalation, note that the escalation will only be closed on the integrated system if “de-escalation if Closed in app” is supported. If not, the escalation will also need to be closed on the third party system separately.

Once the integration has been set up, the status can be checked in the Nobi cloud frontend interface. Go to the main menu, click on:

You will then get a list of all the housing units, and the actual status of every housing unit (connected, or not connected):

 

If the status of a housing unit is “connected”, it means that:

  • the external nurse call system server is reachable (so network / firewall settings are ok)
  • the (external) housing unit id exists

This DOES NOT mean that:

  • an escalation can be made
  • an escalation open check is working
  • a de-escalation (closing the escalation) is working

This because those endpoints can still be wrongly configured at our side or mal-configured at the nurse call system side.
So it’s very important to test a full fall cycle when configuring a new site !!

 

3.3. OAuth application

With the OAuth integration, it is possible for a third party who implemented our API, to connect in a secure way to the Nobi cloud. In this way, information about the Nobi installation can be exchanged.

3.3.1. To be done at Nobi side (frontend)

From Nobi side, a secure OAuth authentication will be created. This can be done by going to “integrations” from the main menu, and click on the button in the upper right corner.
Here you need to select “Oauth Application”:
This will guide you to the following screen:
  • Where the following parameters can be filled in:
    Health Check URL: This is a url that can be used by Nobi to the to check of the connection is still alive. Every minute, the cloud will send a message to this url. If a value different from 200 is received, an alert will be triggered.
  • Name(*): Here a name can be given to the integration, to know for which customer it can be used.
  • Redirect URI: This URI (Uniform Resource Identifier) refers to the web address where users are sent after successfully authenticating via OAuth.
  • Integration type(*): 2 different types of integration are possible: “Emergency call center” or “General”.
    • Emergency call center: in this case, the normal escalation procedure is not used anymore. The escalation is only sent via the API integration.
    • General: when this type is selected, the normal escalation procedure is still active. The API can be used for other parts of the integration.

The last part is related to the scopes: here you just must select the elements that can be accessed via the integration: department, device, escalation event, housing unit, occupancy, resident, room, speech, webhooks
At the end, click on and you will be given a “UID” and “Secret” that can be used by the third party to connect to the Nobi cloud.

 

3.3.2. To be done by the Third party

The third party who is taking care of the Nobi API integration, can find all the needed information about the API on https://nobi.cloud/api-docs/index.html


On this url, there are 2 specification of an API:
- API V1 Docs: this API allows a cloud to cloud integration. So the third party is querying the Nobi cloud. This is the API that will be discussed further here.
- Nobi EI (Nobi Escalation Integration): this API allows for a local integration directly between the server of the third party, and the Nobi lamp. This is the API that is used for the Nobi generic integration with nurse call systems. For more info, see point "3.2. Nurse call system integrations"

 

To make the integration easier, there is a swagger file available (/api-docs/v1/swagger.yaml).

First of all, the third party needs to register on our cloud via OAuth. More information on OAuth can be found on https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/.

To do so, the “UID” and “Secret” given on the Nobi frontend needs to be used.
This information can be found under “Integrations” (see point 3.3.1.)
Once the authentication has been done via OAuth, an “Authorization Bearer” or token will be given that can used in subsequent communications.
The third party also has the possibility to test the API integration via the cloud (https://eu.nobi.cloud).

For this, the authentication can be activated via the Scherm­afbeelding 2024-01-08 om 17.02.59.png button:

 

Once the authentication has been done, API commands can be sent to the Nobi cloud.
To eg. activate a webhook, the following command can be used:

Mention here the “event_types” you want to subscribe for in the registration message. The list of available event_types can be obtained via the command:

The following event_types are supported:

  • resident_measurement: resident_measurement.created, resident_measurement.deleted, resident_measurement.updated
  • escalation_event: escalation_event.created, escalation_event.deleted, escalation_event.updated
  • activity: activity.created, activity.deleted, activity.updated
  • alert: alert.created, alert.deleted, alert.updated

Once a webhook has been registered on a certain url, the Nobi cloud will send callbacks on this url. Hereafter you find the different callbacks possible:

The callback in case of an escalation looks like this:

{
"webhook_uuid": "04892f05-d7f8-4c82-9e2b-8669e76e65e8",
"event_type": "escalation_event.created",
"subject_id": 4,
"subject_type": "EscalationEvent",
"body": {
"end": null,
"room": {
"id": 68,
"room_type": "hobby",
"room_type_id": 8
},
"start": "2022-01-17T18:10:50.713Z",
"device": {
"id": 68,
"uuid": "4854d7ec-7318-4b38-a451-5c1c9f291215"
},
"images": [
{
"image": "https://imgproxy.eu.nobi.cloud.io/v7/memory%3A%2F%2F705638474f5a13c96e3ffccfa4df32ad",
"taken_on": "2022-06-03T16:10:04.418Z",
"original_image": "https://imgproxy.eu.nobi.cloud.io/v7/memory%3A%2F%2F705638474f5a13c96e3ffccfa4df32ad,720",
"object_confidence": 90,
"highest_confidence": true,
"taken_on_formatted": "16:10:04",
"person_position_type": "standing"
}
],
"poses": [
{
"x": [
1,
2,
3,
4
],
"y": [
9,
8,
7,
6
],
"image": "https://imgproxy.eu.nobi.cloud.io/v7/memory%3A%2F%2F705638474f5a13c96e3ffccfa4df32ad",
"taken_on": "2022-06-03T16:15:34.386Z",
"taken_on_formatted": "16:15:34"
}
],
"resident": {
"id": 27,
"name": "Daantje Sier"
},
"message_uuid": "60767dc1-3395-4966-a8bd-4cae2bed1ac5",
"escalation_type": "FALL"
}
}

 

In this callback, information about the event_type, time, room, images, poses and resident is sent.
It is important to note that the information about the images is presented in a different way, depending on the privacy settings of the resident:

  • “images” tag is only present in case the privacy settings are set to “show images”
  • Under the “poses” tag, the poses and the abstract images are linked. These images are present in case the privacy settings are set to “show abstract view”

All other API commands can be used to retrieve information from the cloud, or to send information to the cloud.
Some examples:

Remark: the command “Create a hardware device” (POST /api/v1/hardware_devices) should not be used. This is for production purposes only.

Was this article helpful?

0 out of 0 found this helpful

Add comment

Please sign in to leave a comment.