Plugin MAP pour zigbeemqqt

Si un développeur sera intéressé d’intégrer un plugin pour schématiser les périphériques du réseau Zigbee avec la commande diagraph que j’utilise avec zigbeemqtt ? Merci

Je récupère le résultat suivant en passant sur mon raspberry la commande suivante :
mosquitto_pub -V mqttv311 -h 127.0.0.1 -m « graphviz » -t zigbee2mqtt/bridge/networkmap
et j’intègre le résultat sur le site internet suivant qui me génère le shéma :
http://www.webgraphviz.com/

Voici à quoi ça ressemble :

Il existe une fonction équivalent sous Home Assistant, (ici : :GitHub - rgruebel/ha_zigbee2mqtt_networkmap: Custom Component for Homeassistant to show zigbee2mqtt Networkmap) et pour moi cela est indispensable pour surveiller et regarder ou sont connecté les périphériques zigbee.

1 « J'aime »

Salut,

Intéressé aussi. Pour l’instant j’ai un scénario qui me lance un script avec la commande pub puis une commande jmqtt qui récupére le résultat que je copie/colle sur le même site que toi :wink:

Bonjour,

J’ai créé avec script un virtuel avec un petit bouton qui lance le script pour automatiser la commande mosquitto.

diagraph

Cela génère un fichier image dans un emplacement : /home/pi/Diagraph/fichier1_date_heure.svg
file

Je souhaiterai que ce fichier fichier1_date_heure.svg s’ouvre dans un emplacement précis ou nouvel onglet etc… peu importe du moment que je puisse visualiser cette image sur un Design …

Merci pour votre aide il me reste plus que l’afficage de cette image …

As-tu essayé avec le plugin HTML display ?

Tu génères comment ton svg ?

Hello

Je connais pas le. Plugin que tu parles je vais regarder.
Le svg est generé via un script sh qui lance commande mosquitto etc…

Bonjour,

Tu peux le partager STP. J’en ai vu qui nécessitent d’ajouter des packages.
C’est ton cas ou tout était déjà installé sur ton OS ?

Hello, j’ai trouvé sur un forum ce n’est pas de moi et je l’ai adapté pour mon utilisation.

Oui tu dois installer package graphviz et imagegick.
Tu lances depuis vnc si tu veux ça t’ouvrira directement sous navigateur web plus sympa je trouve…
Mais faudrait trouver comment ouvrir directement sous une page Web ou autre sous jeedom le fichier généré… …

#!/bin/bash

additional dependencies: graphviz imagemagick

put temporal files in ram filesystem

file="/dev/shm/networkmap"
fechahora=$(date ‹ +%F-%H:%M ›)
#~ echo $fechahora

mosquitto_sub -t zigbee2mqtt/bridge/networkmap/graphviz -C 1 >${file}.dot &
mosquitto_pub -t zigbee2mqtt/bridge/networkmap -m graphviz

wait until mosquitto_sub ends

wait

generate graphic with graphviz (change to short texts with sed)

cat ${file}.dot|sed -e ‹ s/Xiaomi Aqara temperature, humidity and pressure sensor/AqaraTemp/g ›|sed -e ‹ s/Xiaomi Aqara door & window contact sensor/AqaraContact/g ›|sed -e ‹ s/Xiaomi Aqara human body movement and illuminance sensor/AqaraPresence/g ›|sed -e ‹ s/Xiaomi Aqara water leak sensor/AqaraFuiteEau/g ›|sed -e ‹ s/Aqara smart home cube/AqaraCube/g ›|sed -e ‹ s/Xiaomi Aqara vibration sensor/AqaraVibration/g ›|sed -e ‹ s/Xiaomi Mi power plug ZigBee/AqaraPrise/g ›|sed -e ‹ s/Xiaomi Aqara wireless switch/AqaraTelecommande/g ›|sed -e ‹ s/HEIMAN Smart siren/HeimanSirene/g ›|sed -e ‹ s/HEIMAN Smoke detector/HeimanFumee/g ›| dot -Tsvg > ${file}${fechahora}.svg

display with imageMagick command

#display ${file}${fechahora}.svg &
#chromium-browser %U ${file}${fechahora}.svg &
x-www-browser %U ${file}${fechahora}.svg &

OK.
C’est ce que j’avais effectivement trouvé.

Reste plus qu’à trouver la solution pour afficher le fichier image dans un désign ou nouvel onglet web.

Je fais un essai en sortie jpg + htmldisplay…

Moi OK en png finalement (je précise que mon zigbee2mqtt fonctionne sur mon jeedom)
Script sous /var/www/html/plugins/script/core/ressources et modifié pour écrire image png ici (c’est temporaire pour moi) :

data/customTemplates/dashboard/cmd.info.binary.PresenceData/zigbeemap.png

Utilisation du plugin html avec équipement contenant le code html suivant :

<html>
  <img src="data/customTemplates/dashboard/cmd.info.binary.PresenceData/zigbeemap.png" height="100%" width="100%">
</html>

Et tu as son affichage.

EDIT : J’ai ajouté option Gdpi dans le script

…| dot -Tpng -Gdpi=600

Hello,

Tu veux pas mettre ton code en direct copier/coller ?
Merci :wink:

Voilà :
GraphZigbee.txt (1,7 Ko)

A renommer en .sh
et positionner sous /var/www/html/plugins/script/core/ressources
avec chmod et chown qui vont bien.

EDIT : Je tâtonne un peu pour trouver les bons param Gdpi et Gsize…

1 « J'aime »

Je ne peux plus réinstaller le plugin : HMTL Display si tu as une idée :

Avec ton script j’ai ce message d’erreur :

/bin/bash: put temporal files in ram filesystem: Aucun fichier ou dossier de ce type

J’ai du modifier le chemin de la variable file car apparemment vu les chemins tu es en V4, j’ai mis le chemin du widget presencedata de la V3.

Oui je suis en V4.

Non désolé. Je suis en V4 et pas de soucis.

Oui depuis 1 semaine le plugin html n’est plus compatible que pour la V4 …

J’ai pu mettre en place par contre la résolution est moche à cause du fichier généré par graphiz tu as trouvé comment modifier ?

Le problème vient de la ligne du haut des capteurs, il met tout à la ligne, du coupe le fichier png est trop large… Je voudrais afficher en 1024x768 max.

Cf mon script faut jouer avec les options -Gsize et -Gdpi
J’ai bcp moins de capteurs que toi et j’ai une image qui me satsfait.
Regarde ici : networkx - How to set the output size in GraphViz for the dot format? - Stack Overflow