Projets-2016-2017-UPnP Cameras integration into OpenHAB/SRS

=1.  Introduction=

1.1 Purpose of the requirements document
The Software Requirements specification lays out functional and non-functional requirements of cameras integration into OpenHAB.

It defines what the user will be able to do or not to do with the final result of the project.

1.2 Scope of the product
Automatic camera detection with UPnP protocol.

Camera management through the OpenHAB interface.

Remote camera control and display live videos from cameras.

Integration into the open source Eclipse SmartHome project.

Motion detection for cameras.

1.3 Definitions, acronyms and abbreviations
OpenHAB: software for integrating different home automation systems and technologies into one single solution that allows overarching automation rules and that offers uniform user interfaces.

UPnP: Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing, communications, and entertainment.

Eclipse SmartHome: Eclipse SmartHome is a framework in order to build end user solutions on top. It allows the integration of different systems, protocols or standards and that provide a uniform way of user interaction and higher level services.

1.4 References

 * Last year project
 * Eclipse SmartHome
 * OpenHAB
 * UPnP

1.5 Overview of the remainder of the document
Following chapters will describe what should be expected from the final result of the project: features, constraints and requirements.

=2.  General description=

2.1 Product perspective
The aim is to integrate this project in Eclipse SmartHome in order to allow people use the implemented functions for their own project using Eclipse SmartHome framework.

2.2 Product functions
The final product allows user to:


 * detect UPnP compatible cameras connected to network
 * watch live videos from cameras through OpenHAB interface
 * control remotely the camera
 * use UPnP camera detection with Eclipse SmartHome framework.
 * use motion detection on cameras.

2.3 User characteristics
The user might be someone who wants to:


 * monitor his house for personnal use
 * monitor sensitive areas of a company infrastructure

2.4 General constraints
This project must follow several constraints, many from the last version of the project from last year:


 * use last year project to continue ours
 * the use of cameras that support UPnP protocol ( a set of 2 DLink cameras)
 * remote control features on cameras like a zoom, tilt or pan
 * the use of OpenHAB and Eclipse SmartHome
 * UPnP detection compatible with any Eclipse SmartHome project
 * a dedicated port for OpenHAB which is the port 8080
 * network that allows multicast for UPnP protocol

2.5 Assumptions and dependencies
It is assumed that the code from last year project is working and can be adapted.

=3.Specific requirements, covering functional, non-functional and interface requirements=

3.1 Requirement 1: Automatic detection of UPnP cameras
Function: Cameras connected to network that allows multicast are automatically detected

Description: When cameras are turned on, they are automatically detected through UPnP protocol.

Inputs: Data from UPnP cameras

Source: UPnP compatible cameras

Outputs: List of connected cameras discovered through UPnP protocol

Destination: user using Eclipse SmartHome or OpenHAB

Action: Cameras must be turned on and must be connected to network

Non functional requirements:


 * Security: provided data must be safe and used by the user only

Pre-condition:


 * Camera compatible with UPnP must be used
 * Network must allow multicast

3.2 Requirement 2: Display video streaming from cameras
Function: Detected cameras provide streaming video Description: Once detected, user may see streaming video from cameras in order to monitor an area

Inputs: Streaming video

Source: Detected camera

Outputs: Display of the streaming video

Destination: user who wants to monitor an area, room

Action: User must use OpenHAB interface to see the display of the streaming video from cameras

Non functional requirements:


 * Easy of use: the access to the display must be user-friendly
 * Security: provided data must be safe and used by the user only

Pre-condition:


 * Device with OpenHAB working on it
 * Network must be operationnal

3.3 Requirement 3: Remote controlled cameras
Function: Control cameras thorugh openHAB interface Description: Cameras can be controlled remotely with a device with openHAB

Inputs: Control actions

Source: user

Outputs: cameras follows control actions

Destination: user who wants to control their camera

Action: User must use OpenHAB interface to control cameras

Non functional requirements:


 * Easy of use: controlling the cameras must be user-friendly
 * Security: only the user should be able to control them

Pre-condition:


 * Device with OpenHAB working on it
 * Network must be operationnal
 * camera must support remote control actions

3.4 Requirement 4: motion detection on camera
Function: Camera detects motion

Description: Cameras can detect motion to associate this detection with an action

Inputs: streaming video

Source: camera

Outputs: action taken accordingly to the motion detection

Destination: user who wants to monitor a room or an area

Action: Camera and device associated with it must be turned on

Non functional requirements:


 * Security: only the user should be able to operate

Pre-condition:


 * Device with OpenHAB working on it
 * Network must be operationnal

=4. Product evolution=

Display streaming video from camera on TV.