[Non supporté] Xiaomi : Installation du plugin sur docker (Synology)
[Non supporté] Xiaomi : Installation du plugin sur docker (Synology)
Bonsoir,
Pour ceux qui utilisent docker vous pouvez faire fonctionner le gateway en forcçant la réception des trames multicast sur le container (j'utilise Docker sous Synology). Apparemment Docker n'est officiellement pas supporté mais après le procédure ci dessous tout à l'air de fonctionner.
Il suffit d'installer pipework (https://github.com/jpetazzo/pipework) sur la machine hôte et de lancer une commande qui va ajouter une interface réseau sur le container docker afin qu'il fasse parti du même réseau que le gateway et donc puisse recevoir les trames multicast nécessaire à la découverte automatique.
Cela a très bien fonctionné sur mon installation.
Les étapes:
- Installation de pipework dans un répertoire
sudo bash -c "curl https://raw.githubusercontent.com/jpeta ... r/pipework > pipework
- S'assurer que le container docker tourne
- Lancer la commande suivante :
sudo ./pipework <interfaceHoteSrc> "<nomducontainer>" <IPcontainer>/<masque>@<gatewayRéseau>
ex: sudo ./pipework ovs_eth0 "jeedom" 192.168.1.8/24@192.168.1.1
Note: ovs_eth0 est le nom de mon interface qui accède au même réseau que le gateway sur mon Synology (192.168.1.X).
Si la commande ne renvoie rien, cela a fonctionné. On peut vérifier que l'interface existe bien sur la page web jeedom dans Configuration > Configuration réseau.
- Il manque encore l'étape ou cette commande se lance au démarrage du docker jeedom mais à ce stade je ne suis pas certain d'en avoir besoin une fois la découverte effectuer. Je pense mettre cela dans une tâche planifiée dans Synology et le lancer au besoin. Il semble que oui donc en théorie la commande ne pourrait être lancée que lorsque l'on souhaite ajouter de nouveaux capteurs.
Cordialement
Pour ceux qui utilisent docker vous pouvez faire fonctionner le gateway en forcçant la réception des trames multicast sur le container (j'utilise Docker sous Synology). Apparemment Docker n'est officiellement pas supporté mais après le procédure ci dessous tout à l'air de fonctionner.
Il suffit d'installer pipework (https://github.com/jpetazzo/pipework) sur la machine hôte et de lancer une commande qui va ajouter une interface réseau sur le container docker afin qu'il fasse parti du même réseau que le gateway et donc puisse recevoir les trames multicast nécessaire à la découverte automatique.
Cela a très bien fonctionné sur mon installation.
Les étapes:
- Installation de pipework dans un répertoire
sudo bash -c "curl https://raw.githubusercontent.com/jpeta ... r/pipework > pipework
- S'assurer que le container docker tourne
- Lancer la commande suivante :
sudo ./pipework <interfaceHoteSrc> "<nomducontainer>" <IPcontainer>/<masque>@<gatewayRéseau>
ex: sudo ./pipework ovs_eth0 "jeedom" 192.168.1.8/24@192.168.1.1
Note: ovs_eth0 est le nom de mon interface qui accède au même réseau que le gateway sur mon Synology (192.168.1.X).
Si la commande ne renvoie rien, cela a fonctionné. On peut vérifier que l'interface existe bien sur la page web jeedom dans Configuration > Configuration réseau.
- Il manque encore l'étape ou cette commande se lance au démarrage du docker jeedom mais à ce stade je ne suis pas certain d'en avoir besoin une fois la découverte effectuer. Je pense mettre cela dans une tâche planifiée dans Synology et le lancer au besoin. Il semble que oui donc en théorie la commande ne pourrait être lancée que lorsque l'on souhaite ajouter de nouveaux capteurs.
Cordialement
Re: Installation du plugin sur docker (Synology)
Alors, on va encore corriger :
Utilisation
Attention, sur Docker Synology le plugin n'est pas supporté.
En cas de virtualisation/docker il faut être en mesure de pouvoir recevoir les trames broadcast du réseau.
Voilà ce qu'il y a sur le market.
Donc c'est Docker globalement ? Non Docker sur Syno d'abord à cause des limitations propre à cette plateforme.
Pour un usage autres, voir la deuxième ligne. Il faut recevoir les trames broadcast
Ah bon ? Dommage, parceque la gateway ne parle qu'en broadcast, la découverte n'est qu'un passage. Mais toute la réception d'infos (capteurs) passe par là. Ah et le token gateway aussi (pour pouvoir passer des actions sur la gateway ou des prises par exemple)guirem a écrit : ↑02 sept. 2017, 22:19- Il manque encore l'étape ou cette commande se lance au démarrage du docker jeedom mais à ce stade je ne suis pas certain d'en avoir besoin une fois la découverte effectuer. Je pense mettre cela dans une tâche planifiée dans Synology et le lancer au besoin. Il semble que oui donc en théorie la commande ne pourrait être lancée que lorsque l'on souhaite ajouter de nouveaux capteurs.
Donc sans le broadcast, ben la gateway tu la ranges.
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Installation du plugin sur docker (Synology)
peace and love !
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: Installation du plugin sur docker (Synology)
Mouai merci pour le retour. La prochaine fois je garde ça pour moi.
Re: Installation du plugin sur docker (Synology)
Non c'est cool d'avoir partagé ça.
Lunarok veut pas se faire chier à faire du support pour toutes les configurations DIY ou qui sortent un peu des clous mais ça veux pas dire que ton post est inutile, bien au contraire !
Merci à toi en tout cas !
Lunarok veut pas se faire chier à faire du support pour toutes les configurations DIY ou qui sortent un peu des clous mais ça veux pas dire que ton post est inutile, bien au contraire !
Merci à toi en tout cas !
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: Installation du plugin sur docker (Synology)
Voilà, c'est pour corriger mais surtout dire qu'il suffit pas de copier coller et ca marchera sans soucis donc aucun soucis avec Docker sur Syno. Vous faites ce que vous voulez, mais pour moi c'est pas du out of the box, donc pas supporté.
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Installation du plugin sur docker (Synology)
Un simple "la gateway ne fonctionne qu'en multicast" aurait suffit.
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: Installation du plugin sur docker (Synology)
Ca c'est indiqué aussi (c'est pas spécifique a docker syno, CZ touche aussi de la virtualisation dans certaines conf, surement par exemple les VM syno a venir)
Mais avec ESX ou container proxmox (donc lxc, donc docker legacy) pas de soucis de base.
Envoyé de mon ONEPLUS A3010 en utilisant Tapatalk
Mais avec ESX ou container proxmox (donc lxc, donc docker legacy) pas de soucis de base.
Envoyé de mon ONEPLUS A3010 en utilisant Tapatalk
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Installation du plugin sur docker (Synology)
Je comprends que toutes les configurations exotiques ne peuvent être officiellement supportées.
Dans mon cas je suis passé un peu vite sur ce qui était écrit sur le market et j'ai acheté tout un kit Xiaomi. Donc au lieu de tout renvoyer en Chine je tente de le faire fonctionner sur mon installation actuelle. J'ai cru voir dans d'autres discussions que des personnes étaient aussi dans ce cas.
@lunarok, tu peux peut être changer le titre de la discussion en mettant quelque chose du genre "[Non supporté] devant"?
Dans mon cas je suis passé un peu vite sur ce qui était écrit sur le market et j'ai acheté tout un kit Xiaomi. Donc au lieu de tout renvoyer en Chine je tente de le faire fonctionner sur mon installation actuelle. J'ai cru voir dans d'autres discussions que des personnes étaient aussi dans ce cas.
@lunarok, tu peux peut être changer le titre de la discussion en mettant quelque chose du genre "[Non supporté] devant"?
Re: [Non supporté] Installation du plugin sur docker (Synology)
Contenu supprimé à la demande de son auteur
Re: [Non supporté] Installation du plugin sur docker (Synology)
Salut,
C'est globalement la meme installation que moi :
Syno / Docker et Jeedom qui tourne dessus.
Je bloque actuellement sur la découverte de la Gateway par Jeedom (tout fonctionne impeccablement via Xiaomi Home).
Dans ma conf réseau de jeedom, j'ai bien repris l'ip donnée par ifconfig mais évidement ca ne suffit pas (172.17....)
Je tente ton tuto ce soir et je te dis ce qu'il en est
Merci pour les infos
C'est globalement la meme installation que moi :
Syno / Docker et Jeedom qui tourne dessus.
Je bloque actuellement sur la découverte de la Gateway par Jeedom (tout fonctionne impeccablement via Xiaomi Home).
Dans ma conf réseau de jeedom, j'ai bien repris l'ip donnée par ifconfig mais évidement ca ne suffit pas (172.17....)
Je tente ton tuto ce soir et je te dis ce qu'il en est
Merci pour les infos
Re: [Non supporté] Installation du plugin sur docker (Synology)
n'empeche que une version docker propre ce serait pas mal pour faire du paramétrage et eviter de tout foutre en l'air un serveur avec tous les paquets qui s'installent avec PIP, sans parler de PIP lui même qui assez souvent mets un vaste foutoir.
Apres on peut imaginer aussi plusieurs instances de jeedom qui tournent en parallèle avec des droits/acces différents pour cloisonner le pilotage de toute la domotique.
Bon ça peut se resoudre en machines virtuelles mais docker c'est quand même bien pratique pour faire tourner des serveurs minimalistes !
Apres on peut imaginer aussi plusieurs instances de jeedom qui tournent en parallèle avec des droits/acces différents pour cloisonner le pilotage de toute la domotique.
Bon ça peut se resoudre en machines virtuelles mais docker c'est quand même bien pratique pour faire tourner des serveurs minimalistes !
Re: [Non supporté] Installation du plugin sur docker (Synology)
je pensais sérieusement à refaire tout le docker jeedom officiel. peut-être un jour si j'ai le temps...
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: [Non supporté] Installation du plugin sur docker (Synology)
Si cette manip résoud le pb assez facilement, pk pas, autrement ca reste quand meme pas mal de bidoullle pour une solution orientée un peu sécu quand meme
Re: [Non supporté] Installation du plugin sur docker (Synology)
Contenu supprimé à la demande de son auteur
Re: [Non supporté] Installation du plugin sur docker (Synology)
en quoi c'est différent ?
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: [Non supporté] Installation du plugin sur docker (Synology)
Bonsoir,
Pour compléter mon premier message et surtout la dernière étape qui consiste à s'assurer qu'au redémarrage du synology et/ou docker, la nouvelle interface/IP se configure correctement j'utilise ce script.
-------------
#!/bin/sh
# setting section
DOCKERNAME=jeedom # jeedom docker name
IP=192.168.1.8 # docker new ip
GATEWAY=192.168.1.1 # internet gateway
ETHERNETNAME=ovs_eth0 # synology main interface name
PIPEWORKPATH=/volume1/<pathToPipeworkScript>
# -------------------
DOCKERRET=`docker inspect -f {{.State.Running}} $DOCKERNAME`
# will run script only if ip is not available AND docker is running
if [[ "$DOCKERRET" == "true" ]] # docker is running
then
PINGRET=`ping -c 1 $IP &> /dev/null ; echo $?;`
if [[ $PINGRET -ne 0 ]] # ip not available
then
echo "Assigning IP $IP to docker $DOCKERNAME"
/bin/sh $PIPEWORKPATH $ETHERNETNAME "$DOCKERNAME" $IP/24@$GATEWAY &> /dev/null
fi
fi
-----------
Je ai placé ce script dans un répertoire sur le volume 1 du nas (dans le même que le script pipework) et configuré une tâche planifiée via le dsm synology pour tourner toutes les 10 minutes en root. En gros ça va créer la nouvelle interface uniquement si le docker tourne ET l'IP ne ping pas (donc n'est pas créée). Donc au pire 10 minutes sans accès aux composants Xiaomi ce qui n'est pas catastrophique.
D'une manière plus générale, avec le docker jeedom synology j'ai toujours eu des résultats aléatoires en cas de redémarrage car y'a des services qui démarrent mal :
- apache qui ne démarre pas 2 fois sur 3 (pb docker)
- clé usb zwave qui ne se lance pas bien (interface non reconnue)
- clé usb teleinfo dans de plus rare cas (interface non reconnue)
- d'autres trucs qui ne tourne pas/plus (plugin conso par exemple)
En gros en cas de redémarrage il faut être pas trop loin pour bricoler un peu. La plupart du temps le redémarrer plusieurs fois règle le problème mais comme je l'ai dit c'est aléatoire.
En revanche très peu de soucis avec le plugin Xiaomi!
Bonne soirée
Pour compléter mon premier message et surtout la dernière étape qui consiste à s'assurer qu'au redémarrage du synology et/ou docker, la nouvelle interface/IP se configure correctement j'utilise ce script.
-------------
#!/bin/sh
# setting section
DOCKERNAME=jeedom # jeedom docker name
IP=192.168.1.8 # docker new ip
GATEWAY=192.168.1.1 # internet gateway
ETHERNETNAME=ovs_eth0 # synology main interface name
PIPEWORKPATH=/volume1/<pathToPipeworkScript>
# -------------------
DOCKERRET=`docker inspect -f {{.State.Running}} $DOCKERNAME`
# will run script only if ip is not available AND docker is running
if [[ "$DOCKERRET" == "true" ]] # docker is running
then
PINGRET=`ping -c 1 $IP &> /dev/null ; echo $?;`
if [[ $PINGRET -ne 0 ]] # ip not available
then
echo "Assigning IP $IP to docker $DOCKERNAME"
/bin/sh $PIPEWORKPATH $ETHERNETNAME "$DOCKERNAME" $IP/24@$GATEWAY &> /dev/null
fi
fi
-----------
Je ai placé ce script dans un répertoire sur le volume 1 du nas (dans le même que le script pipework) et configuré une tâche planifiée via le dsm synology pour tourner toutes les 10 minutes en root. En gros ça va créer la nouvelle interface uniquement si le docker tourne ET l'IP ne ping pas (donc n'est pas créée). Donc au pire 10 minutes sans accès aux composants Xiaomi ce qui n'est pas catastrophique.
D'une manière plus générale, avec le docker jeedom synology j'ai toujours eu des résultats aléatoires en cas de redémarrage car y'a des services qui démarrent mal :
- apache qui ne démarre pas 2 fois sur 3 (pb docker)
- clé usb zwave qui ne se lance pas bien (interface non reconnue)
- clé usb teleinfo dans de plus rare cas (interface non reconnue)
- d'autres trucs qui ne tourne pas/plus (plugin conso par exemple)
En gros en cas de redémarrage il faut être pas trop loin pour bricoler un peu. La plupart du temps le redémarrer plusieurs fois règle le problème mais comme je l'ai dit c'est aléatoire.
En revanche très peu de soucis avec le plugin Xiaomi!
Bonne soirée
Re: [Non supporté] Installation du plugin sur docker (Synology)
tu peux faire une crontab @reboot aussi, voir https://fr.wikipedia.org/wiki/Cron#Raccourcis
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)
Re: [Non supporté] Installation du plugin sur docker (Synology)
Oui mais ça ne prend pas le cas du docker qui redémarre mais pas le host (synology).
Puis on ne fait pas ce que l'on veut avec les tâches planifiées synology via l'interface web..
Puis on ne fait pas ce que l'on veut avec les tâches planifiées synology via l'interface web..
Re: [Non supporté] Installation du plugin sur docker (Synology)
Salut à tous ,
Alors pour ma part voici les étapes :
Je veux donner l'ip 192.168.1.80 à jeedom
- Connexion en ssh sur mon syno, docker jeedom et mysql qui tournent
- Lancement de la commande : sudo bash -c "curl https://raw.githubusercontent.com/jpeta ... r/pipework > pipework => pas d'erreur
- Lancement de la commande sudo ./pipework eth0 "jeedom" 192.168.1.80/255@192.168.1.254 => pas d'erreur
- Sur l'interface jeedom , dans les parametres réseaux interne : 192.168.1.80 sur le port 80 => Statut OK
- Via le plugin Network , j'ai ajouté la GW avec son ip => rien
L'url pour l'install de pipework semble ok( elle n'est pas complète dans ton post), j'ai choisi le masque 255 je pense être ok, et le port 80 ou 9080 sur la conf réseaux interne ne donne rien non plus ...(ils sont ok simplement via l'interface) J'ai bien entendu les capteurs / gateay qui fonctionnent avec l'appli Xiaomi
J'ai raté quelque chose selon toi ?
Alors pour ma part voici les étapes :
Je veux donner l'ip 192.168.1.80 à jeedom
- Connexion en ssh sur mon syno, docker jeedom et mysql qui tournent
- Lancement de la commande : sudo bash -c "curl https://raw.githubusercontent.com/jpeta ... r/pipework > pipework => pas d'erreur
- Lancement de la commande sudo ./pipework eth0 "jeedom" 192.168.1.80/255@192.168.1.254 => pas d'erreur
- Sur l'interface jeedom , dans les parametres réseaux interne : 192.168.1.80 sur le port 80 => Statut OK
- Via le plugin Network , j'ai ajouté la GW avec son ip => rien
L'url pour l'install de pipework semble ok( elle n'est pas complète dans ton post), j'ai choisi le masque 255 je pense être ok, et le port 80 ou 9080 sur la conf réseaux interne ne donne rien non plus ...(ils sont ok simplement via l'interface) J'ai bien entendu les capteurs / gateay qui fonctionnent avec l'appli Xiaomi
J'ai raté quelque chose selon toi ?
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités