Demande d'aide Plugin xiaomi

Bonjour a tous

Infrastructure:

  • 1 serveur Openmediavault 192.168.1.10
  • 1 Routeur OpenWrt
  • Differents capteurs xiaomi
  • 2 gateway Xiaomi model Lumi.gateway.v3 v1.4.1_176.0220
  • Different Lumieres Yeelight

Installation :
Openmediavault etant fonctionnel avec different services Docker: Jellyfin - Airsonic - Nginx Proxy Manager …
J’ai attribuee a mon Routeur :
- Sur l’interface Lan qui gere le wifi et l’eternet :
- Activer le protocole STP
- Activer l’IGMP snooping
- Une adresse ipv4 statique a chacun de mes composant.

Je me suis lance dans l’installation de jeedom sur mon serveur en docker sous un reseau macvlan 192.168.1.193

Pour eviter les questions redondantes :
- Je suis sur le meme reseau Lan
- la Gateway-1 192.168.1.100
- la Gateway-2 192.168.1.101
- Contener Jeedom 192.168.1.193
- Les Gateway sont bien passer en dev.
avec la recuperation de tocken

    - Installation des Dependances du plugin 
    - Relacer le demon

Jai tenter un ping de la gateway ok

Retour d’etat de la commande nmap -p 9898 -sU 192.168.1.100
PORT STATE SERVICE
9898/udp open|filtered monkeycom
MAC Address: 28:6C:07:F1:02:0D (Xiaomi Electronics,co.)

Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds

Exposition du probleme :

A en suivre les differentes documentations via le plugin Xiaomi @lunarok gateway devrais remonter d’elle meme dans jeedom ainsi que les capteur associee.
Aucun retour sur Jeedom.
Je seche et je ne trouve pas la solution.
auriez vous une piste que je naurais pas envisager.

Cordialement.

Bonjour,
il me semble que toutes les Gateway ne sont pas compatible.
sa dépend de la version.

Merci pour ta reponse.
Cepedant j’ai informer les questions redondantes:
la gateway reponse au pig ok
et reponse du port 9898 open udp via la commande nmap lister dans mon message.

Retour d’etat de la commande nmap -p 9898 -sU 192.168.1.100
PORT STATE SERVICE
9898/udp open|filtered monkeycom
MAC Address: 28:6C:07:F1:02:0D (Xiaomi Electronics,co.)

Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds
d’ou mon interogation

Info mes Yeelight remonte bien mais non gere par la gateway

je ne pense pas me tromper en disant que seule la V2 est compatible et particulièrement DGNWG02LM

Bonjour,

akenad :slight_smile:

Merci pour vos reponses j’apprecie votre reactivite.
Jai suivi differents articles precedent et active mes contenaire sur un reseau macvlan. ton message @akenad semble propre mais je doute m’etre tromper quelque part a ce niveau mon reseau semble propre d’autant que mes yeelights sont toutes remontee sans aucun souci.

Je bloc donc sur la remonte de ma gateway et qui va me gere l’ensemble des capteurs :frowning:

Pourtant akenad te donne la piste la plus sérieuse et tu n’as rien fait qui montre que le docker n’est pas la.source du problème.
Yeelight n’utilise pas le même protocole et les trames traversent naturellement les réseaux. C’est pas le cas de la gateway

2 « J'aime »

je ne doute pas @lunarok que le probleme vienne probablement de cette remonter dans se cas je reste dans le flou car malheuresement au vue des differents posts le reseau macvlan semble correct :

j’en es parcouru des tutos et je ne vois pas ou j’aurais merder
je vous laisse aussi un retour :
ip add show enp3s0 :
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 24:4b:fe:5d:cb:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global enp3s0
valid_lft forever preferred_lft forever

Le Broadcast et le multicast semble OK
ou le retour es mauvais ?

1 « J'aime »

Peut on avoir le contenu de dockerfile ou docker-compose.yaml ?

Voici le Docker compose injecter directement dans portainer
tous fonctionne et le contenaire es bien deployer sur mon reseau mynet en macvlan :

Merci pour vos reponses rapide en tous cas sa fait plaisir car je vous avoue avant de lancee un billet sur le forum jai lu beaucoup pour essayer de trouvee reponse a mon souci et tester beaucoup de choses.

version: « 2.1 »
networks:
default:
external:
name: mynet
services:
jeedom-server:
container_name: jeedom-server
image: jeedom/jeedom:latest
ports:
- « 9070:80 »
volumes:
- /srv/dev-disk-by-uuid-e3042b02-fee2-4cdc-ba53-f77b5e423244/Docker-Data/Jeedom/data/jeedom:/var/www/html
depends_on:
- db
restart: unless-stopped
db:
container_name: jeedom-mariadb
image: « mariadb:latest »
volumes:
- /srv/dev-disk-by-uuid-e3042b02-fee2-4cdc-ba53-f77b5e423244/Docker-Data/Jeedom/data/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=jeedom
- MYSQL_USER=jeedom
- MYSQL_PASSWORD=My Pass
- MYSQL_ROOT_PASSWORD=My Pass
restart: unless-stopped

Salut,

Qd tu dis que le broadcast semble OK, tu l’as confirmé par un tcpdump depuis ton docker ?

trop de reactivite
je decouvre docker depuis 3 semaine sur openmediavault et portainer et je vais par moment en cli @zaibakker
je reste un peu perdu dans se domaine mais j’apprend vite
lorsque tu me demande de faire un tcpdump c’est a linterieur du contenair ? ou bien de l’host
pardonner moi je crois etre completement a cote de la plaque

Pourquoi faire un mappage de port alors que tu es en macvalan ?

Pourquoi un conteneur pour mariadb alors que l’image possède déjà sa propre base mariadb ?

@Didier3L pour repondre a tes questions le mappage de port es une erreur de ma part de base je fut sur un reseau bridge afin de parvenir a mon docker via nginx proxy manager des copier coller de certaine config.
mariadb es deja integree a l’image jeedom ? je ne savais pas je vois dans plusieur tutoriel quil semble quil es une base a cree.

Dans ton premier message tu dis être en macvlan et maintenant tu dis être en bridge !

On peut pas t’aider si il n’y a pas un peu de cohérence

Je pense qull il faut repartir de zéro avec les bon tuto

Tu dois trouver ds tes trames udp une demande d’état par ta gateway en multicast 224.0.050 port 9898. Ca à l air d’être générique à xiaomi gateway d’après Google.
Je l’ai sur mon host et forcément, il faut que ces packets soient routés à ton docker jeedom à minima.
Tu dois donc les voir sur ton host ET sur l’interface de ton docker. Pour transiter le multicast c’est macvlan ou mode host sur docker. Ca ne fonctionne pas en mode bridge, sauf changement.

Un petit tcpdump sur la bonne interface et un petit grep sur l’ip de ta gateway ou autres filtres. Si tu vois rien, c’est que le pb vient de la. Pour le résoudre, c’est une autre histoire. Mais comme disait Didier3l, déjà vérifier la conf docker en macvlan ou host, les 2 fonctionnaient chez moi.

Bonjour @coconuts,

J’ai le même problème que toi. J’ai installé jeedom sur docker avec une interface en macvlan (pour pouvoir utiliser le plugin xiaomi) et une interface en bridge (afin que jeedom puisse communiquer avec le syno).

Pour le moment je ne vois pas remonter la gateway dans le plugin. Pourtant, avec un tcpdump sur l’interface en macvlan je vois bien les requêtes UDP venant de la gateway :
IP 192.168.1.x.4321 > 224.0.0.50.9898: UDP, length 135

Je vois même quelques messages des équipements xiaomi dans les logs de plugin :
[2021-02-22 13:47:50][DEBUG] : {u’cmd’: u’read’, u’sid’: u’158d000xxxxxxx’}
[2021-02-22 14:08:09][DEBUG] : {u’cmd’: u’get_id_list’, u’158d000xxxxxx’: u’158d000xxxxxxx’}

Je cherche une solution…

Pour info, ma solution de contournement (le temps de trouver la solution): j’ai un jeedom dédié en mode host qui héberge seulement le plugin xiaomi où la gateway est bien détéctée. (j’utilise le plugin Jeelink pour faire remonter les équipements dans mon jeedom principal)

Il faut supprimer le bridge et faire un routage macvlan
Voit les tuto

@Didier3L, je viens de voir ton Tuto très détaillé ! Merci !