An application utilizing Meraki MV cameras and Webex RoomKit Minis to monitor and communicate with patients remotely. If movement is detected in a patient's room, an alert is triggered at the nurse's monitoring station. The nurse can then click to call into the patient's room to talk to him/her directly (watch demo).
Meraki MV Camera: The Meraki MV cameras provide reliable security and valuable insights to organizations while being simple to deploy, configure, and manage. With its APIs, the camera becomes a sensor and we can have smart cameras that can learn and provide more insights over time, that better understand people behavior patterns, and that provide context or trigger action in other systems. For this use case, we are using the MQTT protocol to get notified when a MV Camera detects motion in the camera's zone field. A snapshot of the room is included in the notification sent to the nurse's station using the MV Sense REST API.
Webex RoomKit Mini: The Webex Room Kit Mini is an AI-powered video conferencing system that is easy to use, deploy, and manage. It combines codec, camera, microphones, and speakers into a single device that integrates with a 4K display to bring more intelligence and usability. Through the Webex Developer Platform, it is simple to integrate the Webex device into applications. For this use case, we are using Webex Widgets to embed Webex Teams functionality directly into the notification sent to the nurse station to enable a simple and quick click-to-call functionality.
Notification Screenshot:
Meraki MV Cameras:
MerakiCameras_to_WebexRoomKitMini_Pairing.csv
(compare for example to lines 34 to 37 and line 44 in main.py
and lines 37 to 41 and line 49 in web_app.py
) to ensure the right room information, Webex SIP address and snapshot are included in the popup notification windows. As for the MQTT broker, you can have a look at this use case.main.py
file through the following variables:
Webex Room Kit Mini:
credentials.yml
file. This access token only has a lifetime of 12 hours and is hard coded into the prototype. To retrieve access tokens through an OAuth authorization grant flow and thereby grant permission to Webex Teams users to your app more dynamically, see the Integrations Guide and an example of how it is used in an application flow here.Clone this repository with git clone <this repo>
and open the directory of the root repository.
Open the credentials.yml
file, and with the information collected in the Prerequisites section, fill in the values for the variables listed in the file. These include the WT_ADMIN_TOKEN
, MERAKI_KEY
, MERAKI_NETWORK_ID
, MQTT_SERVER
, and MQTT_PORT
.
Open the MerakiCameras_to_WebexRoomKitMini_Pairing.csv
file, and with the information collected in the Prerequisites section, fill in the information of the Meraki cameras and Webex RoomKit Mini devices that are located in each patient room. For each room, use a new line in the following sequence: Room_Name,Meraki_SN,Meraki_Zone_ID,Webex_RoomKitMini_ID,Webex_RoomKitMini_SIP
Open a terminal and navigate to the root of the repository.
(Optional) Create a Python virtual environment and activate it (find instructions here).
Navigate to the root directory of the repository, and install the requirements with pip install -r requirements.txt
.
Set the following environment variable: set FLASK_APP=web_app.py
.
Start the Flask app for the notification application with flask run -p 5000
.
Open a second terminal and if applicable, activate the same virtual environment.
Again, navigate to the root directory of the repository, and run the MQTT application with python main.py
.
Provided under Cisco Sample Code License, for details see LICENSE.
Our code of conduct is available here.
See our contributing guidelines here.
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community