Aller au contenu
Dragoniacs

[HC3] Détection de présence

Recommended Posts

Bonjour à tous !

 

Voici l'adaptation pour nos HC3, du VD de sebcbien développé ici:

http://www.domotique-fibaro.fr/index.php/topic/2613-detection-de-présence

 

Le paramétrage est très simple, il suffit de déclarer l'adresse MAC à rechercher sur votre réseau domestique, dans les variables du QA "MAC".

N'oubliez pas les guillemets autour de l'adresse et n'utilisez que des lettres minuscules.

 

Il vous faut 1 QA par appareil à surveiller.

 

Amusez vous bien !

 

Presence_V1-2.fqa

 

 

 

Publication de la V1.1

   - Ajout de la vérification du format de l'addresse MAC

 

Publication de la V1.2

   - Ajout d'un bouton et d'une fonction 'onFind' pour forcer la boucle de recherche du périphérique

Pour ceux qui ont déjà installé le QA, voici le code LUA à remplacer dans le fichier "main"

Presence_LUA_V1-2.lua

 

 

Modifié par Dragoniacs
Publication de la V1.2
  • Like 3

Partager ce message


Lien à poster
Partager sur d’autres sites

salut @Dragoniacs Je viens de testé ton QA et ça ne fonctionne pas pour moi. J'ai bien mis mon adresse MAC  avec les "" et je ne suis pas détecté par le QA.

Partager ce message


Lien à poster
Partager sur d’autres sites

As tu bien installé la dernière beta ?
Car j'ai un peu galéré à mettre au point ce QA, et j'ai l'impression que ça c'est débloqué avec la montée de version... (Ou alors la supression d'un bug interface chaise-clavier...)

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Chez moi ça fonctionne très bien, testé avec différentes adresses mac et divers wifi sur mon réseau domestique...

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

As tu fais des essais avec les lettres de l'adresse mac en majuscules ou en minuscules

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah non, que en minuscules....

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Dragoniacs Ça fonctionne il fallait mettre le MAC en minuscule. Je pense que tu devrais le préciser dans la présentation du QA.

Merci.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Cool !
C'est corrigé, merci.

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Il existe une commande lua pour forcer le mode majuscules ou minuscules

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui je sais. Cela pourrait faire l'objet d'une V1.1, mais j'attends de voir s'il y a d'autres choses à modifier.

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu pourrais aussi contrôler l'adresse mac sur ça longueur et que les lettres soit comprises entre A et F

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui bien sûr

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Quelques pistes de vérification de l'adresse MAC, que j'utilise dans ma fonction Wake-on-LAN :

function mafonction(mac)
	-- Test la validité de la variable
	if type(mac) ~= "string" then
		print("Invalid MAC address type")
		return
	end
	-- Retire les espaces en trop (trim)
	mac = mac:gsub("^%s*(.-)%s*$", "%1")
	-- Check MAC address format : "01:23:45:67:89:ab" or "01-23-45-67-89-ab" or "0123456789ab"
	if not (string.match(mac, "^%x%x:%x%x:%x%x:%x%x:%x%x:%x%x$") or string.match(mac, "^%x%x-%x%x-%x%x-%x%x-%x%x-%x%x$") or string.match(mac, "^%x%x%x%x%x%x%x%x%x%x%x%x$")) then
		print("Invalid MAC address format")
		return
	end
	-- Retire les caractères inutiles et met en minuscule
	mac = string.gsub(mac, ":", ""):gsub("-", ""):lower
	-- Suite...

end

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer tu as récupéré cela sur le QA unifi sur le market fibaro ?

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

ben non, j'ai bien précisé que c'était un extrait de code issu de ma fonction WOL....

 

ce n'est qu'un bout de code, permettant de vérifier la validité de l'adresse MAC, puis de la mettre en forme si nécessaire.

@Dragoniacs tu pioches ce que tu veux dedans

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi j'avais récupérer ce bout de code

 

    self.DeviceName = {} -- table Nom des devices + numero des label
    self.macList = {} -- table des adresses Mac
    local j = 0
    for i = 1, 6 do
        self:updateView("label"..i, "text", "  ")
        local device = "["..self:getVariable("Device "..i).."]"
        device = json.decode(device)
        if #device == 2 or #device == 3 then
           if (device[2]) then -- si mac différent de nil
           j = j + 1
           device[2] = string.lower(device[2])
              -- verification de l'adresse mac + est ajout aux table si mac Ok
              if string.match(device[2], '^[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]$') == nil or string.len(device[2]) ~= 17 then
                 self:warning("onInit(): ", device[2], " est une adresse MAC incorrecte")
                 self:updateView("label"..j, "text", "Erreur Mac Adresse device "..i)
              else -- si mac OK ajout aux tables self.DeviceName et self.macList
                 self:trace(i," Mac : ", device[2]," - Nom : ",device[1])
                 self.DeviceName[j] = {device[1], i}
                 self.macList[j] = device[2]
                 self:updateView("label"..j, "text", device[1].." - Mac : "..device[2])
              end
           end
        end
    end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà la V1.1 avec vérification de l'addresse MAC.

Merci pour votre contribution :60:

  • Like 3

Partager ce message


Lien à poster
Partager sur d’autres sites

@Dragoniacs Salut. Petite idée comme prochaine évolution. Créer des enfants pour chaque appareil ajouté. Plus pratique que de créer un QA à chaque fois.

C'est du boulot mais on n'est pas pressé. ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

J'y ai pensé mais en fait je ne vois pas trop l'intérêt....
Il faudra que tu liste tes adresses MAC dans une variable locale, et que tu cherches les mac des modules enfants... Pas trop de gain de ressources a mon sens...


Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux chercher les adresse Mac avec le parent est mettre à jour les enfants ensuite

Je pense qu'au niveau ressources si tu as plusieurs QA qui exécute le même code c'est pas mieux à mon avis

Je ne me suis pas pencher sur ce QA lorsque j'ai eu ma hc3 car utilisant un contrôleur unifi je fais cela via l'api. Il faudra un jour que je le termine en créant des enfants plutôt qu'un affichage style hc2 vieillot

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, sans doutes...

J'ai déjà un QA qui gère les child (Melcloud), je suis maintenant rodée a l'exercice default_biggrin.png

Reste juste à trouver le temps...

Si tu veux t'y mettre avant moi, pas de soucis.

 

Envoyé de mon RMX1993 en utilisant Tapatalk

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

         Salut. J'ai une question : j'ai téléchargé et installé votre QA, ou plutôt installé 2 copies, pour mon téléphone et celui de ma femme. J'ai un samsung S10 + et un samsung S20 + dans ma femme ... les coquelicots sont décrits à 100% correctement, j'ai tout vérifié, QA fonctionne clairement lorsque je passe en 4G et lorsque je retourne au wi-fi ... en plus , j'ai affiché des notifications dans des télégrammes lorsqu'il y a une connexion (dans le réseau domestique wi-f-) et lorsque ma femme ou moi sommes hors ligne ... tout se passe bien, je l'ai fait hier soir ... je me réveille dans le matin, et j'ai 141 messages dans mon télégramme que toute la nuit je suis ma femme en ligne \ hors ligne ...

        le premier écran montre qu'à 13h28 le téléphone a été trouvé, puis un délai d'attente de 5 minutes et déjà à 13h34 hors ligne puis à 13h39 à nouveau en ligne... le téléphone était 100% connecté au wi-fi à la maison...
wi-fi que j'ai configuré via Capsman - analogue microtique de l'itinérance wi-fi transparente

          J'ai un routeur microtic et je suis moi-même un fournisseur d'accès Internet et la vie, alors qu'est-ce que l'ip, le pare-feu arp, etc. Je connais et comprends tout très bien. la première chose que j'ai faite le matin - j'ai regardé la table ARP sur le routeur lui-même, j'ai commencé à pinger puis à déboguer QA ... et il s'est avéré qu'il y avait un ping du microtic, l'ARP est ok, mais QA une fois voit qu'il n'y a pas de téléphone (il y a ), et puis au bout de 5 minutes qu'il y a déjà un téléphone...

          Je pensais que Mikrotik lui-même bloquait le guichet automatique quelque part ... J'ai pris et spécifié le mode local-proxy -arp dans les paramètres du pont

après ça, du matin au midi, j'ai commencé à recevoir moins de faux positifs, mais ils existent toujours...
question à l'auteur : pour quelle raison une telle situation peut-elle se produire et existe-t-il une opportunité dans les paramètres d'assurance qualité de modifier le montant des pertes avant que l'assurance qualité ne dise que nous sommes hors ligne ou peut-être que quelque chose doit vraiment être modifié sur le routeur lui-même ?

 

 

image.thumb.png.c395b411750b274944dec2ab2790b25d.png

image.thumb.png.97af62f3554d08a9777fcddc328d3033.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou peut-être est-il possible de suivre la présence par PING ? donc ce sera plus précis !

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne suis pas a l'origine de ce code, je l'ai juste adapté de la HC2 pour la HC3.
Mais il est bien basé sur un ping...
J'ai eu aussi ce problème de téléphone non détecté sur un de mes réseaux wifi. J'ai modifié un peu les paramètres dans le QA : dans le bas du fichier main, tu peux essayer de changer le nombre de ping consécutifs ou le temps entre 2 ping pour voir si ça s'améliore.


Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

1) ce QA n'est pas basé sur un ping, mais sur des requêtes ARP... ce sont des choses différentes
2) le paramètre en bas de QA a changé, le nombre de requêtes est passé à 10 .. rien n'a changé ...
3) c'est pourquoi j'ai demandé, est-ce juste moi qui bug ou est-ce que tout le monde a la même situation ?

Partager ce message


Lien à poster
Partager sur d’autres sites

×