Matériel utilisé
- NVR Dahua DHI-NVR5232-8P-EI
- Caméras TIOC Dahua (à tester sur d’autre modèle compatible SMD/IVS)
- Jeedom sur réseau séparé du NVR (Non indispensable)
- Routeur Unifi UDM Pro (Non indispensable)
- Plugin Script Jeedom
Objectif
Contrôler le mode Armé/Désarmé global du NVR Dahua depuis Jeedom, équivalent au bouton Armé/Désarmé dans DMSS. Avec retour d’état synchronisé — si vous armez/désarmez depuis DMSS ou le NVR, Jeedom se resynchronise automatiquement.
Étape 1 — Prérequis réseau (dépend de votre config)
Si Jeedom et le NVR sont sur des VLANs différents, il faut une route inter-VLAN. Sur Unifi, ajoutez une règle firewall :
Source : réseau Principal (ex: 192.168.5.0/24)
Destination : réseau CCTV (ex: 192.168.15.0/24)
Action : Allow
- Poussez la route aux clients via DHCP Option 121 sur le réseau Principal :
Code : 121
Value : 192.168.15.0/24:192.168.5.1
- Vérifiez la connectivité depuis Jeedom (Réglages → Configuration → OS/DB → >_Administration Système) :
curl --digest -u "admin:MOTDEPASSE" -s "http://IP_NVR/cgi-bin/magicBox.cgi?action=getSystemInfo"
Étape 2 — Commandes API HTTP Dahua : Toujours depuis (Réglages → Configuration → OS/DB → >_Administration Système)
Le NVR Dahua exige une authentification Digest Auth (pas Basic).
- Lire l’état actuel
curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=getConfig&name=DisableLinkage"
Retourne : table.DisableLinkage.Enable=true (désarmé) ou false (armé)
- Armer le NVR
curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=setConfig&DisableLinkage.Enable=false"
- Désarmer le NVR
curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=setConfig&DisableLinkage.Enable=true"
Syntaxe importante : utiliser DisableLinkage.Enable (sans [0]). La variante DisableLinkage[0].Enable ne fonctionne pas sur ce modèle.
Étape 3 — Créer les fichiers .sh dans Jeedom
Le plugin Script en mode HTTP utilise Basic Auth — incompatible avec Dahua. Il faut créer des fichiers .sh via l’éditeur de fichiers (Réglages → Configuration → OS/DB → Éditeur de fichiers), dans le dossier /html/plugins/script/data/.
Nouveau Fichier → TXT: Texte non formaté → remplir les fichiers avec les lignes ci dessous et une fois enregistré, renommer avec la bonne extension.
- tioc_armer.sh
#!/bin/bash
curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=setConfig&DisableLinkage.Enable=false"
- tioc_desarmer.sh
#!/bin/bash
curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=setConfig&DisableLinkage.Enable=true"
- tioc_etat.sh
#!/bin/bash
result=$(curl --digest -u "admin:MOTDEPASSE" -s \
"http://IP_NVR/cgi-bin/configManager.cgi?action=getConfig&name=DisableLinkage")
if echo "$result" | grep -q "Enable=true"; then
echo "Désarmée"
else
echo "Armée"
fi
- Rendez les fichiers exécutables depuis Administration Système :
chmod +x /var/www/html/plugins/script/data/tioc_armer.sh
chmod +x /var/www/html/plugins/script/data/tioc_desarmer.sh
chmod +x /var/www/html/plugins/script/data/tioc_etat.sh
Étape 4 — Configurer le Plugin Script dans Jeedom
Créez un équipement avec trois commandes :
Rafraîchissement auto : toutes les 5 minutes
Commande Armer
Type script : Script | Type : Action | Sous-type : Défaut
Requête : /var/www/html/plugins/script/data/tioc_armer.sh
Commande Désarmer
Type script : Script | Type : Action | Sous-type : Défaut
Requête : /var/www/html/plugins/script/data/tioc_desarmer.sh
Commande État
Type script : Script | Type : Info | Sous-type : String
Requête : /var/www/html/plugins/script/data/tioc_etat.sh
Le rafraîchissement automatique de la commande État permet à Jeedom de se resynchroniser si vous armez/désarmez depuis DMSS ou depuis la programmation du NVR.
Résultat final
Deux boutons Armer/Désarmer et un retour d’état texte synchronisé dans Jeedom. Compatible avec la programmation depuis DMSS.
Testé sur : DHI-NVR5232-8P-EI — Jeedom 4.5.2 — Plugin Script