7. MUR de CAMERAS

Plusieurs possibilités :

  • Installation de Frigate avec un accélérateur Coral pcie ou usb et l’app go2rtc

  • installation de Zoneminder et lecture des caméras à partir de celui-ci

  • lecture des caméras directementà partir de Monitor

Note

Aujourd’hui, j’ai installé le mur avec Frigate sur ma tablette Samsung tabs9+ et le mur de caméras avec monitor sur une vielle tablette s4 accrochée dans la cuisine. Cela en utilisant une configuration différente pour chaque tablette…..voir ce paragraphe : 0.4.1 Un fichier de configuration par écran de contrôle

Avertissement

Les images peuvent provenir de Zoneminder ou de Monitor, depuis la table « cameras ». Avec les derniéres versions de Zoneminder l’utilisation du cpu atteint en permanence 100% aussi j’ai fai le choix d’abandonner progressivement zoneminder et la 1ere étape a été de d’afficher le mur de caméras depuis monitor

Le choix se fait dans admin/config.php ou admin/config_<Nom config>.php (si plusieurs config)

define('SRC_MUR','mo');// zm=Zoneminder, mo=monitor, fr=Frigate

Pour éviter des problèmes de capacité mémoire, vider le cache de Zoneminder ou Monitor périodiquement avec CRON :

crontab -e image555

Avec nano ou vim :

0 12 * *  * sync; echo 3 > /proc/sys/vm/drop_caches

image556

Ici la mémoire sera libérée des données cache et tampon tous les jours à 12H ;

Affichage mo ou zm:

image557

Affichage fr:

image1618

Avertissement

Images provenant de Zoneminder

Il est important d’ajouter les caméras dans Zoneminder les unes après les autres sans en supprimer afin que ces cameras suivent un ordre chronologique (1,2,3,4,5, 6, …); c’est l’id de Zoneminder qui doit être ajouté dans la BD (id_zm)

Voir la page : http://domo-site.fr/accueil/dossiers/44

image558

Images gérées par monitor

Il suffit de numéroter les caméras (id_zm) dans l’ordre souhaité

7.1- les pages index_loc.php, header.php, entete_html.php

  • Index_loc.php , en général, ne pas modifier

if (ON_MUR==true) {include ("include/mur_cam.php");
$_SESSION["zmuser"]=ZMUSER;$_SESSION["zmpass"]=ZMPASS;}

Note

$_SESSION[« zmuser »] et $_SESSION[« zmpass »], voir les explications ci-après

  • config.php

// utilisation du mur :true sinon false , Nom du mur , nb caméras
define('ON_MUR',true);// mise en service MUR
define('NBCAM','0');// nombre caméras ,pour frigate = non concerné
define('SRC_MUR','mo');// zm=Zoneminder, mo=monitor,fr=Frigate
define('IP_FRIGATE','http://192.168.1.2:5000');// pour Frigate
define('URL_FRIGATE','https://<SOUS-DOMAINE>');//
// Zoneminder
define('ZMURL','http://192.168.1.23/zm');//IP/zm
define('ZMURLTLS','https:zoneminder.DOMAINE.ovh');// sous domaine
define('ZMUSER','<LOGIN>');// pour mur_cameras.php
define('ZMPASS','MOT_PASSE');// pour mur_cameras.php
define('TIMEAPI','3400');//suivant la valeur indiquée dans zoneminder
  • header.php , il n’y a rien à modifier

image561

  • entete_html.php et mes_css.css , pour le switch ajouter ces lignes

image1240

<div class="toggle-outer">
             <div class="toggle-inner">
             <input type="checkbox" id="toggle">
             </div>
</div>

les styles css:

/*       toggle switch */
.toggle-outer{height: 30px;width: 60px;border-radius: 20px;border: 1px solid #ccc;background-color: #f4f4f4;
                     margin: auto;position: relative;transition: all 0.3s ease-in;
                     cursor: auto;top:0px;left:-250px;display:block}
.toggle-outer.checked{background-color: blue;                }
.toggle-inner{height: 30px;width: 30px;border-radius: 50%;position: absolute;left: 0;background-color: #fff;
                     border: 1px solid #ccc;transition: all 0.3s ease-in;}
.toggle-outer.checked .toggle-inner{left: 30px;}
input[type="checkbox"]{display: none;}
#toggleLabel{cursor: pointer;}

7.2- la page de monitor

  • mur_cam.php

image1387

  • Le script du bouton On/Off ,ajouter ces lignes:

/*commande toggle switch mur cameras*/
$('.toggle-outer').click(function(){
     $(this).toggleClass('checked');
     const res = $('#result');
     if(res.css('display') === 'none'){
     $('#toggle').attr('checked', true);
     arret_mur=0;$('#toggleLabel').text('Vidéo inactive');}
     else{
     $('#toggle').attr('checked', false);
     arret_mur=1;updateImage(nbrCam);
     $('#toggleLabel').text('Vidéo active sur toutes les caméras')
     }
     res.toggle();
 });

image565

  • mur_cameras.php , pour Zoneminder

image566

  • mur_cameras1.php , pour Monitor

image1388

Avertissement

IMPORTANT POUR ZONEMINDER : le fichier include/mur_cameras.php est indépendant du programme (‘est une image en retour) et de ce fait on ne peut utiliser les constantes définies dans admin/config.php

On va donc pour remédier à ce problème :

  • passer l’url en paramètre ainsi que l’Idx

  • utiliser les variables de session $_SESSION[« zmuser »] et $_SESSION[« zmpass »] pour le login et le mot de passe car ces données sont sensibles

Les fichiers sont tous UTF-8 sans BOM et l’url des caméras doit se trouver dans mur_cam.php. (ZMURL dans mur_cam.php et non dans mur_cameras.php);

Extrait de mur_cam.php

<?php
while ($i <= NBCAM) {
     if (SRC_MUR=="mo") {$src_img='include/mur_cameras1.php?id_zm='.$i.'&x=';}
     if (SRC_MUR=="zm") {$src_img='include/mur_cameras.php?idx='.$i.'&url='.ZMURL.'&x=';}

image1389

7.4- Ajouter une caméra

NE CONCERNE PAS FRIGATE

Il suffit d’indiquer dans admin/config.php le nb de caméras

define('NBCAM','8');// nombre