ARP-scan Jeedom smart

Bonjour tout le monde,

Je dispose d’une jeedom Smart.

Comme vu sur de nombreux post je voulait gérer la présence avec le plugin Networks et la méthode ARP afin d’éviter les soucis de téléphone qui coupe le wifi en veille.

Soucis quand je met ARP ( ayant au préalable configuré l’IP et l adresse MAC) impossible de voir la présence d’un tel ( essayé sur Xiaomi MI8 et un galaxy S6)

En cherchant sur internet, j’ai vu quelqu’un qui parlait d’un arp-scan, mais je l’ai vu seulement sur un site et quand je tape dans google la recherche n’est pas vraiment efficace!

Est ce que quelqu’un a déjà eu ce soucis?

Merci d’avance

Arp-scan doit être dans les dépôts debian non ?
Et installé par les dépendances du plugin non ??

Apparemment non, je viens de vérifier et je l’ai installé à la Mano car il n’était pas présent.
Je tente d’utiliser la méthode ARP également pour détecter la présence des téléphones mais ce n’est pas concluant. Peut-être est-ce à cause de l’absence du paquet arp-scan.

A voir dans les heures qui viennent si cela change quelque chose.

Cela ne change rien… J’ai l’impression que mon mobile est toujours connecté quand je suis à la maison parce que j’ai pas mal d’applications qui se mettent à jour en arrière-plan. Ce n’est pas le cas de mon épouse qui, elle, a moins d’application et son portable se déconnecte régulièrement quand elle ne l’utilise pas…

Un truc tout bête.
Les équipements que tu veux detecter sont sur le même réseau que ton Jeedom ?
Ne pas oublier que ARP est un protocole de niveau 2 et ne traverse pas les routeurs.

Oui, tout est derrière le même réseau que mon Jeedom, dans le même range.

Je pense que l’iPhone se déconnecte pour économiser la batterie et que les reconnexions en veille se font au moment des push ou d’autres mises à jour en arrière-plan.

J’ai procédé autrement.
J’ai suivi le chapitre n°1 de cet article: https://www.ca-sert-a-quoi.com/articles/domotique/tuto-centre-de-gestion-de-presence/

Je ne vais pas parler trop vite mais cela fonctionne. Par contre, je ne comprends pas pourquoi cela ne fonctionne pas avec Network.

Bonjour,

Je me joins à la conversation car j’ai le même ressenti avec la méthode ARP du plugin Network.
J’utilisais le plugin Ping jusque là sans soucis (iPhone/ARP). Mais celui-ci ne semble plus fonctionner avec les dernière MAJ de Jeedom.
Je l’ai remplacé par le plugin Network et la remontée de l’info ARP ne semble pas fiable…
Je vais tester le script du tuto…

Je peux confirmer que cela fonctionne.
J’ai donc créé deux équipements scripts, un pour chaque téléphone.
J’ai essayé de mettre les deux téléphones dans un seul équipement mais j’avais des erreurs d’exécution.
Donc, un équipement par script, avec auto-cron toutes les minutes et cela fonctionne parfaitement bien.

Il serait bien de tagguer ce sujet pour le plugin Network. Peut-être qu’il y a un bug dans la fonction arp…?

Le script ne fonctionne pas chez moi…
Mais j’ai trouvé pourquoi: le DNS Jeedom fait que arp-scan ne fonctionne pas.
J’obtiens le message « ERROR: Could not obtain MAC address for interface tun0 ».

Dès que je désactive le DNS Jeedom, ça fonctionne!

Un rapide coup d’oeil sur Google indique que c’est normal avec un VPN (histoires de couches/niveaux de réseau…).

Je vais regarder si j’arrive à trouver une solution, mais j’ai peur que ça dépasse mes compétences…

En tout état de cause, il semble donc que la méthode arp-scan ne fonctionne pas en l’état lorsque le DNS Jeedom est actif (ce qui explique que le plugin Ping ne fonctionnait plus chez moi, rien à voir avec le plugin mais avec la mise en place du DNS…).

je confirme que chez le moi, le VPN est activé et que ça ne fonctionne pas avec le plugin Networks

Je vois que le scan se fait sur l’interface du vpn (tun0) au lieu de celle du Lan (eth0 en ethernet).
Vous avez essayé de preciser l’interface dans la commande arp-scan? Je me souviens avoir du le faire pour jeedom sous docker a l’époque.

Je suis également utilisateur du DNS de Jeedom, cela explique donc pourquoi cela ne marchait pas.

J’ai donc récupéré un script sur un blog que j’ai trouvé et j’ai d’abord testé l’exécution de la commande directement sous Linux et cela fonctionne.

Voici le site où j’ai trouvé le script:

C’était également ce script qui ne fonctionnait pas chez moi.

Après avoir listé les interfaces réseaux avec la commande:

ip a | grep UP | cut -d " " -f 2 | cut -d ":" -f 1

J’ai modifié le script en y insérant l’interface réseaux sur laquelle appliquer la commande arp-scan:

sudo /usr/bin/arp-scan --interface=ens33 -l -g --retry=5 -T $2 -t 800 | grep -i $2 | wc -l

Et cela semble fonctionner.

Et bien je vais changer le script par acquis de conscience :slight_smile:

Merci pour l’info.

Jusqu’à présent, la smart ne bronche pas :slight_smile:

J’utilise aussi le plugin Network pour gérer la présence. Le mode ARP pour l’iphone de ma femme marchait très bien jusqu’à présent, mais depuis qu’elle a fait la dernière mise à jour apple, le wifi du téléphone s’endort au bout de quelques minutes et je perds sa présence. Une idée pour régler le problème?

Salut je voulais essayé ton script, mais j’ai un doute! il faut remplacer le $2 par quelque chose ou il faut le laissé tel quel?

Bon en ce qui me concerne, je ne sais pas si c’est une coïncidence, mais j ai tenté le script suivant:

if [ "$1" = "mac" ]; then
      sudo /usr/bin/arp-scan --interface=ens33 -l -g --retry=5 -T $2 -t 800 | grep -i $2 | wc -l
elif [ "$1" = "ip" ]; then
        /usr/bin/fping -c1 -t50  $2 2>&1 | grep "min/avg/max" | wc -l
fi

en remplaçant le $1 par la MAC de mon tel.

Je l’ai lancé une fois, bien évidemment ça n’as pas marché!!

Mais dorénavant le plugin network marche en ARP sur mes deux tel!

Je ne sais pas si le script a débloqué un truc?

Il est normal que ton script n’ait pas fonctionné pour plusieurs raisons:

Il faut retirer les guillemets avant et après $1 dans les conditions.

Ensuite, il ne faut pas remplacer le $1 ni le $2 car ce sont des arguments récupérés lorsque tu exécutes ton script, que ce soit manuellement sous Linux ou via le plugin script.

Il faut appeler le script comme suit:

nomdetonscript mac adressemacdetontel