Proj-2015-2016-Intégration de caméra de surveillance UPnP à Openhab/SRS

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.

Read first:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

=1.  Introduction=

1.1 Purpose of the requirements document

 * It is our contract
 * The SRS document defines the objectives and the functional requirements and non functional requirements that can permit to achieve our ultimate goal which is to fully integrate a control interface of the UpNP cameras ...

1.2 Scope of the product
By means of the OpenHab interface, we would like to add a camera management function that is not present inside OpenHab.

Therefore, OpenHab will be able to show a streaming video of the cameras and also controlling options if there are any ones.

1.3 Definitions, acronyms and abbreviations

 * UPnP = Universal Plug and Play : 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.


 * iPOJO = A service component runtime aiming to simplify OSGi application development. It natively supports ALL the dynamism of OSGi. Based on the concept of POJO, application logic is developed easily. Non-functional properties are just injected in the component at runtime.


 * OpenHab = is an Open Source project that aims to allow control of equipements in a netwok by catching events. it also offers a nice user interface which is easy to configure.


 * OpenHab2= this is an improvement of the OpenHab that offers more features.


 * Felix-Apache Framework = is an open source implementation of the OSGi Release 5 core framework specification.


 * Eclipse Smarthome = is a platform that 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

 * http://www.eclipse.org/smarthome/documentation/index.html
 * http://www.openhab.org/
 * http://felix.apache.org/documentation/subprojects/apache-felix-osgi-bundle-repository.html
 * https://github.com/openhab/openhab2-addons
 * http://eclipse-jetty.github.io/getting_started.html
 * https://github.com/eclipse/smarthome


 * http://kaikreuzer.blogspot.fr/2014/06/openhab-20-and-eclipse-smarthome.html
 * https://github.com/openhab/openhab/wiki/Foscam-IP-Cameras
 * https://community.openhab.org/t/security-camera-recommendations/3616
 * https://community.openhab.org/t/security-cam-recommendation/2036
 * https://community.openhab.org/t/binding-to-integrate-with-imagery-generated-by-motion-detection-cctv/2985
 * https://groups.google.com/forum/#!topic/openhab/eag6cUqRTaU


 * https://github.com/eclipse/smarthome/tree/master/extensions/binding/org.eclipse.smarthome.binding.sonos
 * https://github.com/eclipse/smarthome/tree/master/extensions/binding/org.eclipse.smarthome.binding.fsinternetradio
 * https://github.com/eclipse/smarthome/tree/master/extensions/binding/org.eclipse.smarthome.binding.yahooweather


 * https://www.ispyconnect.com/man.aspx?n=D-Link

1.5 Overview of the remainder of the document
In the rest of the document, we will describe our objectives, the way the system is supposed to work and the constraints the project implies.

=2.  General description= This project aims to integrate a new feature to the openhab framework, to be able to manage cameras in the network by detecting them with the Upnp protocol.

2.1 Product perspective

 * Input = Cameras
 * output = Cameras videos stream

2.2 Product functions

 * Detection of all the cameras in the network
 * view the video stream in openHab interface
 * show the a mosaic when there is more than one camera

2.3 User characteristics
This can be used by all users that wants to do some surveillance of his house or an infrastructure.

2.4 General constraints
Cameras that support the Upnp protocol
 * material constraints

Cameras that support zoom/tilt/pan.
 * Constraints zoom/tilt/pan/motion

We need the OpenHab Framework
 * Software constraints

Openhab uses the port 8080. this port has to be dedicated to it.
 * Openhab constraints

the Network has to allow multicast because Upnp protocol relies on it.
 * Network constraints

2.5 Assumptions and dependencies
dependance = OpenHab

=3.Specific requirements, covering functional, non-functional and interface requirements=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.1 Requirement X.Y.Z (in Structured Natural Language)
Function: detect et add the camera on OpenHab Interface

Description: When the camera upnp are started, they are automatically detected, and the user can select the camera on Openhab in order to visualize the video flux. The user must verify in camera.propertie file, if the name of his camera exits. If not, the user must add the camera reference, following this syntax : model|video_url|image_url|pan_url|tilt_url and put null if an field is missing.

Inputs: video flux of camera

Source: camera UPNP

Outputs: video Flux sur OpenHab interface

Destination: OpenHab user

Action: detected and add camera. Add fonction tilt and pan if the camera is equipped.


 * Natural language sentences (with MUST, MAY, SHALL)

The user turn on the camera. Openning OpenHab, the camera shall appear on the list of camera. Once the user selected the camera, the video flux must display on the screen computer. An icon can be used to rotate and zoom, if the camera are equipped.


 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)


 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Non functional requirements: Le programme doit marcher sur n'importe quelle distribution et support (téléphone portable)
 * Exigence Portabilité

Utilisation d'OpenHab, et UPnP (protocole surveillance)
 * Exigence Produit

Pre-condition:

Post-condition:

Side-effects:

=4. Product evolution=

=5. Appendices= =6. Index=