Sommaire
Le package ZoneMinder vous permet de connecter un serveur ZoneMinder dans Constellation.
Installation
Prérequis : ZoneMinder
Avant d’installer le package vous devez configurer votre serveur ZoneMinder.
Tout d’abord vous devez disposer de la version 1.29 de ZoneMinder. C’est à partir de cette version que ZM a intégré une API REST exploitée par la package Constellation. Sans cette API impossible de se connecter à votre serveur ZoneMinder.
Ensuite dans les options de ZoneMinder, veuillez définir les paramètres suivants :
-
AUTH_TYPE : builtin
-
AUTH_HASH_SECRET : une chaine de caractère aléatoire
-
AUTH_HASH_LOGINS : YES
-
OPT_USE_API : YES
Dans votre navigateur après vous être identifier sur votre serveur ZM, aller sur l’URI : http://server/zm/api/host/getVersion.json
Si votre serveur est opérationnel vous devriez voir le JSON suivant :
Pour finir vous devez récupérer le HASH de votre mot de passe ZoneMinder. Le mot de passe est hasher avec la fonction “PASSWORD” du serveur MySQL configuré pour ZoneMinder.
VOus devez donc vous connectr sur votre serveur MySQL est tapper la commande :
|
1 |
mysql > SELECT PASSWORD("xxx"); |
Où “xxxx” est votre mot de passe du compte ZoneMinder utilisé.
Par exemple sur mon serveur MySQL, le hash du mot de passe “Password123!” est “*4F56EF3FCEF3F995F03D1E37E2D692D420111476”.
Installation du package Constellation
Depuis le “Online Package Repository” de votre Console Constellation, déployez le package ZoneMinder :
Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.
Pour finir sur la page de Settings vous devez obligatoirement spécifier :
- RootUri : URI “racine” de votre serveur ZoneMinder (ex: http://server/zm)
- Username : nom d’utilisateur ZoneMinder
- PasswordHash : le hash du password de l’utilsateur (récupéré via la fonction”PASSWORD” sur votre serveur MySQL)
- SecretHash : la chaine de caractère aléatoire spécifiée dans les options de ZoneMinder (paramètre AUTH_HASH_SECRET)
Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation :
|
1 2 3 4 5 6 7 8 9 10 |
<package name="ZoneMinder"> <settings> <setting key="RootUri" value="http://server/zm/" /> <setting key="Username" value="admin" /> <setting key="PasswordHash" value="*4F56EF3FCEF3F995F03D1E37E2D692D420111476" /> <setting key="SecretHash" value="T9TyLzZ7yJBvmKx8TyLefhVVtz8AUZXf" /> <setting key="SystemRefreshInterval" value="5000" /> <setting key="EventsRefreshInterval" value="2000" /> </settings> </package> |
Détails du package
Les Settings
| Nom | Type | Détail | Description |
| RootUri | String | Obligatoire | URI “racine” de votre serveur ZoneMinder (ex: http://server/zm) |
| Username | String | Obligatoire | Nom d’utilisateur ZoneMinder utilisé pour se connecter au serveur |
| PasswordHash | String | Obligatoire | Le hash du mot de passe de l’utilisateur (récupéré via la fonction”PASSWORD” sur votre serveur MySQL) |
| SecretHash | String | Obligatoire | La chaine de caractère aléatoire spécifiée dans les options de ZoneMinder (paramètre AUTH_HASH_SECRET) |
| SystemRefreshInterval | Int32 | Optionnel Par défaut : 5000 |
L’intervalle de temps en milliseconde pour rafraichir le StateObject représentant le serveur ZoneMinder (par défaut 5 secondes) |
| MonitorsRefreshInterval | Int32 | Optionnel Par défaut : 2000 |
L’intervalle de temps en milliseconde pour rafraichir les StateObjects représentant les cameras ZoneMinder (par défaut 2 secondes) |
| EventsRefreshInterval | Int32 | Optionnel Par défaut : 2000 |
L’intervalle de temps en milliseconde pour interroger les évènements ZoneMinder (par défaut 2 secondes) |
Les StateObjects
Vous retrouverez autant de StateObjects que de caméras ZoneMinder ainsi qu’un StateObject sur le serveur ZoneMinder :
| Nom | Type | Description |
| Host | ZoneMinder.Host | Représente l’état du serveur ZoneMinder (URI, Version, espace disque utilisé, charge CPU, etc…) |
| << Nom de la camera >> | ZoneMinder.Monitor | Représente l’état d’une caméra (ID, nom, type, fonction, taille, URI du flux vidée, état, nombre d’évènements, etc..) |
Les MessageCallbacks
Le package expose 5 MessageCallbacks :
| Nom | Réponse (saga) | Description |
| CancelForcedAlarm | Aucune | Annule l’alarme sur une caméra donnée. |
| ChangeState | Aucune | Change l’état de ZoneMinder (Start/Stop). |
| ForceAlarm | Aucune | Force l’alarme sur une caméra donnée. |
| Restart | Aucune | Redémarre le service ZoneMinder. |
| SetMonitorFunction | Aucune | Défini la fonction d’une caméra (Monitor, Record, Modect, etc…) |
Le package envoi également un message “Alarm” au groupe “Motion” à chaque évènement levé par les caméras.
Quelques exemples
- Afficher le flux des caméras dans une page Web ou dans une application mobile multi-plateforme
- Activer la détection des mouvements des caméras en fonction du statuts de l’alarme
- Force l’enregistrement d’une camera lorsque l’on ouvre une porte ou une fenêtre
- Allumer la lumière en cas de mouvement détecté par une camera
- Envoyer une capture vidéo sur son Smartphone lorsqu’une porte est restée ouverte trop longtemps


Ping : S-Watch : pilotez votre domotique et objets connectés depuis une montre Samsung Gear S2 ou comment développer des applications Tizen connectées à Constellation - Sebastien.warin.fr