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
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.
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.
J’espère que ça va vous aider.
Merci pour ces infos.
Ca ne fonctionne toujours pas
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.