Je tente de faire fonctionner le plugin XiaomiHome avec mes équipements Xiaomi qui sont sur un autre réseau et cela ne fonctionne pas. L’idée est de séparer un peu les différents équipements de la maison pour que ça ne soit pas le bazar.
Routeur pfSense :
Jeedom : 192.168.1.0/24
IOT : 192.168.11.0/24
J’effectue mes tests avec des Downlight Xiaomi/Philips :
l’une est sur le réseau Jeedom et tout est Ok : ça me permet surtout de regarder les trames réseau
l’autre est sur le réseau IOT et là ça ne fonctionne pas
Depuis le réseau IOT je vois bien la trame réseau UDP « HELO » (!1) partir du réseau Jeedom vers mon équipement, mais ce dernier n’émet pas de réponse (SID, short_id)…
Est-ce qu’il est possible qu’il reste muet car le réseau source n’est pas le même que le sien ?
J’ai lu des histoires de proxy IGMP par ci par là : est-ce que ça serait la solution ?
Depuis l’application Xiaomi Home sur Android, peu importe si le téléphone est sur le réseau Jeedom ou IOT je peux interragir sans soucis avec les équipements des 2 réseaux, j’imagine que c’est parce que ça passe par le cloud de Xiaomi
J’imagine que je parle chinois pour beaucoup d’entre vous, mais si quelqu’un de calé en réseau passe par ici j’imagine qu’il saura peut-être me donner des pistes à explorer
Je n’ai pas de matis Xiaomi mais je crois bien qu’ils fonctionnent avec du multicast (tu devrais voir des requêtes avec des adresses commençant par 224. (Ou de 224 à 239).
Ces adresses ne passent pas les réseaux, du moins de base. Par exemple, il n’est pas possible de faire du airprint entre deux réseaux ip (sans configuration).
Il va te falloir faire du routage multicast (selon les matériels, cela porte un nom différent: igmp proxy, multicast routing ou encore multicast forwarding).
Je ne sais pas comment faire avec le pfsense, mais c’est une piste de recherche (tous les matériels ne sont pas capables de faire du routing multicast, il faut déjà vérifier si le pfsense sait le faire).
Justement je ne suis pas certain que ça soit un problème de multicast car sur le réseau Jeedom je ne vois justement aucune trame multicast… ni dans le code du plugin…
En y regardant de plus près au final il n’y a que des trames UDP entre le démon Jeedom et l’ampoule Xiaomi, cas Ok sur le réseau Jeedom :
On voit en 1, 2 et 11 les paquets UDP, à 5 secondes d’intervale et 3 tentatives tel qu’on le voit dans le code, arriver sans que l’ampoule Xiaomi ne daigne faire la moindre réponse…
Pour complément pour le multicast par contre ça se vérifie sur la Gateway Xiaomi : si Jeedom et la GW ne sont pas dans le même subnet Jeedom ne verra effectivement pas les trame Multicast et n’ajoutera donc pas la GW automatiquement
Dans la 2ème capture, l’ampoule ne répond pas au jeedom en UDP. Ce qui pourrait signifier qu’elle ne s’est pas enregistré auprès du pont, et donc qu’elle ne comprend pas la requête.
Il doit y avoir du multicast soit au démarrage du pont, soit au démarrage de l’ampoule.
Donc, si je résume: 192.168.1.20 parle à 192.168.11.14, mais ce dernier ne répond pas. Ou alors, il ne sait pas où répondre.
Quelle est la gateway de ton 192.168.1.20? Et de 192.168.11.14?
Question bête, mais as-tu bien autorisé les flux dans le pfsense? Y-a-t-il de l’IPS qui pourrait bloquer quelque chose?
Sur ton pfsense, il faudrait faire un tcpdump sur les deux interfaces en même temps, pour voir si le côté IOT ne répond vraiment pas, ou bien si c’est le pfsense qui le bloque.
Oui c’est bien ce que je fais : tcpdump sur les 2 interfaces en simultané.
Et donc je ne vois pas le Downlight répondre, vu que ce n’est pas sur son réseau il devrait forcément passer par la GW, mais non…
Je pense que le firmware du Downlight ne permet tout simplement pas cela, ça doit être tellement réduit en taille… et puis bon le commun des mortels ne s’amuse pas à mettre ses IOT sur un réseau différent
Je pense que je vais simplement mettre le Jeedom sur le réseau IOT, et au final ça sera plus un réseau « domotique » qu’autre chose ^^
Faudrait limite arriver à contacter Xiaomi, je ne sais pas trop par quel biais ça serait possible et j’imagine qu’ils porteraient pas beaucoup d’intérêt à ce type de problème
J’ai l’impression que c’est plus un soucis d’accès WiFi
Je vais creuser de ce côté là…
Concrètement mon point d’accès (un Linksys WRT3200ACM sous OpenWRT) a 3 « antennes » :
Marvell 88W8964 802.11nac
LAN : WiFi 5GHz AC
Marvell 88W8964 802.11bgn
LAN : WiFi 2.4GHz N
IOT_N : WiFi 2.4GHz N
Marvell 88W8887 802.11bgnac
IOT : WiFi 2.4GHz Legacy
Concrètement la GW n’accepte pas de se connecter au point d’accès IOT Legacy… alors que les spots « Philips » eux ne savent se connecter uniquement à ce PA
J’ai créé le IOT N et là la GW se connecte volontiers et ça fonctionne correctement