Tuto : Intégrer sa MG dans Jeedom

Salut ,
J’ai un eu un soupçon d’espoir quand j’ai vu que j’avais FullyKiosk configuré avec MQTT avec l’adresse 127.0.0.1:1883
Je l’ai décoché , réinstallé les 2 plugins du tuto et refais mes essais.
Toujours aussi muet :disappointed:
J’espère qu’un beau plugin verra le jour

Oui et non.
Il y a des modifs dsns le code chaque semaine.
Donc faut comparer ce qui est comparable: on ne sait pas quelle version tourne chez ceux qui l’ont

Et c’est pas un problème de compatibilité, c’est le principe du container, il vient avec tout ce qu’il faut mais je me répète, les erreurs de syntaxe là sont vraiment pas normal…
Mais je n’ai pas de mg pour tester

Saic c’est l’entreprise chinoise qui a racheté mg.

Docker permet d’installer un logiciel sans impacter / toucher aux autres logiciels de ton système. C’est quasi comme avoir une autre machine. Très intéressant pour le cas du python.

Oui.

@hudsson
Ton pi est-il à jour ?

Mon fichier docker compose qui fonctionne pour être sur que ce n’est pas un souci d’indentation. As-tu tester avec le courriel plutôt que le numéro de téléphone? Je me logue avec le courriel.

version: "3.7"
services:
  saic-mqtt-gateway:
    image: "saicismartapi/saic-python-mqtt-gateway:latest"
    container_name: "saic-mqtt-gateway"
    restart: always
    environment:
      - MQTT_URI=tcp://192.168.1.xy:1883
      - MQTT_USER=user
      - MQTT_PASSWORD=user
      - SAIC_USER=tel ou courriel
      - SAIC_PASSWORD=mot de passe saic
      - HA_DISCOVERY_PREFIX=homeassistant

Et redonnes le log docker, svp.

Pas si souvent en fait, une fois par moi.

Bon, donc j’ai saisi le principe du bignou et au moins comme ça j’avance en comprenant un peu ce qu’on fait et pas simplement du copier/coller.

Pour mon PI :

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian

Pour le docker :
j’ai refais un copié / collé du tiens, et ça ne change rien.
j’ai essayé avec mon mail, et avec mon tel (en ajoutant la ligne : - SAIC_PHONE_COUNTRY_CODE=33)

Le log du docker de ce matin : (mais tout mes tests donnent exactement le même)

2024-03-30T07:43:50.637723797Z Traceback (most recent call last):
2024-03-30T07:43:50.643373165Z   File "/usr/src/app/./mqtt_gateway.py", line 878, in 
2024-03-30T07:43:50.643485612Z     mqtt_gateway = MqttGateway(configuration)
2024-03-30T07:43:50.643522644Z                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.643556237Z   File "/usr/src/app/./mqtt_gateway.py", line 400, in __init__
2024-03-30T07:43:50.643591237Z     self.publisher = MqttClient(self.configuration)
2024-03-30T07:43:50.643626810Z                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.643659935Z   File "/usr/src/app/publisher/mqtt_publisher.py", line 44, in __init__
2024-03-30T07:43:50.644815298Z     mqtt_client = gmqtt.Client(
2024-03-30T07:43:50.645014673Z                   ^^^^^^^^^^^^^
2024-03-30T07:43:50.645147850Z   File "/usr/local/lib/python3.12/site-packages/gmqtt/client.py", line 155, in __init__
2024-03-30T07:43:50.647565503Z     self._resend_task = asyncio.ensure_future(self._resend_qos_messages())
2024-03-30T07:43:50.648008887Z                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.648136231Z   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 693, in ensure_future
2024-03-30T07:43:50.652182632Z     loop = events.get_event_loop()
2024-03-30T07:43:50.652489298Z            ^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.652627787Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 699, in get_event_loop
2024-03-30T07:43:50.655913095Z     self.set_event_loop(self.new_event_loop())
2024-03-30T07:43:50.656274241Z                         ^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.656407990Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 720, in new_event_loop
2024-03-30T07:43:50.658574446Z     return self._loop_factory()
2024-03-30T07:43:50.658847935Z            ^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.658966320Z   File "/usr/local/lib/python3.12/asyncio/unix_events.py", line 64, in __init__
2024-03-30T07:43:50.660955745Z     super().__init__(selector)
2024-03-30T07:43:50.661207776Z   File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 60, in __init__
2024-03-30T07:43:50.663927928Z     super().__init__()
2024-03-30T07:43:50.664168292Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 421, in __init__
2024-03-30T07:43:50.668379693Z     self._clock_resolution = time.get_clock_info('monotonic').resolution
2024-03-30T07:43:50.668535474Z                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.668570005Z PermissionError: [Errno 1] Operation not permitted
2024-03-30T07:43:50.721857432Z Exception ignored in: 
2024-03-30T07:43:50.721983526Z Traceback (most recent call last):
2024-03-30T07:43:50.722017588Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 724, in __del__
2024-03-30T07:43:50.724139460Z     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
2024-03-30T07:43:50.724689720Z                                 ^^^^^^^^
2024-03-30T07:43:50.724789095Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 443, in __repr__
2024-03-30T07:43:50.726133259Z     f'closed={self.is_closed()} debug={self.get_debug()}>'
2024-03-30T07:43:50.726346801Z                                        ^^^^^^^^^^^^^^^^
2024-03-30T07:43:50.726428884Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 2004, in get_debug
2024-03-30T07:43:50.731167992Z     return self._debug
2024-03-30T07:43:50.731298877Z            ^^^^^^^^^^^
2024-03-30T07:43:50.731335336Z AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
2024-03-30T07:43:50.732249709Z sys:1: RuntimeWarning: coroutine 'Client._resend_qos_messages' was never awaited

Depuis le début, je vois que l’heure du dcoker (ici 07:43) a un décallage d’une heure avec mon Jeedom (il est 08:43). Je ne pense pas que cela a un impact, mais sait on jamais !

Ou est-ce lié à ton debian trop ancien. Si pi et selon les plugins utilisés, un passage a debian 11 est à envisager.

Bonjour @hudsson

Lorsque vous faites un changement dans le code Docker compose, vous devez sauvegarder l’équipement, et exécuter la commande recréer.

Ceci relance l’installation du docker avec les nouveaux paramètres.

La date de création du docker doit changer. Il faut quitter la page et y revenir.

Sans titre

Pour moi ca fonctionne en prod sur PI4, je suis sur debian 10 aussi dernière version de Jeedom
Je viens de créer une VM en debian 11 dernière version de jeedom et ca fonctionne aussi.

Pour info tant que le docker n’est pas en running, pas la peine d’aller plus loin.

image

J’espère que ça va vous aider. :crossed_fingers:

Merci pour ces infos.
Ca ne fonctionne toujours pas :frowning:
J’ai toujours le même message d’erreur

J’en profite pour faire une mise à jour de Pi3… on verra bien si ça débloque quelque chose.

Bon, j’ai fait un mise à jour de ma distribution sans l’upgrader

sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove
sudo apt autoclean
sudo apt clean
sudo reboot

Toujours, le même message d’erreur.

2024-03-30T13:16:36.166857191Z PermissionError: [Errno 1] Operation not permitted
2024-03-30T13:16:36.227103653Z Exception ignored in: 
2024-03-30T13:16:36.227281361Z Traceback (most recent call last):
2024-03-30T13:16:36.227315163Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 724, in __del__
2024-03-30T13:16:36.229751776Z     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
2024-03-30T13:16:36.230091671Z                                 ^^^^^^^^
2024-03-30T13:16:36.230149692Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 443, in __repr__
2024-03-30T13:16:36.231815316Z     f'closed={self.is_closed()} debug={self.get_debug()}>'
2024-03-30T13:16:36.232108284Z                                        ^^^^^^^^^^^^^^^^
2024-03-30T13:16:36.232169118Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 2004, in get_debug
2024-03-30T13:16:36.237307134Z     return self._debug
2024-03-30T13:16:36.237427916Z            ^^^^^^^^^^^
2024-03-30T13:16:36.237462343Z AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
2024-03-30T13:16:36.238275832Z sys:1: RuntimeWarning: coroutine 'Client._resend_qos_messages' was never awaited
2024-03-30T13:16:40.180749496Z Traceback (most recent call last):
2024-03-30T13:16:40.180928454Z   File "/usr/src/app/./mqtt_gateway.py", line 878, in 
2024-03-30T13:16:40.183078921Z     mqtt_gateway = MqttGateway(configuration)
2024-03-30T13:16:40.183420119Z                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.183505744Z   File "/usr/src/app/./mqtt_gateway.py", line 400, in __init__
2024-03-30T13:16:40.184750013Z     self.publisher = MqttClient(self.configuration)
2024-03-30T13:16:40.185095846Z                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.185184909Z   File "/usr/src/app/publisher/mqtt_publisher.py", line 44, in __init__
2024-03-30T13:16:40.185598398Z     mqtt_client = gmqtt.Client(
2024-03-30T13:16:40.185727460Z                   ^^^^^^^^^^^^^
2024-03-30T13:16:40.185765013Z   File "/usr/local/lib/python3.12/site-packages/gmqtt/client.py", line 155, in __init__
2024-03-30T13:16:40.186609022Z     self._resend_task = asyncio.ensure_future(self._resend_qos_messages())
2024-03-30T13:16:40.186890168Z                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.186942251Z   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 693, in ensure_future
2024-03-30T13:16:40.188830218Z     loop = events.get_event_loop()
2024-03-30T13:16:40.189205062Z            ^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.189300166Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 699, in get_event_loop
2024-03-30T13:16:40.191012040Z     self.set_event_loop(self.new_event_loop())
2024-03-30T13:16:40.191296206Z                         ^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.191358602Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 720, in new_event_loop
2024-03-30T13:16:40.193191257Z     return self._loop_factory()
2024-03-30T13:16:40.193490006Z            ^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.193551048Z   File "/usr/local/lib/python3.12/asyncio/unix_events.py", line 64, in __init__
2024-03-30T13:16:40.194030006Z     super().__init__(selector)
2024-03-30T13:16:40.194310683Z   File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 60, in __init__
2024-03-30T13:16:40.194799901Z     super().__init__()
2024-03-30T13:16:40.195059901Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 421, in __init__
2024-03-30T13:16:40.196310525Z     self._clock_resolution = time.get_clock_info('monotonic').resolution
2024-03-30T13:16:40.196621150Z                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.196697816Z PermissionError: [Errno 1] Operation not permitted
2024-03-30T13:16:40.259957036Z Exception ignored in: 
2024-03-30T13:16:40.260124745Z Traceback (most recent call last):
2024-03-30T13:16:40.260158651Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 724, in __del__
2024-03-30T13:16:40.262129899Z     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
2024-03-30T13:16:40.262560003Z                                 ^^^^^^^^
2024-03-30T13:16:40.262695159Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 443, in __repr__
2024-03-30T13:16:40.264131668Z     f'closed={self.is_closed()} debug={self.get_debug()}>'
2024-03-30T13:16:40.265696719Z                                        ^^^^^^^^^^^^^^^^
2024-03-30T13:16:40.265862552Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 2004, in get_debug
2024-03-30T13:16:40.269798956Z     return self._debug
2024-03-30T13:16:40.269938487Z            ^^^^^^^^^^^
2024-03-30T13:16:40.269974007Z AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
2024-03-30T13:16:40.271102861Z sys:1: RuntimeWarning: coroutine 'Client._resend_qos_messages' was never awaited
2024-03-30T13:16:45.133862603Z Traceback (most recent call last):
2024-03-30T13:16:45.134008019Z   File "/usr/src/app/./mqtt_gateway.py", line 878, in 
2024-03-30T13:16:45.136597548Z     mqtt_gateway = MqttGateway(configuration)
2024-03-30T13:16:45.136973538Z                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.137034215Z   File "/usr/src/app/./mqtt_gateway.py", line 400, in __init__
2024-03-30T13:16:45.138577182Z     self.publisher = MqttClient(self.configuration)
2024-03-30T13:16:45.138850515Z                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.138985828Z   File "/usr/src/app/publisher/mqtt_publisher.py", line 44, in __init__
2024-03-30T13:16:45.139796087Z     mqtt_client = gmqtt.Client(
2024-03-30T13:16:45.140021556Z                   ^^^^^^^^^^^^^
2024-03-30T13:16:45.140074785Z   File "/usr/local/lib/python3.12/site-packages/gmqtt/client.py", line 155, in __init__
2024-03-30T13:16:45.140915514Z     self._resend_task = asyncio.ensure_future(self._resend_qos_messages())
2024-03-30T13:16:45.141448586Z                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.141511763Z   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 693, in ensure_future
2024-03-30T13:16:45.143458376Z     loop = events.get_event_loop()
2024-03-30T13:16:45.143765772Z            ^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.143817855Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 699, in get_event_loop
2024-03-30T13:16:45.145746916Z     self.set_event_loop(self.new_event_loop())
2024-03-30T13:16:45.146334624Z                         ^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.146403634Z   File "/usr/local/lib/python3.12/asyncio/events.py", line 720, in new_event_loop
2024-03-30T13:16:45.148436914Z     return self._loop_factory()
2024-03-30T13:16:45.148758216Z            ^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.148811913Z   File "/usr/local/lib/python3.12/asyncio/unix_events.py", line 64, in __init__
2024-03-30T13:16:45.149534569Z     super().__init__(selector)
2024-03-30T13:16:45.149816965Z   File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 60, in __init__
2024-03-30T13:16:45.150512641Z     super().__init__()
2024-03-30T13:16:45.150802589Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 421, in __init__
2024-03-30T13:16:45.152561702Z     self._clock_resolution = time.get_clock_info('monotonic').resolution
2024-03-30T13:16:45.153003577Z                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.153280504Z PermissionError: [Errno 1] Operation not permitted
2024-03-30T13:16:45.211468738Z Exception ignored in: 
2024-03-30T13:16:45.211595405Z Traceback (most recent call last):
2024-03-30T13:16:45.211629050Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 724, in __del__
2024-03-30T13:16:45.213785924Z     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
2024-03-30T13:16:45.214391132Z                                 ^^^^^^^^
2024-03-30T13:16:45.214467434Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 443, in __repr__
2024-03-30T13:16:45.215945974Z     f'closed={self.is_closed()} debug={self.get_debug()}>'
2024-03-30T13:16:45.216317953Z                                        ^^^^^^^^^^^^^^^^
2024-03-30T13:16:45.216508994Z   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 2004, in get_debug
2024-03-30T13:16:45.221584042Z     return self._debug
2024-03-30T13:16:45.221842115Z            ^^^^^^^^^^^
2024-03-30T13:16:45.221945032Z AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
2024-03-30T13:16:45.222869614Z sys:1: RuntimeWarning: coroutine 'Client._resend_qos_messages' was never awaited

Je me répète mais par définition, aucune action sur jeedom (box, système, os etc) ne pourra régler un problème dans le container. C’est le principe de l’isolation.

Bon, j’ai trouvé une solution radicale : sauvegarde de ma config’ + réinstallation complète de raspberry en version 11 + réinstallation complète de Jeedom + restauration de ma sauvegarde.

J’ai enfin une communication qui s’établie avec ma MG, et j’ai bien toutes ses infos avec MQTT Eplorer
Le docker est en fonction.

Par contre, lors de la création de l’équipement avec MQTT Discovery, il me crée pas toutes les commandes !
Je n’ai que ‹ ‹ présent › › et ‹ ‹ rssi › ›.

Pourtant, il me semble que j’ai bien les bonnes informations dans le fichier de configuration.

Je ne trouve pas de moyen de rajouter des lignes de commandes !

J’en doute fort. Ce n’est pas votre équipement mg à mon avis
Quel est le nom de cet équipement?

Le nom de mon équipement est :

MG MG4 Electric LSJXXXXXXXX082012

Concernant le fichier de configuration, je ne met que le début, mais cela donne ça :(j’ai l’impression de retrouver toutes les commandes qui sont lisibles sur MQTT Explorer

{
"select" : {
"LSJXXXXXXXX082012_gateway_refresh_mode" : {
"name" : "Gateway refresh mode",
"device" : {
"name" : "MG MG4 Electric LSJXXXXXXXX082012",
"manufacturer" : "MG",
"model" : "MG4 Electric 2022 WSB/PBC",
"hw_version" : "EH32 S",
"identifiers" : [
"LSJWH4092PN082012"
]
},
"unique_id" : "LSJXXXXXXXX082012_gateway_refresh_mode",
"object_id" : "LSJXXXXXXXX082012_gateway_refresh_mode",
"availability" : [
{
"topic" : "saic/_internal/lwt",
"payload_available" : "online",
"payload_not_available" : "offline"
}
],
"availability_mode" : "all",
"state_topic" : "saic/hudxxxxxx@gmail.com/vehicles/LSJXXXXXXXX082012/refresh/mode",
"command_topic" : "saic/hudxxxxxx@gmail.com/vehicles/LSJXXXXXXXX082012/refresh/mode/set",
"value_template" : " value ",
"command_template" : " value ",
"options" : [
"force",
"off",
"periodic"
],
"enabled_by_default" : true,
"icon" : "mdi:refresh"
},
"LSJWH4092PN082012_heated_seat_front_left_level" : {
"name" : "Heated Seat Front Left Level",
"device" : {
"name" : "MG MG4 Electric LSJXXXXXXXX082012",
"manufacturer" : "MG",
"model" : "MG4 Electric 2022 WSB/PBC",
"hw_version" : "EH32 S",
"identifiers" : [
"LSJXXXXXXXX082012"
]
},
"unique_id" : "LSJXXXXXXXX082012_heated_seat_front_left_level",
"object_id" : "LSJXXXXXXXX082012_heated_seat_front_left_level",
"availability" : [
{
"topic" : "saic/_internal/lwt",
"payload_available" : "online",
"payload_not_available" : "offline"
},
{
"topic" : "saic/hudxxxxxx@gmail.com/vehicles/LSJXXXXXXXX082012/available",
"payload_available" : "online",
"payload_not_available" : "offline"
}
],
"availability_mode" : "all",
"state_topic" : "saic/hudxxxxxx@gmail.com/vehicles/LSJXXXXXXXX082012/climate/heatedSeatsFrontLeftLevel",
"command_topic" : "saic/hudxxxxxx@gmail.com/vehicles/LSJXXXXXXXX082012/climate/heatedSeatsFrontLeftLevel/set",
"value_template" : "{% set v = value | int %}{% if v == 0 %}OFF{% elif v == 1 %}LOW{% elif v == 2 %}MEDIUM{% else %}HIGH{% endif %}",
"command_template" : "{% if value == "OFF" %}0{% elif value == "LOW" %}1{% elif value == "MEDIUM" %}2{% else %}3{% endif %}",
"options" : [
"OFF",
"LOW",
"MEDIUM",
"HIGH"
],
"enabled_by_default" : true,
"icon" : "mdi:car-seat-heater"
},

et ça continue comme ça pour chaque infos

il faudrait un post dédié à la question avec toutes les infos

Ok, je vais ouvrir un autre post.
Je te remercie

Si la voiture dort, je pense que rien n’est remonté.

Antoine

J’ai réveillé la voiture, j’ai effacé l’équipement créé par MQTT Discovery, puis recrée… mais ça ne change rien !

J’ai ouvert un sujet là : Intégration voiture electrique MG4 - Problème de création d’équipement avec MQTT Discovery

Bonjour,
Merci pour ce superbe tuto et merci aussi @Mips pour le plugin MQTT Discovery
J’ai parfaitement réussi à avoir les infos.
Il y a juste une chose que je n’ai pas su indiquer. Ce sont les codes VIN. Celui de la carte grise pas de souci pour le retrouver. Par contre le code générique je ne comprends pas où le récupérer. Pouvez-vous m’orienter ? Je n’ai complété que le début, à savoir LSJXXXXXXXX570
ABRP_USER_TOKEN=LSJXXXXXXXX570=81XXXXX-XXXX-XXXX-XXXX-XXXXXXXX3

Bonjour,
Pour obtenir le code il faut aller dans l’application ABRP et sélectionner votre véhicule

Ensuite sélectionner données temps réel

Puis sélectionner generic sur la droite


Cliquer sur le lien et vous obtiendrez le code.

Quand vous aurez changer le code dans docker, penser à sauvegarder puis exécuter la commande recréer.

Bonjour Monge63, merci d’avoir pris le temps de faire ce complément de tuto. Je vais tester cela de ce pas.