[Domotique] Docker : OpenHab + RfLink + Zigbee + MQTT

Docker : OpenHab + RfLink + Zigbee + MQTT [Domotique] - Domotique et maison connectée - Electronique, domotique, DIY

Marsh Posté le 23-07-2019 à 23:23:29    

Hello à tous,

 

je crée ce fil pour partager mon retour d'experience et mon setup domotique.
J'enfonce probablement beaucoup de portes ouvertes pour ceux qui baignent dans le domaine, mais ça permettra (j'espère) de clarifier certaines choses pour les nouveaux arrivants :)

 

EDIT : c'est à compléter / améliorer dans les jours à venir :jap:

 


** TODOLIST **
- installer cockpit pour le monitoring de la machine (+ accès terminal)
- installer portainer pour le suivi exhaustif des containers docker
- simplifier le tuto d'installation des containers en exploitant Portainer à la place des lignes de commande (à la place des "docker run" )
- installer un soft (CloudCommander? Xplorer ? pydio ?) pour avoir un webaccess au système de fichier :
- simplifier le tuto de configuration en passant par le webaccess à la place des lignes de commande (création & édition de config)
- installer rtail pour le suivi des logs applicatives
- installer rtail avec watchdog pour monitorer automatiquement les nouveaux fichiers de logs créés
- gérer la persistence de configuration OpenHab dans influxDb
- gérer la reprise sur panne
- rajouter toutes ces applis dans le dashboard de OpenHab

 


** CHANGELOG **
23-07-2019 : première version : besoins + concepts + choix
23-07-2019 : software : raspbian + docker + OpenHab
25-07-2019 : software : mosquitto + zigbee2mqtt
25-07-2019 : hardware : arrosage
30-07-2019 : software : ajout des entrées sur le dashboard OpenHab
31-07-2019 : software : cockpit
01-08-2019 : software : portainer
27-10-2019 : hardware : nouveau setup à base de miniPC ACute
31-10-2019 : software : ajout de RTail


Message édité par cartemere le 31-10-2019 à 11:29:10
Reply

Marsh Posté le 23-07-2019 à 23:23:29   

Reply

Marsh Posté le 23-07-2019 à 23:23:46    

>>>>>>>>>>>>>>>>
>>> MON BESOIN
>>>>>>>>>>>>>>>>
J'ai récemment emménagé dans un nouvel appart, et je souhaite domotiser une partie de mon installation.
Dans les objectifs à atteindre, j'ai :
1> Piloter mes volets roulants Somfy (via télécommande)
2> Connaitre le statut d'ouverture/fermeture des fenêtres et porte d'entrée : pour partir de chez moi en n'oubliant pas une fenêtre ouverte
3> Avoir des indications sur la température chez moi (dans les différentes pièces) et en dehors de chez moi
4> Pouvoir piloter l'arrosage de mes plantes sur le balcon
 
 
>>>>>>>>>>>>>>>>
>>> MON APPROCHE
>>>>>>>>>>>>>>>>
Une solution :
- ouverte
- évolutive
- stable/fiable
- facile

Spoiler :

bon on va se l'avouer, sur ce dernier point c'est loupé... j'ai mis le doigt dans l'engrenage de la conception de plugins  [:kdb:5]


 
 
>>>>>>>>>>>>>>>>
>>> LES CONCEPTS
>>>>>>>>>>>>>>>>
Je passe rapidement sur la partie "concept domotique" : tout est abordé en détails sur le topic dédié :
https://forum.hardware.fr/hfr/elect [...] et_5_1.htm
Mais ça donne quelques éléments sur mes choix.
 
Concrêtement, il faut :
1] SERVEUR PHYSIQUE
Il doit être connecté au réseau, et avoir des ports USB pour rajouter des extensions/dongles
Ca peut être:
- un Raspberry, souvent conseillé car adapté à ce genre d'usage, cout réduit, bonne maintenance, communauté de dingue
- un NAS (ex: Synology)
- un équipement réseau (ex: Xiaomi Mi router 3G)
- un équipement dédié (ex: Jeedom)
 
 
2] APPLI DOMOTIQUE
Sur ce serveur physique, il faut installer un système de gestion domotique.
C'est lui qui va gérer les différents équipement, les règles pour piloter cet équipement, et offrir une interface pour le piloter (via une page web ou une appli).
Il y a entre autres :
- Jeedom : https://www.jeedom.com/site/fr/
- Domoticz : http://www.domoticz.com/
- Home Assistant : https://www.home-assistant.io/
- OpenHAB : https://www.openhab.org/
- EEdomus : https://www.eedomus.com/fr/
 
Chaque solution a ses avantages et ses inconvénients, il n'y a aucun système qui sort franchement du lot et on se dit "mais oui mais bien sur, c'est celui là !"
(sinon ça se saurait et tout le monde serait dessus).
Néanmoins, Home Assistant a l'air d'être la solution a plus en vogue en ce moment, avec une communauté qui grandit de jour en jour.
 
 
3] SYSTEME D'EXPLOITATION
Ce logiciel domotique a besoin de tourner sur un système d'exploitation : c'est majoritairement du Linux sur ce genre de matériel (très grande disponibilité, demande peu d'entretien, économe en ressources).
La distribution la plus répandue sur Raspberry est la RaspBian : https://www.raspberrypi.org/downloads/raspbian/
une Debian pour Raspberry.
 
 
4] CONTEXTE D'EXECUTION
Certaines solutions domotiques proposent un "package" : une image qui contient l'OS + le logiciel domotique + tout ce qu'il faut pour faire fonctionner tout ça.
Home Assistant => Hass.io : https://www.home-assistant.io/hassio/
OpenHab => OpenHasbian : https://www.openhab.org/docs/instal [...] abian.html
La maintenance est censée être facilitée, mais UNIQUEMENT si le serveur domotique est dédié à ça (sinon ça devient vite le bordel).
 
 
Il existe une autre approche, basée sur les conteneurs.
Mais quessako ?!?
Globalement, l'application n'est pas installée sur le système, mais tourne de manière "isolée" dans un conteneur.
Le conteneur :
- embarque donc tout ce dont l'appli a besoin pour fonctionner (dépendances, autres applis)
- ne pollue pas le système d'exploitation (pas de fichiers éparpillés, etc.)
- est versionné
- peut être démarré, arrêté, supprimé, téléchargé, partagé, etc.
Ca peut être assez pratique, et même si l'approche est originale (déroutante ?), ça apporte au final un gain de temps dans la gestion du système
Docker est le précurseur et le plus commun aujourd'hui : https://fr.wikipedia.org/wiki/Docker_(logiciel)
 
 
5] BUS DE COMMUNICATION
Ce point n'est pas toujours obligatoire, mais peut le devenir en fonction du setup domotique.
Le bus de communication est un concept : Chaque "interlocuteur" (ça peut être une application domotique, un appareil connecté, un autre serveur domotique, etc.) poste et écoute des messages.
Ces messages sont normalisés dans leur format, donc tous les interlocuteurs "parlent le même langage" : ça permet donc d'échanger facilement des informations sans se prendre la tête avec tous les problèmes habituels (pas le même langage, pas de protocole propriétaire, pas les mêmes points d'entrée/sortie, etc.).
En plus, les bus offrent des contrats de service. Ils peuvent par exemple garantir qu'un message émis par un interlocuteur sera bien reçu par son destinataire (pas de messages perdus)
Mosquitto est souvent plébiscité : il a été conçu pour faire bus de communication IOT (Internet Of Things) : https://blog.groupe-sii.com/le-prot [...] dans-liot/
 
 
6] PASSERELLES
De base, tous les équipements réseau TCP/IP sont compatibles, sans aucun ajout nécessaire.
Concrêtement, une ampoule Wifi pourra être pilotée directement...
 
Mais le Wifi est loin de faire l'unanimité dans le domaine de la domotique, et d'autres protocoles sont plus adaptés en fonction des besoins.
Souci : il faut un moyen de communiquer avec les objects connectés qui utilisent ces autres protocoles de communication.
Le "moyen", c'est un appareil "contrôleur", qui va servir de point d'accès au protocole en question (on appelle ça souvent une "gateway" ou une "passerelle" ).
 
Ces passerelles peuvent prendre différentes formes :

  • périphérique USB [ex: zigate classique, dongle CC2531, Arduino, etc.] => nécessite des drivers et un logiciel pour le piloter
  • borne indépendante qui dispose du Wifi [ex: Xiaomi Gateway passée en "réseau local"] => on communique en Wifi avec la borne, qui se débrouille ensuite pour communiquer sur son protocole
  • borne indépendante connectée (nécessite une connexion internet) [ex: Xiaomi Gateway "de base"] => on communique avec les serveurs distants du concepteur de la solution, qui communique avec la borne, qui se débrouille ensuite pour communiquer sur son protocole (NB : pose souvent des problèmes de confidentialité des données... surtout avec du matos chinois : ça passe par internet)


 
Dans mon cas, j'ai besoin de 2 passerelles :
6.1] PASSERELLE ZIGBEE
Le Zigbee https://fr.wikipedia.org/wiki/ZigBee est un protocole basse consommation d'envoi / réception d'évènements.
Il a comme avantage d'être exploité par les accessoires en alimentation autonome (une pile bouton dure plusieurs années). Inconvénient : les appareils émettent lors d'un changement d'état, mais ne peuvent pas être interrogés sur leur état à un instant T.
 
Il est utilisé par les capteurs Xiaomi, les ampoules connectées Philips Hue et Ikea, etc.
Normalement, il faut la Xiaomi Mi Home, qui fait office de contrôleur (+ le pont Philips Hue pour gérer les ampoules de la marque + le pont Ikea pour gérer les ampoules connectées du suedois).
 

Citation :

 [:buffo:4]  à noter que les objets connectés Zigbee Xiaomi utilisent le protocole Zigbee physique (c'est du Zigbee 2.4Ghz), mais ne respectent pas scrupuleusement le comportement logiciel spécifié par Zigbee (il n'y a aucune obligation : le comportement software est seulement suggéré).
Bilan : une bonne partie des capteurs Xiaomi ne peuvent pas être exploités directement sur une passerelle Zigbee pur. Il faut une couche logicielle spécifique capable de gérer les petits caprices des appareils Xiaomi.


 
L'idéal, c'est d'avoir un moyen d'interagir directement sur le protocole Zigbee, sans multiplier les box propriétaires.
Il y a quelques approches différentes
- Ti CC2531: 10€ pour le dongle (comme une clé USB) + 10€ pour l'outil de flash  
- Zigate : 50€ https://zigate.fr/
 
la première solution a quelques avantages :
+ plus abordable
+ plus versatile (on peut mettre dessus le firmware Zigbee que l'on souhaite)
+ est compatible avec Zigbee2MQTT : https://github.com/Koenkk/zigbee2mqtt... qui est une solution sur mesure pour tous les appareils connectés "capricieux" sur le Zigbee, et qui est facilement pilotable via un bus MQTT
- très "bidouille" : il faut la flasher à la main, avec des outils assez bas niveau
 
Une fois installé, des scripts permettent de piloter la majorité des appareils fonctionnant sur le protocole Zigbee 2.4Ghz
 
 
 
6.2] PASSERETTE SOMFY RTS
L'appartement est équipé de volets roulants Somfy qui sont pilotés par des télécommandes sans fil en 433MHz. Il n'y a pas forcément de retour d'état (tout dépend de la génération de Somfy RTZ), c'est donc parfois de l'uni-directionnel (on balance un signal au récepteur du store, qui applique la commande, sans répondre).
 
Il faut donc une passerelle 433MHz pour communiquer avec les stores.
Mais ATTENTION, ce n'est pas aussi simple...
1> Le Somfy utilise des messages en 433.42Mhz, alors que le "433MHz" commercial est souvent en 433.99MHz. Il en résulte des difficultés à communiquer avec les stores Somfy lorsque l'on a une passerelle qui emet sur le 433MHz "standard".
2> Les messages sont envoyés avec codes tournants (deux impulsions successives sur le même bouton d'une télécommande n'envoie pas exactement le même signal). Il faut être capable de construire ces messages à code tournant.
 
Il faut donc un appareil capable de gérer la transmission à 433Mhz et le système de codes tournants de Somfy.
Il y a très peu d'appareils compatibles. Les plus connus sont :
- RFXCOM RFXtrx433E : 80€ http://www.rfxcom.com/epages/78165 [...] cts/14103R
- RFPlayer : 120€ https://www.planete-domotique.com/t [...] iblue.html
- RFLink fait maison : 30€ http://domo-attitude.fr/montage-et [...] re-rflink/ si construit à la main
- RFLink monté : 45€ https://www.nodo-shop.nl/en/rflink- [...] cable.html en version "propre" monté sur une carte mère (et pas un sac de fils), avec antenne externe (attention, pensez à rajouter la prestation "soudure" )
 
Le RFXCom peut être utilisé avec un plugin pour l'interfacer sur un bus MQTT : https://github.com/destroyedlolo/Marcel
idem pour le RfLink : https://github.com/SensorsIot/RFLink-MQTT-Gateway
 
Le RFlink est de loin le moins cher de tous pour le modèle fait à la main, mais il demande beaucoup de travail.
La version "montée" de nodo-shop a l'air d'être le meilleur compromis possible.


Message édité par cartemere le 18-11-2019 à 11:10:44
Reply

Marsh Posté le 23-07-2019 à 23:24:40    

>>>>>>>>>>>>>>>>
>>> MES CHOIX
>>>>>>>>>>>>>>>>
je précise bien : MES choix, qui n'engagent que moi. A partir de tous ces concepts, j'ai donc choisi pour faire mes premiers pas :
1> un serveur physique Raspberry Pi 3B+
Normalement assez puissant, abordable (30€), robuste, facilement remplaçable en cas de panne, et bien supporté par les couches logicielles.

Citation :

EDIT @08/2019 :
En pratique, il a quelques aspects assez génants :
- c'est une architecture CPU ARM (comme smartphone) et pas x86 (comme PC). Or les images docker sont majoritairement dispo pour x86. Les images existantes ne sont donc pas utilisables, il faut les reconstruire
- il ne dispose que de 1Go de RAM, ce qui devient vite limitant quand on commence à faire tourner pas mal de choses dessus : Serveur domotique en Java, base Timeseries influxDB, Grafana, serveur Web, etc.
- il n'a pas de stockage : c'est délégué au port microSD. Problème : les SD ne sont pas faites pour supporter des écritures régulières, et finissent par mourir (carte inutilisable ou bloquée en lecture seule). Il existe une alternative qui se base sur un adaptateur USB vers S-ATA et un disque SSD, mais ça commence à faire beaucoup de matériel ($$) et de bricolage.
J'ai finalement craqué sur un ACute PC : https://forum.hardware.fr/hfr/Hardw [...] 2119_1.htm
un mini PC chinois, qui se trouve autour de 100€ sur le net, avec tout son package et des specs sympa (alimentation, dissipation, boitier, SSD 120Go + eMMC64Go, CPU intel x86 basse conso, 8Go de RAM)


 
2> une solution domotique OpenHab
J'aime l'approche définie par Eclipse IOT, qui pose les concepts propres et réfléchis de ce que doit être la domotique, et comment elle doit être gérée (OpenHab est basé dessus).
C'est une solution basée sur Java, langage que je manipule fréquemment, donc plus facile de me dépatouiller en cas de problème.
La communauté est importante et active (mais surtout allémante)
Le logiciel évolue, avec des version majeures régulières qui apportent de grosses améliorations
 
3> un système d'exploitation Debian
Une distribution Linux avec un bon suivi et une très grosse communauté.
De loin la solution la plus populaire pour sur Raspberry (sous le nom de Raspbian)
 
4> un système de conteneurisation Docker
Pour isoler mes différents "aspects" et ainsi faciliter la maintenance, limiter la pollution du système, et pouvoir plus facilement gérer la montée de version
 
5.1> une passerelle Zigbee CC2531 + Zigbee2Mqtt
Zigbee2Mqtt est le projet le plus actif à ce jour sur le support des périphériques Zigbee "spéciaux" (i.e. qui ne respectent pas scrupuleusement les specs)... comme les Xiaomi.
Cette solution impose de passer par un bus MQTT. J'ai donc choisi un bus Mosquitto pour faire ça
 
5.2> une passerelle SomfyRTS RfLink
ouvert, abordable, qui m'a l'air performant.
et le protocole de pilotage est très simple à mettre en oeuvre (des simples commandes textuelles communiquées à la passerelle, qui se démerde pour envoyer la bonne trame correspondante), là où le RfxCom fonctionne en binaire.


Message édité par cartemere le 27-10-2019 à 16:11:42
Reply

Marsh Posté le 23-07-2019 à 23:36:54    

>>>>>>>>>>>>>>>>
>>> ACHAT DU RFLINK
>>>>>>>>>>>>>>>>

 

Le RfLink nécessite :
1- une carte Arduino pour faire le lien entre l'USB et l'émission/réception RF
2- un module RfLink

 

on peut acheter le kit directement sur le site de nodo.nl
https://www.nodo-shop.nl/en/rflink- [...] cable.html
ATTENTION : le kit n'est pas soudé !
Pensez à prendre l'option soudure à 5€ si vous voulez recevoir un kit pré-assemblé.

 


>>>>>>>>>>>>>>>>
>>> SETUP DU RFLINK
>>>>>>>>>>>>>>>>

 

inspiré de ces tutos :
1> le programmer : https://easydomoticz.com/rflink-un- [...] ateriel-2/
2> l'associer comme télécommande des stores existants : https://matdomotique.wordpress.com/ [...] -et-somfy/

 

1] FLASH DU ARDUINO
1.1] - récupérer la dernière version du Firmware
disponible ici : http://www.rflink.nl/blog2/

 

1.2] - connecter le Arduino Mega en USB sur le PC
pas besoin d'une alimentation supplémentaire

 

1.3] - Flasher
(cf. https://easydomoticz.com/rflink-un- [...] ateriel-2/ )
Décompresser le firmware.
Lancer le logiciel RFLink Loader
- se placer sur le port série correspondant
- en haut à gauche, choisir "select file" et pointer le fichier présent dans le dossier du firmware
- cliquer sur "upload/program firmware to device"

 


2] ASSOCIATION DES TELECOMMANDES
via le logiciel RFLinkLoader contenu dans le package du Firmware.
(cf. https://matdomotique.wordpress.com/ [...] -et-somfy/)

 

2.1]  - Configurer le RFLink loader pour interagir avec l'arduino
- se placer sur le port série correspondant
- dans la partie "logging", cliquer sur "Serial port logging"

 


2.2] - Lister les commandes enregistrées
dans la zone "command to send", envoyer cette commande :

Citation :

10;RTSSHOW;

 

la table des télécommandes virtuelles s'affiche dans la log :

RTS Record: 0 Address: FFFFFF RC: FFFF
RTS Record: 1 Address: FFFFFF RC: FFFF
RTS Record: 2 Address: FFFFFF RC: FFFF
RTS Record: 3 Address: FFFFFF RC: FFFF
RTS Record: 4 Address: FFFFFF RC: FFFF
RTS Record: 5 Address: FFFFFF RC: FFFF
RTS Record: 6 Address: FFFFFF RC: FFFF
RTS Record: 7 Address: FFFFFF RC: FFFF
RTS Record: 8 Address: FFFFFF RC: FFFF
RTS Record: 9 Address: FFFFFF RC: FFFF
RTS Record: 10 Address: FFFFFF RC: FFFF
RTS Record: 11 Address: FFFFFF RC: FFFF
RTS Record: 12 Address: FFFFFF RC: FFFF
RTS Record: 13 Address: FFFFFF RC: FFFF
RTS Record: 14 Address: FFFFFF RC: FFFF
RTS Record: 15 Address: FFFFFF RC: FFFF

 


2.3] - préparer la commande d'appairage
dans la zone "command to send", préparer le contenu de la commande /!\ mais ne PAS l'envoyer /!\

Citation :

10;RTS;0F0FF2;0200;2;PAIR;


0F0FF2 => identifiant de la télécommande (que l'on choisi)
0200 => indice de départ du rolling code (sur 4 digits !)
2 => zone mémoire dans laquelle mettre le réglage

 

2.4] - passer le store en mode appairage
prendre la télécommande Somfy existante et appuyer quelques secondes (3s au moins) sur le bouton situé à l'arrière.
Le store correspondant doit faire un bref aller/retour

 

2.5] - lancer la commande d'appairage.
Le store doit refaire un aller/retour pour indiquer qu'il a bien reçu le message

 

2.6] - tester le fonctionnement du store
il est ensuite possible de piloter le store via les instructions suivantes :

Citation :

10;RTS;0F0FF2;2;DOWN;
10;RTS;0F0FF2;2;UP;
10;RTS;0F0FF2;2;STOP;

 


Message édité par cartemere le 27-07-2019 à 21:59:45
Reply

Marsh Posté le 23-07-2019 à 23:47:06    

>>>>>>>>>>>>>>>>
>>> ACHAT DU CC2531
>>>>>>>>>>>>>>>>
instructions ici : https://www.zigbee2mqtt.io/getting_ [...] _need.html

 

Concrêtement il faut :
1> une clé USB avec une puce CC2531
2> un debugger pour programmer la clé (installer le firmware)
3> un cable pour faire la connexion entre le débugger et la clé USB

 

Il y en a pour 15€ environ sur Aliexpress (forte inflation depuis 2018 :ouch: )

 

>>>>>>>>>>>>>>>>
>>> SETUO DU CC2531
>>>>>>>>>>>>>>>>
TODO :o


Message édité par cartemere le 27-07-2019 à 21:59:34
Reply

Marsh Posté le 23-07-2019 à 23:58:06    

>>>>>>>>>>>>>>>>
>>> INSTALLATION ARROSAGE
>>>>>>>>>>>>>>>>

 

Le but : piloter l'arrosage des plantes qui sont dans les bacs de mon balcon.
https://lh3.googleusercontent.com/VeW0sJA8-nQrlp2Yb-1fZyJUIb94pgMrVs3GV9e6JFzy2errrYurutSlvr-4UyzfKun93RWhMqw2sn--A89sVTaHinU0fWP4FHJW9RmD7VxNtaGUd7_fufw2oSbvFTd6XKfoZE129uiIQQk0xXHD-o0z93chGINc4IQ4PyA47q4EApUaSJMqTNkrk1IXwpOcJp9dqS_nh-IeNEOs5csU5Fj6s-tY7gABJCXXwlLm_47P0H46_eMToTnHapgSnVTVq6zVzkA2dYpdV2yJJN_agCduTKgBtUYOylBazWdVLQIpdq0zEeVdTvuzdXM_M4-S51SxV_hfyHPajKSenLGageJpMU3sk445y1udpcRfmysyCCR0Y5Ad09WEVwzszYppde4GM5Wl3JPeThykdg20a6UXi9Hlc0138H2JR4hnMocHEX8lbIDf2ci3i8A4Z-9vnY8TyPFLxvDfrdV_bPRu-c2sKWF1Q8K7WXCdLz911X-9va-DYYVpkxAUw5WFIMg61mLqk2zQxf5mqir27yLYlGM6sc5ekBGOEhzrOdnaNXB9w4kAyfSbi1KcvKYbfF0haHbzynmofRgnxA4t4Cs_8b0nKR97NmTO4Nb7D-sklsOjQMW4naGoyhuAP6G9snC90JL6AXJ9vdmFNH3liJ_ygpfldTTKpQkRgg=w672-h504-no

 

je connecte le tout sur un robinet d'eau (format classique 3/4" G français pour l'arrosage / l'alimentation de l'électroménager) sur l'extrémité du tuyau chromé (là où l'on distingue une pastille bleueu, en haut à gauche de la photo)
Et je peux piloter ça via une prise connectée. Chez moi la prise est une Osram Bulb+ (Zigbee), mais on peut utiliser n'importe quel type de prise connectée (le but est de piloter avec une prise ON/OFF)

 

J'ai pris volontairement du matos assez "qualitatif" pour limiter les risques de fuite/panne.
Je voulais une électrovanne normalement fermée (se coupe automatiquement en cas de coupure d'alimentation), et des éléments en acier/laiton en amont (et pas les trucs en plastique mal ébavuré comme les programmateurs d'arrosage à 50€ en magasin de bricolage...  :sarcastic: )

 
Spoiler :


https://media1.tenor.com/images/c821f491ec75d6a2ddff0efc5411ee23/tenor.gif?itemid=8877517

 

DETAIL DU KIT

 

http://reho.st/https://ae01.alicdn.com/kf/HTB14ndWIWSWBuNjSsrbq6y0mVXaI/LF16001B-50CM-G3-4-G3-4-en-acier-Inoxydable-Ondul-Tuyau-D-alimentation-Chauffe-Eau-connecteur.jpg_50x50.jpg 5,61€
Tuyau d'alimentation Inox - 3/4" G femelle-femelle - 50cm de long
https://fr.aliexpress.com/item/LF16 [...] 05900.html

 

http://reho.st/https://ae01.alicdn.com/kf/HTB1eAiNk7ZmBKNjSZPiq6xFNVXaE/Puissance-Adaptateur-DC-12-v-5-v-1A-2A-3A-5-v-12-v-Adaptateur-de.jpg_50x50.jpg 2,60€
 Adaptateur secteur 220V AC vers 12V DC - Prise Française
https://fr.aliexpress.com/item/Powe [...] 98722.html

 

http://reho.st/https://ae01.alicdn.com/kf/HTB1ccnKJVXXXXbDaXXXq6xXFXXXq/Livraison-Gratuite-2017-Nouveau-3-4-AC-220-V-lectrique-lectrovanne-Pneumatique-Valve-pour-L-air.jpg_50x50.jpg 16,30€
Electrovanne professionnelle - Normalement Fermée - 3/4" type G (NTP) - pilotée en 12V DC
https://fr.aliexpress.com/item/Free [...] 56638.html

 

http://reho.st/https://ae01.alicdn.com/kf/UTB85Uc6ewnJXKJkSaelq6xUzXXaR.jpg_50x50.jpg 3,04€
2 adaptateurs mâle-mâle 3/4" G (pour raccorder l'électrovanne au reste du circuit)
https://fr.aliexpress.com/item/wxrw [...] 40240.html

 

http://reho.st/ae01.alicdn.com/kf/HTB1TjXkseuSBuNjSsplq6ze8pXa6/Micro-Irrigation-Goutte-Goutte-Kit-25-m-5-m-15-m-Jardin-Des-Plantes-Arrosage-Syst.jpg_50x50.jpg 6,75€
Système de micro-irrigation goute à goute 15m de tuyau + 20 diffuseurs
https://fr.aliexpress.com/item/Micr [...] 06225.html

 

moins de 35€ pour le tout.
ça fonctionne parfaitement :)


Message édité par cartemere le 27-07-2019 à 21:59:25
Reply

Marsh Posté le 24-07-2019 à 00:08:44    

>>>>>>>>>>>>>>>>
>>> SETUP RASPBIAN SUR RPI
>>>>>>>>>>>>>>>>

 

https://www.framboise314.fr/wp-content/uploads/2014/03/logo_raspbian-france_250px.png

 

j'utile mon Raspberry uniquement en serveur.
il n'est jamais (et n'ai jamais été) connecté en HDMI à un écran, ou à un clavier + souris.
je donne donc de quoi l'installer et l'administrer à distance dans les meilleures conditions possibles.

 



========
FIRMWARE
========

 

1- préparer l'image raspbian
sur une carte microSD, installer l'image de Raspbian (on trouve plein de tutos sur le net)
ATTENTION : préférer une version stretcher plutôt que buster (mieux supportée) :
https://downloads.raspberrypi.org/r [...] 019-04-09/

 

2- activer le SSH
créer un fichier 'ssh' dans la partition boot de la carte SD (la seule partition visible depuis Windows).
ça permettra au raspberry d'activer sa connexion ssh

 

3- démarrer le raspberry
mettre la SD dans le raspberry et le démarrer... patienter 2min, la led verte doit clignotter

 

4- se connecter en SSH sur le raspberry (password = raspberry)
depuis MacOSX via le terminal, depuis Windows via Powershell

Code :
  1. ssh pi@raspberry.local


ou

Code :
  1. ssh pi@raspberrypi
 

5- changer le Password

Code :
  1. sudo passwd pi
 

6- mettre à jour le système

Code :
  1. sudo apt update --allow-releaseinfo-change
  2. sudo apt-get update
  3. sudo apt-get upgrade
 

7- redémarrer le raspberry (conseillé après une première installation)

Code :
  1. sudo shutdown -r now
 



============
REMOTE ACCESS
============

pour pouvoir se connecter à distance sur le desktop du raspberry (comme si on avait un écran directement connecté dessus)

 

1- installer le serveur RDP

Code :
  1. sudo apt-get install xrdp
  2. sudo apt-get install tightvncserver
 

2- configurer l'accès

Code :
  1. ./tightvncserver
 

3- déclarer un "écran" virtuel sur le serveur

Code :
  1. vncserver :1
 

4- se connecter sur le raspberry depuis un accès Windows "remote connection"

Code :
  1. mstsc


ou depuis MacOSX via la combinaison 'command' + K dans un finder
adresse de l'hôte + ':' + id de l'écran (ex: raspberry.local:1 )

 

5- mettre le serveur VNC en startup
dans /home/pi/autostart/
créer un fichier tightvnc.desktop

Code :
  1. #!/bin/sh
  2. [Desktop Entry]
  3. Type=Application
  4. Name=tightVNC
  5. Exec=vncserver :1
  6. StartupNotify=false
  



Message édité par cartemere le 28-10-2019 à 21:58:01
Reply

Marsh Posté le 24-07-2019 à 00:19:37    

>>>>>>>>>>>>>>>>
>>> SETUP DEBIAN SUR ACUTE PC
>>>>>>>>>>>>>>>>
suivre le tuto présent sur le topic dédié.
 
lors de l'installation, on peut cocher la case "ssh" pour activer la connexion SSH.
(à ne faire que si vous souhaitez activer le SSH de base sur la machine, sans passer par une extension tierce (je pense notamment au plugin SSH sur hass.io)
 
En tips :  
1> pour désactiver la mise en veille, une fois connecté en ssh sur le acute :

Code :
  1. systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target


 
2> pour forcer l'heure système et la persister d'un redémarrage à un autre (attention, l'heure est RESET à chaque fois que l'alimentation est coupée)  

Code :
  1. root@acute:~# date --set 2020-03-31
  2. mardi 31 mars 2020, 00:00:00 (UTC+0200)
  3. root@acute:~# date --set 21:23:00
  4. mardi 31 mars 2020, 21:23:00 (UTC+0200)
  5. root@acute:~# hwclock --systohc --utc


 
>>>>>>>>>>>>>>>>
>>> SETUP HOME ASSISTANT
>>>>>>>>>>>>>>>>
en premier lieu, vérifier que la command apt fonctionne correctement :

Code :
  1. apt update
  2. apt upgrade


 
suivre les instructions sur la page de hass.io :
https://www.home-assistant.io/hassi [...] reparation


Message édité par cartemere le 31-03-2020 à 22:05:32
Reply

Marsh Posté le 24-07-2019 à 00:29:44    


===========
MONITORING / WEB TERMINAL
===========

l'appli Cockpit est idéale pour pouvoir monitorer le fonctionnement du Rpi sans devoir se connecter dessus en ssh.
instructions issues du tuto disponible ici : https://eercan.com/post/monitoring- [...] g-cockpit/
 
C'est une des rares applis que j'installe en dehors de docker, pour la simple et bonne raison que cette appli de monitoring a besoin d'avoir un accès complet à la machine pour pouvoir la monitorer... alors que le principe des container est justement d'isoler au maximum l'execution de l'appli de la machine hôte.
 
1- installer le package
il faut rajouter un nouveau repo, les clés associées (et donc de quoi rattacher les clés)

Code :
  1. sudo su
  2. echo 'deb http://deb.debian.org/debian stretch-backports main' > \
  3. /etc/apt/sources.list.d/backports.list
  4. apt-get install dirmngr --install-recommends
  5. apt-key adv --keyserver keyserver.ubuntu.com --recv 7638D0442B90D010
  6. apt-key adv --keyserver keyserver.ubuntu.com --recv 8B48AD6246925553
  7. exit


 
et on peut enfin installer l'appli

Code :
  1. sudo apt-get update
  2. sudo apt-get install cockpit


 
2- accéder à l'interface de monitoring
https://raspberrypi:9090/
 
au besoin, passez outre l'alerte de sécurité (le serveur est en https, mais sans certificat authentifié)
https://lh3.googleusercontent.com/CCM4t4LyjAtOv8netAhbuIflAm8RqPc-OQdcV45E7Fn2IssQEEyr1LjjN7YXUCouSHxOlSsyUTpW29y0c8Sr0I1LH9nrgPKzuoZ_mxKKCwcJulC10qm5k_ZIwOxEgy6_YOweoEVL40XINKlJkiJg3lbn2V6mEJLTMA3hqhG1xcpXJsQevtwwdhlh4tgqzigohyhyFAjxq2CZHd8ZbLvoLZSyfdN-1kFXWJOJiwuQE5MkeDEUBo_77KoK-bLbwTZejCGev-KLPYhkP9PaEOYBTUi4w66jpubQ4U2yNJ_5K6r0lMmqc8c9149DF9dJjsY69-nnJopE0MXiDYu-MkptWaPDxhQAE4tM2eppsenKPNDMVFCaF7biUfeu7bRbIZolrV4ucWhzcibDkATS7ZXbP95g4oiXOzU_F7J_SUBsNKJhwaQnWiNdEMO6L-QQvoOfJTdhLFIexIvWDxIz7fXmqPoTigkEuqY7MzbAKVEnQrY3c_oHirAUDun16XyRk8_6zcN24MvJ7djwAgl2vZuHWksBLpAacPeaJ5LicRB-l0iFpn22vwdH20NWs3rBfg_b71MmZXNzI8irRlxMR-oNBTYXQkr6Qpho3Dpw2ese6YWvlNhhPEa-qZ-HZneapd2MJAnvBcc5rkBn_PkMPJnmwGa0HgfoYYNErBse2bPcU1mvmgH6jjCyauddBHR_4BOIjACaJr--icpR8oGf0_qpcYJ_Hw=w665-h619-no
 
se logger avec les identifiants du pi (comme en ssh)
loggin : pi
pwd : mot de passe du pi
cocher la case qui propose d'utiliser le même mot de passe pour les élèvations de droits :
https://lh3.googleusercontent.com/YXREu6DwaZqlgv9sAc53-bIjnmQ9NgbMpc8kAKVdqtnYdiidoyVF4OD5w1OPINyC-k2yBY1VrkQOWcOCmuYDRW8reaRrdOysrHQcZnahDOge9rjWInQv4VtmqytPLEFerqOdFQw-pPNcUvUUNPPwRq9Nu8NnPdlGAboTsfteWFPQdT8p4P5CCTGeGD2tb8yl5Nibby9a_Km7yeCa0eG6d_zGNWp6GXzUUvzMJ-r7hSlMrygG3IGSDEJRzRoWyAuxnvhVpdMKTRS_y6tdNeWR1Wbq4lTc8g_n_lyFro7J6LiVZCGqX9VzV2UgPpjLY5kZq84BvbFHHDvsydwtJhGN5QUNMlklgLarnWkSB-M6Kj2eneycazYRdJAqIGH9HRJUcgl1FcuE9TBS7MT6jYTSVo_6o8-3e4Tze_HcznyDxA5krbahUhT8Foot0LLOjdCmSxrZOt_SqdKYY_kBy1xAEhZssu04__N5W9aMA6sIcBslvUHH4MyuRMOQoPP8QPS9DwF9qiE3DQYaiHgLEa4OwFrSQ8XS6RInf8icrogj0yjUr4WkegMiDmMj206vivSqoH2w3EV74iFUsuheZsiWVs7U6Ix-QMtw0rLcU4Ix2xIp9G3GqOUn3ZGMPO1UtxA3-jJ57EoPmHQfjTnj_xH5f29YNTI5DoRAdgX84jBz6jyjLY2xZbyHSbmwQBil0OLunUaoEhi_CzTONQ8yYWEg_DAGOw=w546-h266-no
 
 
 
L'interface donne accès à toutes les statistiques du serveur et aux users, et offre un web terminal :
https://lh3.googleusercontent.com/SpIY-Bt_M7aZAhv6Qfqh-UwvCq2pM07ZNQNlXvZ-ZP0vPo2M3VMsj91DJaKqbnJk_HWKLOiuX1oAQm8NSqo-m0kYMYi5pGoX4vFaGVA-rRSSfvI4aS42hTYNG8Qz_q1l-loV9CfeAv7JLr4nfIF8_2y5AhJJD_baS4PL4QbgB7snhWKz437H-wpPxHh6aU49nDSXMhTWIhty39kDTaGVuiix27D01n_AeePr8FPErhzguk03SxhIn-ZbBCQJ2HffheObIbxfrnCKYa5wsbCan68KJOzeffvgZ5MDirqsr7c1mn3HMWcDviYv0NcYi0rX22zeFM63hJCZcGWSvPMqFIp33VttK1Y1ZNoiINczeHnXVSjdqr6oF6ejzmubWrCEh0HAseRUQkSZJp9LI_MGX7J2cCLuHPyJ-jVrkprTu9HukyhpX4eSyCBYWLvWVRcDuvEUo0Dis3tj124v1oR1et3J6jcT2HijZFaciyA4FZ7hHjXMvDKGww3rpo8jpnlOemuyf1NwhYVd13_kVoB94c0Wv3-VaEgwkTo2Tce-xOGhBd4PoEC59vGsl5QWnH3L1rgRxUcwx-FIx6Xhuhh_-e4rMxZA4d-eb2rbeKXY6dFlYzAAizOQQVHiww5N2Qj2ZFz0oxxW6wHYt7upb6hFy4_j5z4G315rc5Tf-lQgrr_1leXq5kZ53NUD757k0oLIThY8GKmhEYtvTolQJ1ODvSQNVQ=w800-h573-no
 
 
3- installer l'extension docker pour cockpit
pour pouvoir piloter les containers docker depuis cockpit  

Code :
  1. sudo apt-get install cockpit-docker


 
se delogger et relogger.
il y a maintenant une nouvelle entrée "container" qui expose les conteneurs docker et permet de les manipuler
(lancer un container, une image, etc.)
... enfin, une fois que vous avez docker installé  :whistle:  
 
https://lh3.googleusercontent.com/4zi3kQwEFskSuaj83Z_4FSSFj1DlyVRo0GgRjHPc4-KPU5rbrVIB2DMZnB1HQ4DAP9e7eahjqogqgcMKna_tDbFM7RS1t5NOXVB9vk7KnZiiTFw7t4a7oCxjMVfrulOkpIkzSYOPupJzV0_6vvrT0o0TwMgWJqbo4aQw7sCPOwa-LML3xmZoOqlKx8ZJzXwQrhS0nDbE2I5SB6Yy5Hfo7_pYPEjoVOJ7SWlMfWIarxvjdJhteuU5M3n6kV5D_GWJeqSgjLTgMq5CBLPMIOw9g9kfy44Kyd9ZoDAeTSm_i0GNMSLSbJDlHnIuu8Z22B8UgVIyU10Lt9SSjJiGX3X0bb1uiNIOsTQerG4WRWtvFVBvT2Lbn0DYxqHHAiBA6IpTc5O-Klb969YAX68jYpmXKhhHmG8q8IicYw_-QbrZYUd75NxUi_hVeQeO5MCaeMC7Xylq-53YXYuWvLqnfN3Dyv2g3Zb_5FZ5VjRyTQxgjQgt0cUTl6vAJ-3MU0d4_fqkLW7wALE7E85KCjR7iz2zV4h61VMC2ZEG2QcQVSvYFRvTamE3vsP6YNnN2CQxeLW-1UWpVFpoSMYTFNLWp9Kf7pYrBgSths6kZj9u2e5bq_VvkWoVD8uygb-Bij_F0alLXXwDqHrtpFsObq8kCUaoh_AeS1ZrteDOgsHaEBA5Zqc1j8P5-GpyVONtzSydjdYHWi7nxz9Mob0cM0b9li5WoB8eVw=w800-h451-no
 
 
 
 

=======================
GERER LES PERIPHERIQUES USB
=======================

de base, les dongle connectés en USB apparaissent sous la forme de "device" /dev/ttyACM*, ou le * est un chiffre qui correspond à l'indice de l'appareil.
problème :
- cet indice est alloué dynamiquement à la connection du dongle, et n'est pas garanti. on a donc des appareils dont l'identifiant change au gré des redémarrages et des déconnexions .
 
Heureusement, Linux crée automatiquement un alias basé sur les caractéristiques du périphérique (fabriquant, modèle, numéro de série)
pour retrouver cet alias dynamique :

Code :
  1. cd /dev/serial/by-id
  2. ls -l


et on a la liste des périphériques série (comme un dongle CC2531 ou un RFlink) qui apparaissent :
 

$ cd /dev/serial/by-id
ls -l
total 0
lrwxrwxrwx 1 root root 13 avril  2 17:59 [b]usb-Arduino__www.arduino.cc__0042_55732323630351114181-if00[/b] -> ../../ttyACM1
lrwxrwxrwx 1 root root 13 mars  31 21:45 [b]usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014BDEA78-if00[/b] -> ../../ttyACM0


 
il suffit de renseigner les chemins complets (donc précédé du /dev/serial/by-id/ ) où c'est nécessaire :jap:
 
 
 
ANCIENNE METHODE OBSOLETE ET INUTILEMENT COMPLEXE
0> créer un groupe qui possèdera les droits d'accès aux devices personnalisés

Code :
  1. sudo groupadd -g device
  2. sudo usermod -a -G device $USER


 
1> lister les devices connectés

Code :
  1. sudo ls /dev/ | grep ttyACM


liste les connecteurs "ttyACM" du Raspberry... mais difficile de s'y retrouver.
 
2> identifier les devices connectés
petite commande sympa pour retrouver quel périphérique USB est connecté sur quel port logique :

Code :
  1. dmesg | grep 1-1.1.


Citation :

[    1.832789] hub 1-1.1:1.0: USB hub found
[    1.832883] hub 1-1.1:1.0: 3 ports detected
[    2.161899] usb 1-1.1.2: new full-speed USB device number 4 using dwc_otg
[    2.310863] usb 1-1.1.2: New USB device found, idVendor=0451, idProduct=16a8, bcdDevice= 0.09
[    2.310878] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.310888] usb 1-1.1.2: Product: TI CC2531 USB CDC
[    2.310897] usb 1-1.1.2: Manufacturer: Texas Instruments
[    2.310906] usb 1-1.1.2: SerialNumber: __0X00124B0014BDEA78
[    2.411862] usb 1-1.1.3: new full-speed USB device number 5 using dwc_otg
[    2.565859] usb 1-1.1.3: New USB device found, idVendor=2341, idProduct=0042, bcdDevice= 0.01
[    2.565874] usb 1-1.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[    2.565884] usb 1-1.1.3: Manufacturer: Arduino (www.arduino.cc)
[    2.565894] usb 1-1.1.3: SerialNumber: 55732323630351114181
[    2.861870] usb 1-1.1.1: new high-speed USB device number 6 using dwc_otg
[    2.992331] usb 1-1.1.1: New USB device found, idVendor=0424, idProduct=7800, bcdDevice= 3.00
[    2.992347] usb 1-1.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.256601] lan78xx 1-1.1.1:1.0 (unnamed net_device) (uninitialized): No External EEPROM. Setting MAC Speed
[    3.322110] lan78xx 1-1.1.1:1.0 (unnamed net_device) (uninitialized): int urb period 64
[    5.149786] cdc_acm 1-1.1.2:1.0: ttyACM0: USB ACM device
[    5.156111] cdc_acm 1-1.1.3:1.0: ttyACM1: USB ACM device


 
bilan :  
ttyACM0 = CC2531
ttyACM1 = RfLink
 
3> définir des alias pour avoir une affectation systématique sous le même nom
en reprenant le résultat de la commande précédent, on a accès aux informations techniques de chaque périphérique USB :

Citation :

...
[    2.310863] usb 1-1.1.2: New USB device found, idVendor=0451, idProduct=16a8, bcdDevice= 0.09
...
[    2.310888] usb 1-1.1.2: Product: TI CC2531 USB CDC
 
...
 
[    2.565859] usb 1-1.1.3: New USB device found, idVendor=2341, idProduct=0042, bcdDevice= 0.01
...
[    2.565884] usb 1-1.1.3: Manufacturer: Arduino (www.arduino.cc)


 
A partir de là, on peut définir une rule qui va automatiquement créer un alias pour le périphérique, en se basant sur ses caractéristiques (identifiant vendeur, identifiant produit, etc.)
la syntaxe a cette forme, à mettre dans un fichier dans /lib/udev/rules.d :

Citation :

SUBSYSTEM=="tty", ATTRS{idProduct}=="idProduit", ATTRS{idVendor}=="idVendeur", SYMLINK+="nouveauNom"


 
 
en pratique, dans mon cas, dans un terminal sur le rpi :  

Code :
  1. cd /lib/udev/rules.d
  2. sudo su
  3. echo SUBSYSTEM=="tty", ATTRS{idVendor}=='"0451'", ATTRS{idProduct}=='"16a8'", SYMLINK+='"ttyUSB_cc2531'", GROUP="device", MODE="0664" >> 99-usb-custom.rules
  4. echo SUBSYSTEM=="tty", ATTRS{idVendor}=='"2341'", ATTRS{idProduct}=='"0042'", SYMLINK+='"ttyUSB_rflink'", GROUP="device", MODE="0664" >> 99-usb-custom.rules
  5. udevadm trigger
  6. exit


 
j'ai donc maintenant un périphérique /dev/ttyUSB_cc2531 à chaque fois que je connecte ma clé Zigbee, et/ou que je redémarre mon Rpi, et un périphérique /dev/ttyUSB_rflink pour mon RfLink
ces périphériques sont accessibles par tous les users du groupe "device"
 :sol:

Message cité 1 fois
Message édité par cartemere le 02-04-2020 à 21:58:43
Reply

Marsh Posté le 24-07-2019 à 00:44:29    

>>>>>>>>>>>>>>>>
>>> SETUP DOCKER
>>>>>>>>>>>>>>>>
https://utux.fr/data/medias/0124/horizontal_large.png

 

1- aller dans le dossier Downloads

Code :
  1. cd /Downloads/
 

2- récupérer et lancer le script d'install auto

Code :
  1. curl -fsSL get.docker.com -o get-docker.sh
  2. sh get-docker.sh
 

3- modifier les droits de docker pour autoriser les lancements sans élèvation de droits

Code :
  1. sudo groupadd docker
  2. sudo gpasswd -a $USER docker
  3. newgrp docker
 

4- redémarrer le raspberry

Code :
  1. sudo shutdown -r now
 

5- tester le fonctionnement de docker

Code :
  1. docker run hello-world
 


https://i1.wp.com/hometechhacker.com/wp-content/uploads/2018/12/logo_alt.png?resize=512%2C167&ssl=1
Portainer permet de gérer l'instance docker, et tout ce que l'on peut faire avec : administrer les containers, les images, etc.
instructions ici : https://portainer.readthedocs.io/en [...] yment.html

 

6- créer les dossiers de persistence de portainer

Code :
  1. cd /opt/
  2. mkdir portainer
  3. mkdir portainer/data
 

7- lancer le premier container : portainer

Code :
  1. docker run   \
  2.       --name portainer  \
  3.       -p 9000:9000   \
  4.       --restart always \
  5.       -v /var/run/docker.sock:/var/run/docker.sock \
  6.       -v /opt/portainer/data:/data \
  7.       -d \
  8.       portainer/portainer
 


8- accéder à l'interface web de portainer
http://raspberrypi:9000/
créer le user "admin"

 

https://lh3.googleusercontent.com/cXKKY9WOD_jYSLOKCRYgB89sUxPZ8leZOiAf-B1b7xjt26aqBklqABCK-RY-VwuW-XtObtQuBlYSFL5K0LSglBmr1D4XWUwpgBfdv-tDlYtsRYpvYkvcf25RUSd3yWoKiH9YNAAauG2RwEfJH_K2wMJ-VDbPwvLoyDTINTqn9I-QRD0MjNpqyo59zyOsZAT9sl6IDHjkdk2Qzc0-BQaK14Z2xnNDBNPz67p5zLBskb2OEQt6T-oRsfwBm8lVm57izhny8mMQse1TD-9E-WC3qIeep6niUR0JRRkKsk0B98b4bQiOIyQFj9U-vLAug58f-fOB1MjDhslda1o8BZfQ_3tF7lJJ_Xf30L96xrBFq6pHKjWywN6bQz_b3FvQ2yuRfwL69-zb5yBVSI4XDDJ7BuCSKYi8NXEpzjpwBLMs7sKtIFV-yr98J_WN-96x1IPyPVArisGGwyLKRV0k1qskWS0mSTYmoqzfvNBGUzRySRHuo8eGs7z2NKQhzkpxVh_7FYSWFP52DcZ2Cwykv1rC34fByhtG6wv4MZcIWuLy5az_Bp5GgCzyMcsNOyZbMeg4xUUeiyWBhHUXU67Xofc52tudSdmnYIzL-VP6yd-5gt7EJCJjkJmK8CcdIuh3yBH4PbBXSkdCmbmuydN-QavERs0A81PiiJgXGpEmW5W00NV36ejd87guRWksrsOCufimC40PgIqDkkLT5I6_san2wa-pfA=w800-h563-no

 


Toute la suite du tuto exploite des containers docker (1 container par application).
Dans le tuto, chaque container est lancé via des lignes de commandes rentrées dans un terminal, mais il est possible de tout faire via l'interface de Portainer

 

on peut améliorer le setup de Portainer en rajoutant des certificats pour le https :


cd /opt/
sudo mkdir portainer/key
cd ./porainer/key
sudo openssl genrsa -out portainer.key 2048
sudo openssl ecparam -genkey -name secp384r1 -out portainer.key
sudo openssl req -new -x509 -sha256 -key portainer.key -out portainer.crt -days 3650

 
Code :
  1. docker run   \
  2.       --name portainer  \
  3.       -p 9000:9000   \
  4.       -v /var/run/docker.sock:/var/run/docker.sock \
  5.       -v /opt/portainer/data:/data \
  6.       -d   --restart always \
  7.       portainer/portainer  \
  8.       --sslcert /opt/portainer/key/portainer.crt \
  9.       --sslkey /opt/portainer/key/portainer.key


Message édité par cartemere le 29-10-2019 à 22:46:05
Reply

Marsh Posté le 24-07-2019 à 00:44:29   

Reply

Marsh Posté le 24-07-2019 à 01:00:53    

>>>>>>>>>>>>>>>>
>>> SETUP CLOUDCOMMANDER
>>>>>>>>>>>>>>>>

 

http://cloudcmd.io/img/logo/cloudcmd.png

 

CloudCommander est un browser via une interface Web.
Il permet de se déplacer dans l'arborescence et les drives d'une machine, de visualiser les fichiers, de compresser/décompresser, de transférer, d'éditer, et offre même un terminal pour effectuer des opérations sans avoir à se connecter en SSH.

 

Ca parait pas mal sur le papier, en pratique ça peut être pratique, puisque ça offre une interface bien plus "user friendly" pour manipuler et administrer son serveur domotique (surtout si on n'a pas d'écran connecté dessus)

 

1- créer l'image Docker
cloudcommander peut fonctionner dans un container docker.
souci, l'image Docker existe, mais elle n'est dispo qu'en x86 (donc pour processeur Intel/AMD de PC "classique" ). Le RPi a une architecture ARM (smartphone en gros), et n'est donc pas capable de faire fonctionner l'image existante.
On va donc devoir créer une image "perso".

 

A> dans le dossier /Documents du user "pi", on va donc se créer de quoi construire l'image docker de cloudcommander.
et ça passe par un fichier qui porte le nom de "DockerFile"

Code :
  1. cd ~/Documents
  2. mkdir docker
  3. cd docker
  4. mkdir cloudcommander
  5. cd cloudcommander
  6. touch Dockerfile


ce fichier contient les instructions pour construire l'image, qui sont dans notre cas (avec nano par exemple)

Code :
  1. FROM node
  2. MAINTAINER Cartemere
  3. EXPOSE 8000
  4. RUN npm install -g cloudcmd
  5. ENTRYPOINT ["cloudcmd"]
  6. CMD ["--no-open"]
 

B> on construit l'image

Code :
  1. docker build -t cloudcommander ./
 

après quelques minutes, on a une image créée, qui porte le nom du tag qu'on lui a donné (via le -t <montag> dans la commande docker build)

 

2- lancer l'image Docker cloudcommander
reste à lancer l'image fraichement crée.
REMARQUE : l'explorateur de fichier va tourner dans le container, il aura donc accès au système de fichier de l'intérieur du container, et pas le système de fichier du système hôte qui fait tourner docker... il faut donc rattacher le système de fichier de Raspbian dans le container docker

Code :
  1. docker run  \
  2.       -d   \
  3.       --name=cloudcommander  \
  4.       -p 8000:8000  \
  5.       -v /:/mnt/fs   \
  6.       cloudcommander
 

on peut alors accéder à l'interface de cloudcommander à cette adresse : http://raspberrypi:8080
attention : le système de fichiers du raspberry est dans le dossier /mnt/fs !

 

https://lh3.googleusercontent.com/lkmBiDWJWZborB8XpAX2i0CwtzhcekdpFT98xzFcbx-FxRgtHaSVOZGln4hwKGwe2xfV0A96mnjxIe230D3TvxX8XzIual_lR7Q4Mhd3odNUxfhBEvYyNtjY-V4jwLqpOc00u5hqWHIpDUzDq7eS-LAjqTfuhYeT1m_KkOsFN6frT_8XgzBfoiDb84veX-neN-Z0Q_7CSCGeylqnFLHmCA4iQrA4bKq-6pUQso38yAgnEs4iY4v2KBufoyPe8mgnwGc0K6U9xsPgV-3maxPA3U9LijjGezXGgB-VDUe8N-nvd3pWHnptOdTdNDzpmRVLIim-Duev4IGmmj2YHbpV2oEoM982BPU-vnhMm1B6BDp2-qDag4Wrv1_9OFjGkpAoHOfbgtq8MMofo57lIS3BoVa2DkAZO7EJy8vmXqzwyrASuA_8qiL_GJcNk5GJlNBK9gfBdjld06_ZfdZoQjBPiDtAqP18DExTR0d6szkDGqERBM0LheW97NEAq44-oFhep6cvu1WLywKIIpAG4o0MAknrAxhEG9yN-5lpRR6zcmEN2CwRDMZDzwtO98RXV-qX3fTI7cVO29h_-6R-RpT4C7vAG9ipCGzSREgwoWBMRXRBICp-lDJkGvhxzFFbucvuQw9hcIdfqmFi301CLKiCEtNcSC5E7P_fRqZbV3vycyPOCv9YJhwsaWnPhxI7wXe33snxEp4EQZuBj4YnxgwMb8RBFA=w1277-h983-no


Message édité par cartemere le 22-08-2019 à 00:06:57
Reply

Marsh Posté le 25-07-2019 à 08:39:17    

>>>>>>>>>>>>>>>>
>>> SETUP RTAIL
>>>>>>>>>>>>>>>>

 

RTail est une solution Web pour pouvoir suivre les modifications et le contenu de fichiers. Il est particulièrement adapté au suivi des fichiers de log !
https://github.com/kilianc/rtail
Il fonctionne sur la base d'un serveur, qui gère l'affichage Web
et d'un client par fichier suivi, qui va envoyer les dernières lignes du fichier vers le serveur.

  

Comme pour CloudCommander, il n'existe pas d'image directement exploitable en ARM pour un Raspberry.
On va donc devoir en créer nous même.

 

Pire que ça : coté client, RTail est initialement conçu pour suivre un fichier spécifique à partir d'une commande entrée explicitement par l'utilisateur.
Dans notre cas, on souhaite suivre automatiquement les fichiers du dossier de logs, et rajouter automatiquement les nouveaux fichiers.
On ne va donc pas avoir un container docker par fichier à suivre, mais un container docker par dossier de log à suivre, et ce container va se charger de créer et gérer autant de RTail que nécessaire pour suivre chacun des fichiers de logs de ce dossier.

 


Ce tuto est inspiré de :
https://github.com/Maluuba/docker-f [...] ail-server
https://github.com/Maluuba/docker-f [...] cker-rtail

 

COTE SERVEUR>
il faut créer un fichier Dockerfile "custom" pour pouvoir créer l'image, et mettre les instructions suivantes dedans

Code :
  1. FROM node
  2. MAINTAINER Cartemere
  3. RUN apt-get -qq update
  4. RUN apt-get -qq upgrade
  5. RUN npm install -g rtail
  6. EXPOSE 8888
  7. ENTRYPOINT ["rtail-server"]
  8. CMD ["--wh", "0.0.0.0", "--uh", "0.0.0.0"]
 

puis créer l'image du Serveur depuis de Dockerfile avec cette ligne de commande (docker utilisera automatiquement le Dockerfile présent dans le dossier courant, et pousse l'image générée dans le repo d'images de la machine) :

Code :
  1. docker build -t rtail-server ./

 

et enfin lancer le container docker depuis l'image avec cette ligne de commande :

Code :
  1. docker run  \
  2.       --name=rtail-server  \
  3.       -p 8188:8888  \
  4.       -e DEBUG=rtail:*  \
  5.       -d  --restart=always \
  6.       rtail-server
 

le server Rtail doit normalement démarrer, et être accessible sur le port 8188 : http://raspberrypi:8188

 


COTE CLIENT>
Il faut là aussi un Dockerfile custom :

Code :
  1. FFROM node
  2. MAINTAINER Cartemere
  3. RUN apt-get -qq update
  4. RUN apt-get -qq upgrade
  5. RUN npm install -g rtail
  6. RUN apt-get -qq -y install inotify-tools
  7. ENV  TAIL_TEMPO='5' TAIL_PREFIX='tail'
  8. ADD rtail-client.sh /opt/rtail-client.sh && RUN chmod +x /opt/rtail-client.sh
  9. WORKDIR /logs
  10. ENTRYPOINT ["/opt/rtail-client.sh"]
 

et un fichier rtail-client.sh à coté du Dockerfile avec ce contenu :

Code :
  1. #!/bin/bash
  2. #echo starting rtail-client >> ./rtail
  3. #echo add all files in the last ${TAIL_TEMPO} min >> ./rtail
  4. find * -type f -cmin -${TAIL_TEMPO}  -exec sh -c "tail -F -n100 {} | rtail --id ${TAIL_PREFIX}{} -h 'rtail-server' &" \;
  5. # ignore case for regex
  6. shopt -s nocasematch
  7. #echo launch watchdog >> ./rtail
  8. # watch changes in the folder in real time
  9. inotifywait -m -r -e create  . |
  10. while read path action new_file; do
  11.   #echo ${action}  ${path}  ${new_file} >> ./rtail
  12.   if [[ "${action}" == "CREATE" ]]; then
  13.     #echo adding ${TAIL_PREFIX}${path}${new_file} >> ./rtail
  14.     tail -F -n100 ${path}${new_file} | rtail --id ${TAIL_PREFIX}${path}${new_file} -h 'rtail-server' &
  15.   fi
  16. done
  17. #Keep container alive...
  18. bash


Ce script permet de :
1> Monitorer dans rtail tous les fichiers qui ont été modifiés dans les TAIL_TEMPO minutes avant le lancement du script.
2> Monitorer automatiquement chaque nouveau fichier créé dans RTAIL
3> Associer à tous ces fichiers le préfixe TAIL_PREFIX dans l'interface du serveur rtail.

 


Pour construire l'image Client depuis de Dockerfile

Code :
  1. docker build -t rtail-client ./

 

Il est ensuite possible de lancer un container client sur le dossier de logs de son choix :

Code :
  1. docker run  \
  2.       --name=rtail-NOM-DU-CLIENT  \
  3.       --link rtail-server   \
  4.       -v /opt/LOGS-DU-CLIENT:/logs   \
  5.       -e "TAIL_PREFIX=PREFIXE_CLIENT_DANS_LE_SERVEUR"  \
  6.       -e "TAIL_TEMPO=PRENDRE_NOUVEAUX_FICHIERS_DE_MOINS_DE_X_MIN"  \
  7.       -d  --restart=always \
  8.       rtail-client
 

Donc en pratique :

 

pour OpenHab

Code :
  1. docker run  \
  2.       --name=rtail-openhab  \
  3.       --link rtail-server   \
  4.       -v /opt/openhab/userdata/logs:/logs   \
  5.       -e "TAIL_PREFIX=openhab"  \
  6.       -e "TAIL_TEMPO=5"  \
  7.       -d  --restart=always \
  8.       rtail-client
 

pour zigbee2mqtt

Code :
  1. docker run  \
  2.       --name=rtail-z2m  \
  3.       --link rtail-server   \
  4.       -v /opt/zigbee2mqtt/data/log:/logs   \
  5.       -e "TAIL_PREFIX=z2m"  \
  6.       -e "TAIL_TEMPO=120"  \
  7.       -d  --restart=always \
  8.       rtail-client
 

pour mosquitto

Code :
  1. docker run  \
  2.       -d   \
  3.       --name=rtail-mqtt  \
  4.       --link rtail-server   \
  5.       -v /opt/mosquitto/log:/logs   \
  6.       -e "TAIL_PREFIX=mqtt"  \
  7.       -e "TAIL_TEMPO=120"  \
  8.       -d  --restart=always \
  9.       rtail-client
 


En revenant sur la page Web du serveur rtail, vous devriez voir les entrées des différents fichiers de logs des différents services.
(dans mon cas on voit clairement dans les logs du mosquitto que mon OpenHab essaie d'initier le RfLink sur un device qui n'existe pas : /dev/ttyACM1)
https://lh3.googleusercontent.com/3FxT050-qq9TOaySLP59zvEqjFViFahmUp56vjgCrVgrEkUkeXVPOwlrBbHM5rUU6cr3JSfXqJJZFeh9vwMP_O9X5s_1vfKO_dtn5QEr6vsilpSIfrBhLND5AjmLUipWodSLn2QzrbI8tD0oYgmG42bQKrubkk7HFagd7BIg8-wf0RyRIuEKBjuaKMm60B-AUU4zy5a0UB30r3DNSLPwYJuf64f-NIIZ2ZOD8Vvv5YLmdmJZR3rXP2tmShq4FH56YSTldSSecKprEWGERujQdOz5oE9oebJxyADjJayJdK2_avTlo_dRHoPs09A0fl_xNvK_x0uGQ3EF7waDl-bf3EBiof0hWs7MSqPiHSJ8OkO5kQsLekgjusLdcsvSvCvZNBSZAkIYEdJlgJuNP33wMGhkudyJ7lCFqLVp4oxSOBov7Pc7w3jLHneN8aRtyO3_siwNKCwWGhgnq6nLIHVFd5u1MaX5nWWLPJiVnEMxcSj07ArJoUu97TMTG8i83h4ZOy0EX6qPS1tJueX7TRSBSHYjnm2ck5Ym59y41Tf0Kn5Du5fsQYT9FpAgWpxowncrwN06INewOweRDg3KQIROgtN5Q9lyWkmYUNkRxVtefWjow7AXeuOmD2PnT0zDUfqjvdznPeTNTodMCy-QXj0RsZYT0o2l6ab4jdzXAWZ18RbIjQ7X8FH3aU0BrDhFrD9CoIT51BhHNeYhfzzri3FBsCCCRjnlWgxo4VbxVikCXWWxU_ju=w1396-h694-no


Message édité par cartemere le 31-10-2019 à 16:28:22
Reply

Marsh Posté le 27-07-2019 à 21:54:08    

>>>>>>>>>>>>>>>>
>>> SETUP MOSQUITTO / DOCKER
>>>>>>>>>>>>>>>>
https://mosquitto.org/images/mosquitto-text-side-28.png
Mosquitto sur RPi : https://projetsdiy.fr/mosquitto-bro [...] pberry-pi/
container = eclipse-mosquitto (officiel)

  


1- créer les dossiers pour la persistance & le user mosquitto

Code :
  1. sudo groupadd -g 1883 mosquitto
  2. sudo useradd -u 1883 -g mosquitto -r -s /sbin/nologin mosquitto
  3. sudo usermod -a -G mosquitto $USER
  4. cd /opt/
  5. sudo mkdir mosquitto
  6. cd mosquitto/
  7. sudo mkdir config
  8. sudo mkdir data
  9. sudo mkdir log
  10. sudo touch config/mosquitto.conf
  11. sudo chmod 664 config/mosquitto.conf
  12. sudo chown -R mosquitto:mosquitto ./
  13. nano config/mosquitto.conf


et rajouter ces lignes de configuration dans le fichier

 
Code :
  1. persistence true
  2. persistence_location /mosquitto/data/
  3. log_dest file /mosquitto/log/mosquitto.log
 

2 - récupérer et lancer le container mosquitto
https://hub.docker.com/_/eclipse-mosquitto/
(interactif)

Code :
  1. docker run \
  2. --name mosquitto \
  3. --net=host \
  4. -v /opt/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
  5. -v /opt/mosquitto/data:/mosquitto/data:rw \
  6. -v /opt/mosquitto/log:/mosquitto/log:rw \
  7. -it \
  8. eclipse-mosquitto


vérifier qu'il n'y a pas de message d'erreur de droits, et que le fichier de logs est correctement généré

 

(daemon)

Code :
  1. docker run \
  2. --name mosquitto \
  3. --net=host \
  4. -v /opt/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
  5. -v /opt/mosquitto/data:/mosquitto/data:rw \
  6. -v /opt/mosquitto/log:/mosquitto/log:rw \
  7. -d  --restart=always  \
  8. eclipse-mosquitto


Message édité par cartemere le 29-10-2019 à 22:39:03
Reply

Marsh Posté le 27-07-2019 à 22:32:49    

>>>>>>>>>>>>>>>>
>>> SETUP ZIGBEE2MQTT / DOCKER
>>>>>>>>>>>>>>>>
http://www.zigbee2mqtt.io/images/logo.png

 

https://github.com/Koenkk/zigbee2mqtt/wiki/Docker
1- créer les dossiers pour la configuration

Code :
  1. cd /opt/
  2. sudo mkdir zigbee2mqtt
  3. sudo mkdir zigbee2mqtt/data
  4. sudo chown -R pi:pi zigbee2mqtt/
  5. sudo chmod -R 644 zigbee2mqtt/
 

2 - lancer le container en interactif

Code :
  1. docker run \
  2.   --name z2m \
  3.   --net=host \
  4.   --device=/dev/ttyUSB_cc2531 \
  5.   -v /opt/zigbee2mqtt/data:/app/data  \
  6.   -it \
  7.   koenkk/zigbee2mqtt:arm32v6
 

3 - modifier la configuration
le fichier de configuration doit avoir été créé dans le dossier /opt/zigbee2mqtt/data
modifier l'adresse du serveur MQTT & activer la détection :

Code :
  1. # Home Assistant integration (MQTT discovery)
  2. homeassistant: true
  3. # allow new devices to join
  4. permit_join: true
  5. # MQTT settings
  6. mqtt:
  7.   # MQTT base topic for zigbee2mqtt MQTT messages
  8.   base_topic: zigbee2mqtt
  9.   # MQTT server URL
  10.   server: 'mqtt://127.0.0.1:1883'
  11.   # MQTT server authentication, uncomment if required:
  12.   # user: my_user
  13.   # password: my_password
  14. # Serial settings
  15. serial:
  16.   # Location of CC2531 USB sniffer
  17.   port: /dev/ttyUSB_cc2531
 

4 - lancer le container en daemon

Code :
  1. docker run \
  2.   --name z2m \
  3.   --net=host \
  4.   --device=/dev/ttyUSB_cc2531  \
  5.   -v /opt/zigbee2mqtt/data:/app/data  \
  6.   -d --restart=always  \
  7.   koenkk/zigbee2mqtt:arm32v6


Message édité par cartemere le 26-10-2019 à 21:47:05
Reply

Marsh Posté le 27-07-2019 à 22:54:58    

>>>>>>>>>>>>>>>>
>>> SETUP INFLUXDB / DOCKER
>>>>>>>>>>>>>>>>
https://kleedigitalxperiences.com/techmap/img/png/influxdb-logo.png

 

InfluxDb = base de données TimeSeries
Chronograf = appli Web permettant d'administrer une base InfluxDb
Telegraf = appli de récupération d'indicateurs système (pour avoir des stats et un suivi de la machine)

 

https://hub.docker.com/_/influxdb
1- créer les dossiers pour la persistence

Code :
  1. cd /opt/
  2. sudo mkdir influxdb
  3. sudo mkdir influxdb/config
  4. sudo chown -R pi:pi influxdb/
  5. sudo chmod -R 755 influxdb/
 


2- générer la configuration et l'éditer si besoin

Code :
  1. docker run --rm influxdb influxd config > /opt/influxdb/config/influxdb.conf
 


3- lancer le container

Code :
  1. docker run \
  2.       --name=influxdb  \
  3.       --net=host \
  4.       -v /opt/influxdb/config/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
  5.       -v /opt/influxdb:/var/lib/influxdb \
  6.       -d  --restart=always \
  7.       influxdb -config /etc/influxdb/influxdb.conf
 


https://hub.docker.com/_/chronograf
4- créer les dossier pour la persistence Chronograf (admin & visualisation)

Code :
  1. cd /opt/
  2. sudo mkdir chronograf
  3. sudo mkdir chronograf/config
  4. sudo chown -R pi:pi chronograf/
  5. sudo chmod -R 755 chronograf/
 


5- lancer le container Chronograf

Code :
  1. docker run \
  2.       --name=chronograf  \
  3.       --net=host \
  4.       -v /opt/chronograf:/var/lib/chronograf \
  5.       -d  --restart=always \
  6.       chronograf --influxdb-url=http://127.0.0.1:8086
 

6- se connecter sur l'instance Chronograf
http://raspberrypi:8888
à la première connexion, Chronograf propose de créer des dashboards pour divers systèmes.
choisissez Docker dans la liste.

 

7- rajouter l'entrée Chronograf sur le dashboard openhab

Code :
  1. cd /opt/openhab/conf/services/
  2. echo chronograf.link-name=Chronograf >> ./dashboard.cfg
  3. echo chronograf.link-url=http://raspberrypi:8888 >> ./dashboard.cfg
  4. echo chronograf.link-imageurl=../static/chronograf.png >> ./dashboard.cfg
 


https://i0.wp.com/www.homelabrat.com/wp-content/uploads/2018/07/telegraflogo.png?w=466&ssl=1

 

https://hub.docker.com/_/telegraf
8- créer les dossiers pour la persistence

Code :
  1. cd /opt/
  2. sudo mkdir telegraf
  3. sudo mkdir telegraf/config
  4. sudo chown -R pi:pi telegraf/
  5. sudo chmod -R 775 telegraf/
 


9- générer la configuration

Code :
  1. docker run --rm telegraf telegraf config > /opt/telegraf/config/telegraf.conf
 


10- éditer la configuration
dans la catégorie [[outputs.influxdb]],
spécifer la base influxDb à utiliser :

Code :
  1. urls = ["http://127.0.0.1:8086"]
 

descendre dans le fichier de conf jusqu'à la section INPUTS,
et rajouter une entrée pour pouvoir auditer les stats docker

Code :
  1. # Read metrics about docker containers
  2. [[inputs.docker]]
  3.   ## Docker Endpoint
  4.   ##   To use TCP, set endpoint = "tcp://[ip]:[port]"
  5.   ##   To use environment variables (ie, docker-machine), set endpoint = "ENV"
  6.   endpoint = "unix:///var/run/docker.sock"
  7.   ## Set to true to collect Swarm metrics(desired_replicas, running_replicas)
  8.   ## Note: configure this in one of the manager nodes in a Swarm cluster.
  9.   ## configuring in multiple Swarm managers results in duplication of metrics.
  10.   gather_services = false
  11.   ## Containers to include and exclude. Collect all if empty. Globs accepted.
  12.   container_name_include = []
  13.   container_name_exclude = []
  14.   ## Container states to include and exclude. Globs accepted.
  15.   ## When empty only containers in the "running" state will be captured.
  16.   ## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
  17.   ## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
  18.   # container_state_include = []
  19.   # container_state_exclude = []
  20.   ## Timeout for docker list, info, and stats commands
  21.   timeout = "5s"
  22.   ## Whether to report for each container per-device blkio (8:0, 8:1...) and
  23.   ## network (eth0, eth1, ...) stats or not
  24.   perdevice = true
  25.   ## Whether to report for each container total blkio and network stats or not
  26.   total = false
  27.   ## docker labels to include and exclude as tags.  Globs accepted.
  28.   ## Note that an empty array for both will include all labels as tags
  29.   docker_label_include = []
  30.   docker_label_exclude = []
  31.   ## Which environment variables should we use as a tag
  32.   tag_env = ["JAVA_HOME", "HEAP_SIZE"]
  33.   ## Optional TLS Config
  34.   # tls_ca = "/etc/telegraf/ca.pem"
  35.   # tls_cert = "/etc/telegraf/cert.pem"
  36.   # tls_key = "/etc/telegraf/key.pem"
  37.   ## Use TLS but skip chain & host verification
  38.   # insecure_skip_verify = false
 


11- lancer le container

Code :
  1. docker run \
  2.       --name=telegraf  \
  3.       --net=host \
  4.       -e HOST_PROC=/host/proc \
  5.       -v /proc:/host/proc:ro \
  6.       -v /var/run/docker.sock:/var/run/docker.sock \
  7.       -v /opt/telegraf/config/telegraf.conf:/etc/telegraf/telegraf.conf:ro  \
  8.       -d  --restart=always \
  9.       telegraf
 

en retournant sur Chronograf et en cliquant sur Dashboard > Docker, toutes les stats doivent apparaitre :
https://lh3.googleusercontent.com/h1TMzvrg09tUp9SHtLakkO1WtDThAvsI1mCMdrhsBpXYXFyG1G4PuGguXfXXffMq6IfFSgKSDUKHiup_6B8aWUkQ4ce6UeUta3XzDuviB1E63NbD2Ox3k06Lkz7lugblsP97xqU0qqszeql3TRjAiFdN_NHNktHEP2XWv7jpQj0LWCZgiuxpHTUP-jtpIceCt9ZGC7HOqRbtHDDwSK36OfsoIM8jM0bYlSIzCAaIzp_p2SAQzh6t7KM6tc5Fnf9z6C7bGUX5iq_SrQAhT0Lp3bNwbyRC9fWCPUHnyv7SwpdKJEAqa4iIc7bNWY_p5cfjNI2w6Nf0AJflwLtJj3vFHNYpdXruycLoLBawOrz95TSauUx34RntRhIs5YGxFVMZtXEQKz--RK7bWP9M_DML-ggiKcr9wd7tZGX4FW38UIPuaRla0yVRaXaZnZekH5-RNAVn4axJG90j5S9DqGX5UB-cBKPT_IUouU0TaQTWLQ1DqF_W6MxNU9fSIsstMrJZQw_pHBxtClqaKcLCr9qe6wWXzyyQz3IvbHECjvCYSn_o3aY9YUQ0v8J-ldNZPHRG8lQnN6HP2wbicEnO8e1DdVasEpfswxJnoE_6YgH7P8VmB32nOgbZsriS9fLCrSVvarHBMnCffz85OT3B12RYo3MjcAiwEvLuWFNSKnNWMXBtpsP0AciRI4-_KZ8AE2xA4_uAD4whtwBJA52UlL8K3P-fqg=w800-h462-no


Message édité par cartemere le 21-08-2019 à 23:18:53
Reply

Marsh Posté le 28-07-2019 à 14:30:50    

[:wam]
:jap:

Reply

Marsh Posté le 31-07-2019 à 20:55:46    

>>>>>>>>>>>>>>>>
>>> SETUP OPENHAB / DOCKER
>>>>>>>>>>>>>>>>
https://community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/0/0bf8618e720957d07d17407b2c0182b15ff28db9.png

 

tuto complet ici : https://docs.openhab.org/installation/docker.html
1- créer l'utilisateur openHab et son groupe

Code :
  1. sudo groupadd -g 9001 openhab
  2. sudo useradd -u 9001 -g openhab -r -s /sbin/nologin openhab
  3. sudo usermod -a -G openhab $USER


créer les dossiers & les rattacher au user

Code :
  1. sudo mkdir /opt/openhab
  2. sudo mkdir /opt/openhab/conf
  3. sudo mkdir /opt/openhab/userdata
  4. sudo mkdir /opt/openhab/addons
  5. sudo chown -R openhab:openhab /opt/openhab/
 

2- identifier le container à lancer
https://hub.docker.com/r/openhab/openhab/
c'est normalement : <version>-<archi>-<distrib>
version = 2.4.0
archi = armhf
distrib = debian

 

3- lancer le container docker en interactif

Code :
  1. docker run \
  2.         --name openhab \
  3.         --net=host \
  4.         --device /dev/ttyUSB_rflink  \
  5.         -v /etc/localtime:/etc/localtime:ro \
  6.         -v /etc/timezone:/etc/timezone:ro \
  7.         -v /opt/openhab/conf:/openhab/conf \
  8.         -v /opt/openhab/userdata:/openhab/userdata \
  9.         -v /opt/openhab/addons:/openhab/addons\
  10.         -it \
  11.         openhab/openhab:2.4.0-armhf-debian


(pas besoin de spécifier les ports, on est en --net=host)
(pas besoin non plus de spécifier le user : le user openhab a déjà été créé avec les bons droits)

 

l'interface Openhab est dispo à cette adresse : http://raspberrypi:8080

 

https://lh3.googleusercontent.com/eZVqPVM7urQkA_vZabErD0AzbIfdE-_GTNuQvUK2W3UzZ64bVGAu1NTmdOLFTNSibLORmqJH9wP1kWKHB7vsvWOCy8XqDxVMqFUa_SgrfJ9pX_Tq__KLNbT_bd3FBbRPV_Yi-bbRVE5n_0X8epAFwwXBpDqIiN9H4hIcAuhZGeADcRpYfKKNNl9udaj0AMjOTI7nwhb0VL57M-vwLNHk0QM6e1qdTjBTzKztkzZz_6lcBtfHo5zl_v-_tb-GKH89cq8iaq9NFPuc1iBWD2MJNh4uMuzW91NqozW3tlMqAg8iVwvsZ_V_4B4W5ww4JdVlMSqvsJ84vsirswz57QxcqbSo5V6YHGuR6YS7_OG7GlcdQCj8p8VUF8UC3Evo5q05oGJLImbnYaU1QbUkcSyQsf9lJlLfO7a0OfASgY9izLTBkcE8yFfk3InPYwfEfnd9lUm-QxuTXBubE3zMLosOvjyll6jeoqHDVCC6Ifctl0ZynfvRzuq-he4XtZqqQY1pgboTYRf4QQf5RiDL5ILHnPgZ5sKlqcZVEiZ-5NAE911yX3aUbFuBj5m-5YHy5VWk11IieGTQa3rvZA9n7YX43DUhPPWtdtEKdCyhtzLA8nguOQJXVzBzhQUvMfcnijgWBqkpl7kQW5NeFXRpnoiyLPGPwG7FCv7rBZWSGO-vtlKebI0-9N56naDgEI9JtfrKte7Xfbpk_rr1fGGD5V1-Syia8w=w800-h587-no

 


... en profiter pour installer le plugin SerialRxTx [nécessaire pour RfLink]

 

via la  console (geek inside):

Code :
  1. openhab> feature:install openhab-transport-serial


si besoin après s'être connecté à la console openhab du container docker avec cette commande:

Code :
  1. docker exec -it openhab /openhab/runtime/bin/client
 

ou via l'interface (pour les humains "normaux) :
en installant le plugin "Serial Button" dans Paper UI > Addons > Binding
(ce binding installe automatiquement la couche de transport série en dépendance)

 


... ainsi que le plugin MQTT (nécessaire pour exploiter la couche MQTT, même sans le rendre explicitement actif) [nécessaire pour Zigbee2MQTT]
aller dans l'interface Paper UI > Addons > Binding, et taper "MQTT" dans la barre de recherche.
cliquez sur le "Install" à coté de MQTT Binding

 

... et pour installer la dernière version des bindings
à placer dans le dossier "addons" créé précédemment :
RfLink : https://github.com/cartemere/org.openhab.binding.rflink
Zigbee2MQTT : https://github.com/nibi79/zigbee2mqtt

 


4- éditer la configuration
pour pouvoir rajouter des entrées ensuite dans le main dashboard

Code :
  1. cd /opt/openhab/conf/services
  2. sudo touch dashboard.cfg
  3. sudo chown openhab:openhab dashboard.cfg
  4. sudo chmod 666 dashboard.cfg
 

rajouter directement une entrée pour Cockpit qui a été installé précédemment

Code :
  1. cd /opt/openhab/conf/services/
  2. sudo su
  3. echo cockpit.link-name=Cockpit >> ./dashboard.cfg
  4. echo cockpit.link-url=http://raspberrypi:9090 >> ./dashboard.cfg
  5. echo cockpit.link-imageurl=../static/cockpit.png >> ./dashboard.cfg
  6. exit
 

en profiter pour rajouter les images / logos des différentes entrées que l'on va rajouter :
(chaque image est à sauvegarder dans le dossier /opt/openhab/conf/static/ )
chronograf.png
https://lh3.googleusercontent.com/Th2OpIkFyUUG4LW4Ltjhbc87dAzjDG3ZZWPQcQ4rEMQTm5rTjYh9D_mAEKYs8eHdm8Kl_KV2yZx1WIe4JNCL7DCQxObdF-TOiJ2p9a2tMiTZX3gRAwn3eFzM3WtBXI3esmCAAgEq105pkqwta-S3Ed4bbOulfwg5P9bxgBjbT-RDZOEQ4SGLDC-mXrf7RGiy8SoEKMQr4-LTNMqwz_uQ59b44DBSKFHqxkLKfKtIaYZtEGk98HzyQ6Yeh6Pl9jHsFkdTAt_8wlnVoK3WYq4pGB6aVjwd98yKOUQnIcVwwiQTvWILtUrxzQf9QQ1ekJb4xJ3Ot6CHtiNMNLiEp2LJqTGbLt36e5H-zX4MN-gum7T_oX7_6Wbp-jcetlqfaFfJfOpL-mZsunUl_jwLt--XsY5Vgy_4HMOaZIeAiU9YwixGuKhrbe-bezrOf1AVArRa-dTnjkHihftpCZX7YwPL-5uwhQ1sO3A1pd8xD5ZGaxUXAqr6KAryVVEWgra6NJ12LxukEc7VP9cIdnxjjjqhzDQ9kk8xpJmgL5M9Pu5LtMHL9rW3q395NRzQwZ8kU30lXmaSQm3yM5QqIUEYXWBKsyWH6D_pObqMT8fxZ4tfmEM2DLvMB89CN6USa1Rt4GfgNPiVbtFmQ-Zj6bV1Wgpgrw5kS0ZhDmpE6lgITXhE8wja7BdYAQlCQKPOFNlFeuoPoEaERCvnfTyQ5ikff0gkLwDwsg=w350-h200-no

 

cockpit.png
https://lh3.googleusercontent.com/696a25jSWGzJZ9LcETqCZGZOFb6H9dMGsDsvChds5TPyCp5MyYPA7Eq2uEkvIXkNwmYc_LpLIQtq2VcM7xNwHte2IR4PTSVp_NdDq7WbqPjJ1Ov2W8uxC0FaSNHYQIaxaJuPRjJ4FHFODCxu8Q11SPV-Ke9ONAevPULCQlm2Rdpukke5hJFqoHkXImPISg0uwdwlH_tgIAxalswtqzRaP4IWMWGK61unRJ98jfk4u67uYXFYwqZhuam0CyKYQnESq5C5_Z9ZXvA2cURjcIIb8Gx12bNtqmsSkeJfqjSv4LWbickJASbUwplR79L1BQI6itrLEpAC0z5oNwMzGwVZBEeNrXrFFfIFVmmbdIyfqE0xeAAImgLIAwGpGSTCQSMZaOKfUUYXXV84Xo0tA1kZXI1vWYq5RSTC_NHdV5253MvrHXbxsmu5JCZy-ksQjHTBrD7TXnNQtGopuLlTYpW4R_qTcD0pG76w2NSD17T6bRdJSyqUU7jAy8JXeNCbCIiPUHRFqvI7aZLsVLsybIdVTyotAWaD6tg5kdWcAz4vQMgxgulbc_1pQUsC881dX9KJ-CS-hkktts1eriDIP9UlUcOKfNiQoCMzo8Lq3aIoY7lLk3ycUD3sPraYt7t44teigst0Si7HrIrbb05UxDgFGM6obEewO6p_9Qltow-t6tj-Dnh6fLrEA0fm0zk-WqHRQpfesCLRC68OkRIo576EkWANew=w350-h200-no

 

portainer.png
https://lh3.googleusercontent.com/xuZNaCSsWObcMqIFRqy9EB5IiJAMmdBxD-cs8GQpDL0COBXsS1sJ-lZlGXfalwTeJrsySxkAPyLc0ur2HTzUh_35Qf8s4uSY9Cozg7tbVvktpwU3MQN16aayhU5xD56916fUfw-hQyYTWttxhFt7DhzqBvVnbdMMlVYKpBoe2dZ-bkgtIAGoQdiv5h4bZZr13omzKJQIHfjL-b_axUykTwHP6v5j6WG0XkJFILDjq2oRaDzTQZfwS8AYh1yCSPAS_mtxu7AO7s2acDvH5-7nMRyRJ-w8nS8A-ct0XdjV6UmcRGpYdutwOwMzMEudNT1lF25aNYt3UjpK_e0XDyA-9KdQ9H0RhrZS4qbD0-AUkpr7Rf8UHi3MeMnVyUu57nyLI3yTHFr5hBUQI46cKF67O0aVYzeHzwGL2fYbbB9XZnJuFthT2OFeTRRy96pbcavLjsXRsBnDoZlTfhuwxxwskW8Cn2ACU0mN5ez0CbZeEGVAvU-NT2KqBOX-o3T7t9NUanPlAYNEGAnG1uUTA3mZAk7BYvwB0GET8K0uYGxlcoUcSy7Ol8d8loehq7ZXe3TOtbePq3IuD8IE1HSfNsTOx19tLMhTqTh9nk6bN9P5IFYk7nZpGDipTKJML5WpkzbslMMB5wARXGxWdIIFPhnRohGO-bsDRevtPoYLusIEV-UnsaOQe3lKeWiHLEMjsEK6-DNUGf62s6NbES53uius6J8mAw=w350-h200-no

 

5- lancer le container docker en daemon

Code :
  1. docker run \
  2.         --name openhab \
  3.         --net=host \
  4.         --device /dev/ttyUSB_rflink   \
  5.         -v /etc/localtime:/etc/localtime:ro \
  6.         -v /etc/timezone:/etc/timezone:ro \
  7.         -v /opt/openhab/conf:/openhab/conf \
  8.         -v /opt/openhab/userdata:/openhab/userdata \
  9.         -v /opt/openhab/addons:/openhab/addons\
  10.         -d \
  11.         --restart=always \
  12.         openhab/openhab:2.4.0-armhf-debian
 


6- [si besoin] connexion au container docker et accès à la console OpenHab
pour accéder directement à la console : (pwd = habopen )

Code :
  1. ssh -p 8101 openhab@localhost


pour accéder au container docker :

Code :
  1. docker exec -it openhab /bin/bash


Message édité par cartemere le 15-11-2019 à 22:48:53
Reply

Marsh Posté le 01-08-2019 à 10:49:28    

[:abnocte invictus] Dur dur pour les noobs...

Reply

Marsh Posté le 01-08-2019 à 19:02:23    

[:lardoncru:1] Drapal aussi ça m'intéresse beaucoup !

Reply

Marsh Posté le 01-08-2019 à 20:58:09    

J'ai posé un favoris, pas besoin de poser un  [:lardoncru:1], mais je te remercie tout de même pour les infos  :jap:

Reply

Marsh Posté le 02-08-2019 à 08:09:52    

Merci pour l’initiative.
 
(Drap masqué)

Reply

Marsh Posté le 02-08-2019 à 14:55:15    

drapoual

Reply

Marsh Posté le 21-08-2019 à 12:33:17    

Drap

Reply

Marsh Posté le 21-08-2019 à 23:09:55    

j'ai rajouté les alias sur port USB pour avoir toujours les mêmes noms de périphériques quelque soit l'ordre de branchement
+ Cloudcommander (avec création d'une image custom pour Raspberry)


Message édité par cartemere le 22-08-2019 à 00:06:11
Reply

Marsh Posté le 09-09-2019 à 12:36:11    

drap

Reply

Marsh Posté le 23-10-2019 à 14:13:35    

Drap :o


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 24-10-2019 à 21:29:05    

Une petite photo de ton installation raspberry pi ? Je suis curieux de voir à quoi ça ressemble avec tous les modules au cul :D

Reply

Marsh Posté le 25-10-2019 à 08:22:44    

Euh, j'ai pas de photo sous la main, mais j'ai que 2 ports usb utilisés.
Un pour la clé Zigbee
Un pour le RfLink pour taper le Somfy.

 

Je suis en train de migrer tout ça sur un mini PC x86 à base d'atom + 8Go de RAM pour être plus a l'aise.
Mais je vais finir le tuto sur Rtail :jap:

Reply

Marsh Posté le 26-10-2019 à 21:40:57    

voilà ce que ça donne (encore posé à l'arrache sur un coin du bureau :D )
https://lh3.googleusercontent.com/Leu5WtfY3keHVnem_U-kipOYv6Mkv3BK7dY7rZv_udPK-YDz_4RxuWy87iXcXiSdaIlg7FU0pAZ4SeRh5TFERE2ml8WHGwA79-AZGp2djuOVD7ldQrs79BBpkTAm20QvnRfdp4TvTqU5h36f5mu_m6psOU_MROKSHDKdXHRvF0se3qlXf262QoPEtO8sZw8HjW652BI205joJG4bZFIDCduVVEclUY3z9K37jiDt-gw5ds3opmXTNMM4JWsjGGUb-L_N_trikYNRauBz3fJ6HBmXE8tXcc8z5Q3yp-B8gPdRDRNVpOr9Fz8qd3RPo3jPMsEeBE_T83iPUvZII6Av6euiCqYlAnanzJSt1WSSZ3FF9afYFCpnOOlbput-nob03iJsNwZH1-6HaI0AkPKsD3wn5-gsXWGMWamyxTvPA2_oGA0z0EDeMZymGzIQ7D1OogzTdEW4CRnKDiP8TpawYJsB3I8glLS3-rin-9GMHBvZc1kVw_FzWZBySMIh043RYrA57TXSOkF_ITNK5XSlAVZWoKDLQZpO7WIo0UMfmhHzVv2UvtmgKf8Mq2dfbvfauT6Qml_WnDupdfC0gL4Mm1fju-RVG0-cj1lFNM5oqtTIv74pxBJUkrEk8Mxk6RpJb9BbP8mzh0JvWgMRJbt0pNzRWEBls54u1iYm3HavOQKrHP7fPyCvaJjEdx665ppEPKYW5aNM13W-mLDTOzg2JLXRFcqbDzHjH97Mr-e7kqC4v7In=w900-h600-no
Le RPi B3+ en haut, avec:
- Alim micro USB
- réseau Ethernet
- Clé USB CC2531 Zigbee (avec la led verte)
- Cable USB vers l'arduino (cable USB bleu)
 
et en dessous l'Arduino avec son circuit pour le RFLink, et l'antenne déportée en dessous
 
:jap:

Reply

Marsh Posté le 28-10-2019 à 14:41:19    

Merci, un joli bordel :)
 
Vu que tu dockerises tout, je pense que ça pourrait être intéressant que tu partages tes dockerfiles / docker-compose.
 
Enfin j'imagine que tu vas utiliser docker-compose pour tout réinstaller d'un coup si un jour ton rpi crash.

Reply

Marsh Posté le 28-10-2019 à 16:33:28    

je vais pousser tous les DockerFile + Docker-compose sous mon github, vu que je suis en train de switcher du RPi vers un ACute PC :jap:

Reply

Marsh Posté le 31-10-2019 à 11:21:18    

Je profite d'un jour de congés pour rajouter le setup de RTail :
https://forum.hardware.fr/hfr/elect [...] tm#t266099

 

mais la solution me plait à moitié :
- ça fait un port de plus utilisé pour une interface Web
- le projet n'est plus maintenu depuis des années maintenant (dernières modifs en 2015)
- il y a quelques bugs référencés, qui ne seront probablement jamais traités.

 


je regarde pour utiliser les inputs de Telegraf et injecter les logs dans InfluxDB...
Ca a l'air bien puissant, mais un peu compliqué à mettre en place (notamment pour le parsing des logs)


Message édité par cartemere le 31-10-2019 à 11:21:44
Reply

Marsh Posté le 19-11-2019 à 23:00:32    

Comme promis, voici ma configuration DockerFile (pour le ACute en x86, donc avec les images déjà existantes) :
 
j'en ai profité au passage pour rajouter une stack ELK (ElasticSearch + Logstash + Kibana) et un MetricBeat pour alimenter tout ça.
je teste ça en parallèle du combo InfluxDB + Telegraf + Chronograf et je ferai mon choix ensuite

Code :
  1. version: '3'
  2. services:
  3.   portainer:
  4.     image: "portainer/portainer"
  5.     container_name: "portainer"
  6.     ports:
  7.      - "9000:9000"
  8.     volumes:
  9.      - /var/run/docker.sock:/var/run/docker.sock
  10.      - /opt/portainer/data:/data
  11.     restart: unless-stopped
  12.   mosquitto:
  13.     image: "eclipse-mosquitto"
  14.     container_name: "mosquitto"
  15.     volumes:
  16.      - /opt/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
  17.      - /opt/mosquitto/data:/mosquitto/data:rw
  18.      - /opt/mosquitto/log:/mosquitto/log:rw
  19.     network_mode: "host"
  20.     restart: unless-stopped
  21.   cloudcmd:
  22.     image: "coderaiser/cloudcmd"
  23.     container_name: "cloudcmd"
  24.     ports:
  25.      - "8000:8000"
  26.     volumes:
  27.      - /:/mnt/fs
  28.     restart: unless-stopped
  29.   influxdb:
  30.     image: "influxdb"
  31.     container_name: "influxdb"
  32.     volumes:
  33.      - /opt/influxdb/config/influxdb.conf:/etc/influxdb/influxdb.conf:ro
  34.      - /opt/influxdb:/var/lib/influxdb
  35.     network_mode: "host"
  36.     restart: unless-stopped
  37.   chronograf:
  38.     image: "chronograf"
  39.     container_name: "chronograf"
  40.     volumes:
  41.      - /opt/chronograf:/var/lib/chronograf
  42.     network_mode: "host"
  43.     restart: unless-stopped
  44.   telegraf:
  45.     image: "telegraf"
  46.     container_name: "telegraf"
  47.     volumes:
  48.      - /proc:/host/proc:ro
  49.      - /var/run/docker.sock:/var/run/docker.sock
  50.      - /opt/telegraf/config/telegraf.conf:/etc/telegraf/telegraf.conf:ro
  51.      - /opt:/opt:ro
  52.     environment:
  53.      - HOST_PROC=/host/proc
  54.     network_mode: "host"
  55.     restart: unless-stopped
  56.   elk:
  57.     image: "sebp/elk"
  58.     container_name: "elk"
  59.     volumes:
  60.      - /opt/elk/data:/var/lib/elasticsearch:rw
  61.     network_mode: "host"
  62.     restart: unless-stopped
  63.   metricbeat:
  64.     image: "docker.elastic.co/beats/metricbeat:7.4.2"
  65.     container_name: "metricbeat"
  66.     depends_on: ["elk"]
  67.     user: root
  68.     volumes:
  69.      - /opt/metricbeat/config/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro
  70.      - /opt/metricbeat/data:/usr/share/metricbeat/data:rw
  71.      - /var/run/docker.sock:/var/run/docker.sock
  72.      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
  73.      - /proc:/hostfs/proc:ro
  74.      - /opt:/opt:ro
  75.      - /:/hostfs:ro
  76.     network_mode: "host"
  77.     restart: unless-stopped
  78.   z2m:
  79.     image: "koenkk/zigbee2mqtt"
  80.     container_name: "z2m"
  81.     depends_on: ["mosquitto"]
  82.     user: root
  83.     volumes:
  84.      - /opt/z2m:/app/data:rw
  85.      - /dev:/dev:rw
  86.     devices:
  87.      - /dev/ttyUSB_cc2531:/dev/ttyUSB_cc2531
  88.     network_mode: "host"
  89.     restart: unless-stopped
  90.   openhab:
  91.     image: "openhab/openhab:2.4.0"
  92.     container_name: "openhab"
  93.     volumes:
  94.      - /etc/localtime:/etc/localtime:ro
  95.      - /etc/timezone:/etc/timezone:ro
  96.      - /opt/openhab/addons:/openhab/addons
  97.      - /opt/openhab/conf:/openhab/conf
  98.      - /opt/openhab/userdata:/openhab/userdata
  99.      - /dev:/dev:rw
  100.     devices:
  101.      - /dev/ttyUSB_rflink:/dev/ttyUSB_rflink
  102.     network_mode: "host"
  103.     environment:
  104.       OPENHAB_HTTP_PORT: "8080"
  105.       OPENHAB_HTTPS_PORT: "8443"
  106.       EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Paris"
  107.     restart: unless-stopped

Reply

Marsh Posté le 01-12-2019 à 15:29:30    

[:drapo]


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 06-01-2020 à 17:42:19    

Hello, je me tâte suite à l'achat d'un Synolgy DS218+ : Docker ou VM ?
 
J'utilise Domoticz mais ça change pas grand chose. Est-ce "grave" de mélanger docker (MQTT, domoticz par exemple) et une VM (pour juste python ?)
 
Mon soucis principal c'est la gestion de la connexoon (Somfy) qui nécessite un script en python3 qui tourne en tant que service (donc interdit le docker ?)
 
Merci :jap:


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 07-01-2020 à 10:29:48    

je comprends pas trop ton problème...
 
tu peux tout à fait lancer un container Docker pour faire tourner du Python, et interfacer ce container Docker avec d'autres containers Docker.
 
Il est aussi possible de "mélanger" des applis qui tournent en natif sur la machine et des applis conteneurisées.
 
Sur un DS218+, tu as un CPU intel X86, donc accès nativement au support Docker via les packages Synology.

Reply

Marsh Posté le 08-01-2020 à 07:50:17    

Je me demandais si il était possible qu'un conteneur docker fonctionne avec un autre mais apparement le script python sert juste de "serveur" et peut même être mit sur une autre machine donc ca devrait aller ..
 
Il faut que je regarde du côté des containers docker python 3


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 08-01-2020 à 14:15:54    

un container docker peut parfaitement fonctionner avec un autre, tant que cles interactions se limitent à des fichiers / sockets / ports réseau
 
Il n'y a pas à ma connaissance de lien "direct" pour merger 2 containers, mais rien ne t'empêche de venir aggrémenter une image de service existante pour lui rajouter d'autres services.

Reply

Marsh Posté le 21-01-2020 à 15:50:38    

getget a écrit :

Hello, je me tâte suite à l'achat d'un Synolgy DS218+ : Docker ou VM ?
 
J'utilise Domoticz mais ça change pas grand chose. Est-ce "grave" de mélanger docker (MQTT, domoticz par exemple) et une VM (pour juste python ?)
 
Mon soucis principal c'est la gestion de la connexoon (Somfy) qui nécessite un script en python3 qui tourne en tant que service (donc interdit le docker ?)
 
Merci :jap:


 
???
 
Et pourquoi ça ? C'est pas un souci normalement : https://runnable.com/docker/python/ [...] pplication    
 
et d'autres infos : https://www.linickx.com/docker-your-python-scripts
 
Mais surtout, l'intérêt d'avoir un docker pour juste tourner un script est plus que limité donc autant le lancer sur ta machine qui host tes containers, c'est plus simple.


---------------
Blood is rushing into your muscles and that's what we call The Pump. Your muscles get a really tight feeling, like your skin is going to explode any minute ...
Reply

Marsh Posté le 21-01-2020 à 15:58:35    

bah l'intérêt c'est d'éviter d'avoir python qui tourne en natif sur la machine, mais dans un container :  
plus de flexibilité pour mettre à jour, pour éventuellement tester une version alternative, etc.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed