Paul-DS / jeedom-plugin-dahuavto

GNU General Public License v2.0
0 stars 1 forks source link

info 'DoorNotClosed' #11

Open FPA93 opened 2 years ago

FPA93 commented 2 years ago

Bonjour, serait-il possible d'avoir l'ajout de la commande info 'DoorStatus' sur le plugin. Je souhaiterais utiliser cette info pour ma boite aux lettres (si courrier déposé) en utilisant le contact "DOOR-FEED" du VTO. J'ai bien la notification dans l'appli gDmss et aussi l'info dans les log du plugin DahuaVTO_Deamon. Sur VTO3211. Cdt.

FPA93 commented 2 years ago

Bonjour, je me répond à moi même, Peut-être utile à d'autre ou pour une MAJ. Si vous avez besoin d'utiliser l'information qui indique le statut de la porte open/close avec le contact DOOR-FEED sur VTO 3211 essayé ces modif. Moi je vais l'utiliser pour ma boite aux lettres avec un contact pour savoir si j'ai du courrier. Je ne connais pas le code mais après avoir chercher j'ai trouvé une solution qui fonctionne (pour le moment !) en faisant quelques copier/coller avec des modif. Donc à vos risque et péril. Ce que j'ai fais: Sur Jeedom via l'éditeur de fichier, pour ajouter la commande info: Dans le fichier "plugins/dahuavto/core/class/dahuavto.class.php" et dans la fonction "private function createDoorCommands" (ligne 209), ajouter:

$doorstatus = $this->getCmd(null, 'doorstatus'); if (!is_object($doorstatus)) { $doorstatus = new dahuavtoCmd(); $doorstatus->setName(('Boite aux lettres', FILE__)); } $doorstatus->setLogicalId('doorstatus'); $doorstatus->setEqLogic_id($this->getId()); $doorstatus->setType('info'); $doorstatus->setSubType('other'); $unlock->setTemplate('dashboard','light'); $unlock->setTemplate('mobile','light'); $doorstatus->save();

Puis dans le fichier "plugins/dahuavto/ressources/dahuavto/daemon.py" et dans la partie "def _message_received" (ligne 83), ajouter:

if message.get("Action") == "Pulse" and message.get("Code") == "DoorStatus" and messageData.get("Status") == "Open": self._send_change({ 'doorstatus': 1 }),

if message.get("Action") == "Pulse" and message.get("Code") == "DoorStatus" and messageData.get("Status") == "Close": self._send_change({ 'doorstatus': 0 }),

Voila si ca peut servir à quelqu'un. Jai aussi désactivé les MAJ du plugin et sauvegardé une copie des 2 fichiers (originaux et custom) en cas de PB ou de réinstal.

C'est peut-etre pas fait dans les règles mais comme expliqué plus haut, je suis ne suis pas développeur. Pour moi ca fonctionne.

Cdt.