De Jeedore à Tydom2mqtt pour les NOOB (par un NOOB)

Bonjour à tous,

L’abandon du plugin Jeedore, nécessaire pour passer à Debian 12, m’a fait bien suer :hot_face:

Plutôt que d’ouvrir 12(…) posts sur diverses questions, j’ai créé ce post dont le « message initial » explique pas-à-pas comment le faire sur Jeedom, le tout avec des connaissances trop basiques et trop peu de temps pour rentrer dans le détails de pourquoi et du comment

En espérant que ça serve à d’autre NOOB comme moi :sweat_smile:

.
.

PHASE 1 : INSTALLATIONS DES PLUGINS NECESSAIRES

Pas de grande difficultés pour cette partie…
(EDIT : enfin, ça, c’est que je croyais :sweat_smile::sweat_smile::sweat_smile:)

Via le market, on installe sur Jeedom :

Ici c’arrête normalement la « PHASE 1 »…
Mais j’ai eu pas mal de problèmes lors de la PHASE 2 (voir ci-dessous).
Je vous donc directement les soucis rencontrés lors de la phase 2, et vous donne les solutions que j’ai dû mettre en place.

TROUBLESHOOT #1
Une fois le plugin Docker Management installé, sur Debian, la commande

docker version

me retournait ceci :

J’ai donc dû tapper la commande suivante :

sudo groupadd docker #au cas où le groupe n'existerait pas encore
sudo usermod -aG docker $USER

Clôturer la session ssh et la relancer (pas besoin de reboot)

Maintenant, la commande

docker version

retournait ceci :

image

Ca semble mieux… semble… :sweat_smile::sweat_smile::sweat_smile:

TROUBLESHOOT #2

Mais c’était pas encore ça !

Lors de la sauvegarde du docker, une fois le docker-compose complété (voir ci-dessous), j’avais message d’erreur « Verions API 1.41, minimum 1.44 nécesaire ».

Après avoir essayé pas mal de truc (décrits ci-dessous), j’ai testé ceci :

sudo apt-get update
sudo apt-get install docker-compose-plugin
sudo apt-get install docker-compose

J’avoue avoir testé la 3ème ligne « au feeling et comme un bourrin » (non, je n’y connais rien… mais c’est l’avantage des environnement de développement :grin::roll_eyes:
Cette 3ème ligne de code demande un validation, désinstalle un tas de truc et en installe un tas d’autres.

Pour info :

The following packages were automatically installed and are no longer required:
  libslirp0 pigz slirp4netns

Use 'sudo apt autoremove' to remove them.

The following additional packages will be installed:
  cgroupfs-mount containerd criu docker.io libintl-perl libintl-xs-perl libmodule-find-perl libnet1 libproc-processtable-perl libprotobuf-c1 libprotobuf32 libsort-naturally-perl needrestart python3-attr
  python3-docker python3-dockerpty python3-docopt python3-dotenv python3-json-pointer python3-jsonschema python3-protobuf python3-pyrsistent python3-rfc3987 python3-texttable python3-uritemplate
  python3-webcolors python3-websocket python3-yaml runc tini

Suggested packages:
  containernetworking-plugins docker-doc aufs-tools btrfs-progs debootstrap rinse rootlesskit xfsprogs zfs-fuse | zfsutils-linux needrestart-session | libnotify-bin iucode-tool python-attr-doc
  python-jsonschema-doc

The following packages will be REMOVED:
  containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras

The following NEW packages will be installed:
  cgroupfs-mount containerd criu docker-compose docker.io libintl-perl libintl-xs-perl libmodule-find-perl libnet1 libproc-processtable-perl libprotobuf-c1 libprotobuf32 libsort-naturally-perl needrestart
  python3-attr python3-docker python3-dockerpty python3-docopt python3-dotenv python3-json-pointer python3-jsonschema python3-protobuf python3-pyrsistent python3-rfc3987 python3-texttable
  python3-uritemplate python3-webcolors python3-websocket python3-yaml runc tini

0 upgraded, 31 newly installed, 4 to remove and 0 not upgraded.

Au final, j’ai ceci :

image

Donc quelque chose qui ressemble à un vrai downgrade, avec ce qui semble être une API en version 1.41 (qui accepte une version 1.21 minimum) au lieu de 1.53 (qui accepte une version 1.44 minimum, ce qui était le message d’erreur que j’avais.
.
.

PHASE 2 : INSTALLATION DU DOCKER tydom2mqtt

Si vous rencontrez des soucis dans cette partie, allez voir les « Troubleshoot #x » de la phase 1 :wink: )

Dans le plugin [Docker Management], créer un nouvel équipement.

  • Récupérer les informations de la TYDOM sur le plugin Jeedore :

  • Récupérer les information de MQTT Manager :
    Dans le champ « Authentification », vous avez le « MQTT_USER » et le « MQTT_PASSWORD » qui sont séparé par un « : »)
    Le MQTT_HOST est l’IP de votre Jeedom

  • Bien faire attention à Utiliser le même « Nom du conteneur » dans le plugin que pour le « container_name » dans la Docker Compose (comme mentionné dans la doc du plugin).

  • Sélectionner « Jeedom Docker Compose » dans le champ « Mode de création »

  • Rédiger le « docker compose » (voir ci-dessous, merci @ROLAND2794 !)

services:
  tydom2mqtt:
    image: ghcr.io/tydom2mqtt/tydom2mqtt
    container_name: tydom2mqtt
    restart: unless-stopped
    environment:
      - TYDOM_MAC=001AAAAAAA03
      - TYDOM_PASSWORD=MotDePasseTydom
      - TYDOM_IP=192.168.1.xyz
      - MQTT_HOST=192.168.1.yzy	
      - MQTT_USER=jeedom
      - MQTT_PASSWORD=azertyQSDFG12345

Pensez bien à « activer » l’équipement.

Plusieurs personnes qui m’ont aidé pour cette partie m’on signalé avoir eu des soucis lors de la création du docker-compose.
Si c’est le cas (au moment de l’enregistrement, vous avez un message d’erreur ET que avez déjà suivi les « TROUBLESHOOT #x » de la PHASE 1, pensez à créer un nouvel équipement à chaque tentative (tydom2mqtt001, puis tydom2mqtt002, etc…
Personnellement, ça a fonctionné au 003 :wink:

Au final, ça donne quelque chose comme ça (avec in ID qui est créé si tout se passe bien :

.
.

PHASE 3 : MQTT Discovery

Une fois que le container tydom2mqtt est en place,

  1. Cliquer que le bouton « Copier la configuration depuis MQTT Manager »
  2. Sauvegarder + relancer le daemon
  3. vous devriez voir apparaitre un « topics » dans le champs « autres Topics découverts mais non-souscrits »
  4. cliquez sur le « + » de ce topic pour le faire remonter dans le « Topics racines des équipements »
  5. Sauvegarder + relancer le daemon

Et on récupère les équipements comme pas magie ! (merci @Mips pour cet excellent plugin !!!)

Pour information, il me manquait quelques éléments…
En allant fouiller directement sur l’appli Tydom (depuis mon smartphone), je me suis rendu compte que 2 équipements étaient « désactivé » dans l’appli; sans doute car il n’avaient plus comminuqié depuis trop lontmeps avec la box Tydom.

J’aurai sué, mais comme toujours, heureux (et fier) d’y être arrivé !

Merci à toute la communauté pour l’aide !

1 « J'aime »

Rebonjour,

avant de me faire incendier, je précise que je suis passé là :

Voilà où j’en suis : lorsque je lance la commande « Démarrer » du docker créé (en cliquant sur le bouton « Tester »):

j’ai un message d’erreur qui apparaît :

image

Erreur exécution de la commande [_TEST][Tydom2MQTT][Démarrer] : Erreur d'exécution de la commande : sudo docker start 2>&1 (1) => ["docker: 'docker start' requires at least 1 argument","","Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]","","See 'docker start --help' for more information"]

au niveau du log, j’ai ceci (pas grand chose…) :

Peut-être ne faut-il pas utiliser cette fonction « démarrer », mais comme je ne connais rien aux container et à leur mode de fonctionnement, je stagne…

Un petit coup de pouce serait le bienvenu :wink: (sans m’incendier si possible :sweat_smile:)

Je ne sais pas si c’est un effet de l’affichage mais l’indentation pour mqttpasword semble fausse dans la copie d’écran. La copie en texte préformaté semble elle correct.

La ligne version est normalement devenue inutile.

Docker

Oui, c’est parce que le mot de passe est (trop) long.
J’ai fais l’indentation à la main (1 espace en début de ligne; puis 2, puis 3…)
Comme le mot de passe est long, le texte s’affiche bizarrement, en effet…

J’ai essayé sans, mais j’ai toujours le même message d’erreur…

Y a-t-il qqch à faire de particulier sans Jeedom pour permettre l’utilisation de docker (à l’exception de l’installation du Docker Magnagement je veux dire…)

Je trouve ceci dans la doc du plugin:

Faut-il installer Docker aussi ? (Plugin non officiel)

:scream:
Je commencerai par là alors. C’est deux espaces.
Pourquoi n’êtes vous pas partie d’une version fonctionnelle ?

Bonjour,
J’ai juste utilisé Docker officiel et ensuite la création du docker avec cette conf mes autres essais avaient tous échoués.
Une fois le docker créé et qui tourne, MqttDiscovery fait le reste et découvre tout :slight_smile:

services:
  tydom2mqtt:
    image: fmartinou/tydom2mqtt:latest
    container_name: tydom2mqtt
    restart: unless-stopped
    environment:
      DELTADORE_LOGIN: "ton mail@xxxx.com"       # ton compte cloud Tydom
      DELTADORE_PASSWORD: "mdp"          # mot de passe cloud
      TYDOM_MAC: "00xxxxxxxxx"                 # MAC de ta box Tydom
      TYDOM_IP: "192.168.0.62"                  # optionnel si accès cloud, sinon laisse vide
      MQTT_HOST: "192.168.0.129"                # IP du broker MQTT
      MQTT_PORT: 1883
      MQTT_USER: "User mosquitto"
      MQTT_PASSWORD: "mdp mosquitto"

Essayez de faire un apt update & apt upgrade si pas encore fait ?

Bonjour,
Il me semble que j’étais passé en version de docker 3.9 quand j’avais eu ce pb mais je n’ai pas noté la commande.
Au fait j’ai mis la version beta de docker management, au cas où.
Cordialement

Bonjour,

Je m’étais également galéré entre l’édition du fichier texte pour docker compose:
( il faut vraiment faire attention aux espaces et tabulations et ne pas hésiter à chaque fois de refaire un nouvel équipement)
ensuite j’ai trouvé le même problème de compatibilité entre le client version 1.14 et l’API.
De mes recherches j’ai conclu à
Problème de compatibilité de la version du client de docker compose avec la version d’API
ma solution :
dowgrader la version de docker compose dans le fichier plugins/docker2/resources/post-install.sh

changer :

if [ $(uname -m) == 'armv7l' ]; then
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.39.0/docker-compose-linux-armv7" -o /usr/local/bin/docker-compose
else
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.39.0/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
fi

en

if [ $(uname -m) == 'armv7l' ]; then
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-armv7" -o /usr/local/bin/docker-compose
else
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose

et pour moi ça marche !

Bonne journée

Roland

et du coup vous postez des lignes de code sans mettre dans un bloc Texte préformaté et donc tout votre code a été reformaté par le forum donc inexploitable :upside_down_face:

j’ai édité le message pour ajouter les blocs mais j’ignore si le contenu est toujours correct

1 « J'aime »

Merci beaucoup Mips,

Désolé pour cette maladresse.

Mais oui la partie essentielle est conservée :c’est bien de passer de la version v2.39.0 à la v2.0.1
Belle journée

Roland

Bonjour @ROLAND2794 ,

Merci pour ton aide.

Mais j’ai déjà ces lignes de codes dans post-install.sh

Ci-dessous, ce que j’ai trouvé en éditant le fichier (=sans rien changer) :

#!/bin/bash

rm /usr/local/bin/docker-compose
rm /usr/bin/docker-compose
if [ $(uname -m) == 'armv7l' ]; then
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-armv7" -o /usr/local/bin/docker-compose
else
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
fi
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Bonjour @Mips

Citation
Essayez de faire un apt update & apt upgrade si pas encore fait ?

J’ai fait la totale avant d’installer Jeedom, une fois Debian 12 fréaichement installé :
sudo apt update
sudo apt upgrade
sudo rpi-update
(sudo reboot)
sudo rpi-eeprom-update -d -a

Je continue de creuser.

J’ai découvert sur Docker Engine API | Docker Docs qu’avec une autre commande pour connaitre la version de docker, on devait obtenir qqch comme ceci :

image

Lorsque je tappe la même commande (« docker version » ; et non pas « docker --version »), j’obtiens ceci :

Le problème semble de plus en plus lié à l’installation de docker par le plugin Jeedom…
…mais je n’ai aucune idée de comment solutionner le problème…

Bonsoir,

Oui c’est un peu ma conclusion aussi

De mon coté :
Docker version : 29.1.5
Docker compose version v2.39.0 ( pas logique puisque j’avais modifié postinstall.sh)
API Version : 1.52

Jeedom en 4.5.2 sur RPI4B en DEBIAN12
Plugin docker management version du 2026-02-17 09:40:34

Tu peux peut etre essayer de modifier le postinstall.sh avec la version 2.39.0

A devenir fou…

J’ai remis mon SSD avec la version de debian 11.

Je ne sais pas pourquoi, mais

  • Docker Mamagement n’est plus installé dans les plugins jeedom
  • En tapant la commande « docker version » sur le rpi4, j’ai ceci :
    image

Du coup, je réinstalle Docker management

Et en relançant la commande « docker version », j’ai ceci :
image

Je me dis « bingo » !

Maiiiiis noooooon…

Là, le docker compose semble être le problème…

L’un de vous pourrait-il me donner un texte docker-compose exast ?
(je veux dire en remplaçant UNIQMUEMENT les informations « sensibles » entre le premier et le dernier caractère par des « * » ?
Histoire d’avoir uen syntaxe parfaite ?

Merci.

Bonjour,
J’ai donné le mien plus haut tu n’a que l’image à changer et mettre celle que tu veux.
Bien cordialement

Bonjour ,

tu peux voir la version de docker compose aussi avec la commande :
docker compose version

sinon voici mes paramètres pour l’équipement en docker compose créés avec un éditeur comme Ultra Edit puis après copié collé
(mon passwd et mac =pas celui là of course)

Ne pas insister à corriger un équipement qui matche pas et en faire un nouveau à chaque fois



services:
  tydom2mqtt:
     image: ghcr.io/tydom2mqtt/tydom2mqtt
     container_name: tydom2mqtt
     environment:
       - TYDOM_MAC=001234567D70
       - TYDOM_PASSWORD=TOTOvaoski
       - TYDOM_IP=192.168.1.xyz
       - MQTT_HOST=192.168.1.yzy	
       - MQTT_USER=jeedom
       - MQTT_PASSWORD=ABCDefghijklmNoABCDEK7BBN012345678olMs7uLFPSxxyyWWzzc212345CA3hAZ

Bonne chance et persévérance.
Roland

Ca y est, ça avance !

Message initial mis à jour.
Merci à tous pour votre aide.

Me reste à finaliser en installant Debian 12 sur mon environnement de production.
Ca me permettra de confirmer la méthode écrite au fil de l’eau

(avis aux modéraschtroumps : attendez un peu avant de clôturer le post. Je viendrai faire coucou quand ce sera bon! :wink: )

1 « J'aime »

Question con…

après avoir redémarrer Jeedom un paquet de fois, je me suis rendu compte que les « valeurs » des équipements ne se mettaient plus à jour (dans mon cas, des détecteur d’ouverture de porte/fenêtres, et plus d’information sur le nombre d’accès ouverts; assez facile à tester…)

J’ai finalement (…j’ai pas écris « NOOB » das le titre pour rien :wink: ) remarqué que le container tydom2mqtt (via ses log) qu’il ne faisait plus rien depuis 10h ce matin…

En cliquant sur « DEMARRER », ça a bien entendu refonctionné… :roll_eyes::roll_eyes::roll_eyes:

N’étant absolument pas au fait de ce qu’un un broker/container/etc…

Faut-il manuellement redémarrer chaque container après un redémarrage de Jeedom ?
Je suppose q’un petit script sera le bienvenu pour faire ça, mais avant de mettre ça en place, je préfère demander (et peut-être me rendre compte que j’ai zappé qqch lors de l’installation de MQTT Management ou de la création du container tydom2mqtt

Merci