Aller au contenu
View in the app

A better way to browse. Learn more.

Forum Automobile Propre

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[App Tierce] TeslaMate MQTT Telegram Bot

Featured Replies

Posté(é)

@gourou

Ton idée était la bonne, j'ai enfin réussi à faire le build sur mon RPI sans erreur de compilations, mais .......Telegram ne m’envoie rien pour l'instant .

 

 

 

Posté(é)

Bon j'avance pas 😂 avec mon Raspberry et l'envoi par Telegram de TeslaMate MQTT , je reçois bien les topics dans les log's de teslamatetelegrambot_1 mais pas de reception via Télégram. Cela fonctionne avec une machine en x64 avec la configuration de @gourou,

J'ai (me semble t'il) visiblement réussi le build......

 

Screenshot_659.png

Posté(é)

Hello @gourou & @Mir

 

@gourou Est-ce que tu pourrais faire une modification de ton image télégram afin de mettre la date avec l'heure en premier (avant le détail du véhicule). Je ne peux faire cette modif car la procédure d'install de @Mir ne fonctionne pas pour moi sur un serveur x64, ni ARM7.(surement une librairie manquante)

L'envoi de msg ne fonctionne pas , et je n'arrive pas à comprendre pourquoi :😢

J'ai migrer l’ensemble des données de mon RPI4 Jeedom et TeslaMate sur ce nouveau serveur pour avoir les notifs telegram.

 

Posté(é)
  • Auteur

@dranreb38 Bonjour, Est-ce que vous pouvez coller votre fichier docker-compose.yml et le Dockerfile ici svp ?

Merci 🙂

Posté(é)
Il y a 4 heures, Mir a dit :

@dranreb38 Bonjour, Est-ce que vous pouvez coller votre fichier docker-compose.yml et le Dockerfile ici svp ?

Merci 🙂

Bonjour @Mir

Voici mon fichier docker-compose.yml

version: "3"

services:
  teslamatetelegrambot:
    image: teslamatetelegrambot/teslamatetelegrambot:latest
    restart: unless-stopped
    environment:
      - MQTT_BROKER_HOST=192.168.1.103   # le nom "mosquitto" sera automagiquement résolu avec l'IP du container ad'hoc
      - MQTT_BROKER_PORT=1883 #optional, default 1883
      - TELEGRAM_BOT_API_KEY=xxxxxxx # à changer selon votre profil
      - TELEGRAM_BOT_CHAT_ID=xxxxxxx # à changer selon votre profil
      - LANGUAGE=FR # to be changed : FR stands for French / EN stands for English
      - GPS=True    # or False : includes car location map in Telegram message, default False
      - CAR_ID=1    # Your "n"th Tesla car in your inventory... default 1st one
    ports:
      - 1883
    build:
      context: .
      dockerfile: Dockerfile

Seul modif MQTT_BROKER_HOST= adresse IP de mon Teslamate car le nom de mosquitto n'est pas résolu.

et mon Dockerfile

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim-buster

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE 1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED 1

# install the OS build deps
RUN apt-get update && apt-get install -y \
    build-essential \
    libffi-dev \
    libssl-dev \
    python-dev \
    openssl \
 && rm -rf /var/lib/apt/lists/*

# Install pip requirements
ADD src/requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
ADD . /app

# Switching to a non-root user, please refer to https://aka.ms/vscode-docker-python-user-rights
RUN useradd appuser && chown -R appuser /app
USER appuser

# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python", "./src/teslamte_telegram_bot.py"]

Pour info sur mon Raspberry (RPI4 ARM7) et sur les recommandations de @gourou j'ai rajouté dans le fichier requirements.txt

cryptography==3.3.2

sinon pas possible de faire le build (erreur de compilation) voir détails dans les pages précédentes.

et depuis votre git https://github.com/Mirrdhyn/TeslaMate_Telegram_Bot-1 

 

 

 

Posté(é)
  • Auteur

Je regarde ça avec mon ordi demain matin ou avant si j’arrive à me dégager du temps.

Au feeling, j’avais rajouté la dépendance requests dans le fichier requirements.txt

Ensuite, le fichier docker-compose.yml j’ai viré l’image Telegram bot pour utiliser le docker-compose build que j’ai indiqué dans le dépôt.

Enfin, en lançant docker-compose build puis docker-compose up -d ça devrait être bon.

Sans ça, l’image par défaut n’a pas les infos pour envoyer les messages.

J’espère que ça va vous aider 🙂

Posté(é)

Si je comprends bien il faudrait faire un build avec les infos de l'image Telegram bot , puis modifier le docker-compose.yml sans les infos de l'image Telegram bot et lancer docker-compose up -d

C'est bien cela ?

 

Posté(é)

A la demande de @dranreb38 j'ai ajouté une option permettant de positionner la date et l'heure d'envoi du message en haut, en bas ou de ne pas du tout horodater le message. Voici les nouvelles options (variables) à définir :

 

Environnement variables :

      - MQTT_BROKER_HOST=mosquitto_IP                  # IP or FQDN
      - MQTT_BROKER_PORT=mosquitto_PORT            # (default 1883)
      - TELEGRAM_BOT_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx   # See Telegram doc https://core.telegram.org/
      - TELEGRAM_BOT_CHAT_ID=xxxxxxxxxxxxxx                   # See Telegram doc https://core.telegram.org/
      - LANGUAGE=EN                             # FR (french) is also available (default ENglish)
      - GPS=True                                       # or False : includes car location map in Telegram message, default False
      - CAR_ID=1                                       # Your "n"th car in your Tesla's inventory... default 1st one
      - TIMESTAMP=bottom                       # prints the date at [bottom|top|none] of each message, none won't timestamp.

 

 

Sources : https://github.com/gouroufr/teslamate-telegram

Docker prêt à l'usage : https://hub.docker.com/r/gouroufr/teslamate-telegram

Modifié par gourou

Posté(é)

J'utilise un autre broker MQTT que celui de Teslamate avec une authentification. J'ai essayé les params MQTT_BROKER_USERNAME et MQTT_BROKER_PASSWORD sans succès car ils ne sont pas implémentés. Y-a-t-il une solution ?

Posté(é)

Le client MQTT utilisé semble supporter l'authentification...

 

Voir ici : https://www.eclipse.org/paho/index.php?page=clients/python/docs/index.php#connect-reconnect-disconnect

auth

a dict containing authentication parameters for the client:

auth = {'username':"<username>", 'password':"<password>"}

 

Il faudrait tester pour voir... Il te faut modifier les subscribe et rajouter l'authentification.

Posté(é)

Merci @gourou pour la modification , mais visiblement cela ne fonctionne pas.

Plus d'horodatage dans le message Telegram

j'ai effectué la modification dans le docker-compose

Screenshot_666.png

Posté(é)

Vérifie le numéro de version, il l'indique dans son message au lancement ?

 

✔️ connecté au broker MQTT avec succès
Version 20210504-02

Posté(é)

J'ai l'impression que les variables d’environnement ne sont pas lues, j'ai modifié la variable GPS=False -> les infos de positionnement sont bien dans le msg telegram.

 

Modifié par dranreb38

Posté(é)
Le 04/05/2021 à 17:13, denisvic a dit :

J'utilise un autre broker MQTT que celui de Teslamate avec une authentification. J'ai essayé les params MQTT_BROKER_USERNAME et MQTT_BROKER_PASSWORD sans succès car ils ne sont pas implémentés. Y-a-t-il une solution ?

 

J'ai implémenté l'authentification optionnelle et ajouté deux variables :

      - MQTT_BROKER_USERNAME=username                  # (optional)
      - MQTT_BROKER_PASSWORD=password                  # (optional)
Posté(é)

Hello @Miret @gourou

 

Parmi les améliorations envisageable est-il possible d'avoir la possibilité de saisir dans les variables l'url ou l'adresse IP de mon TeslaMate, ce qui permettrais à l'arrivé du message Télégram d’accéder directement à la cartographie de TeslaMate, et de suivre en temps réel les déplacement  du véhicule 😀.

Est-ce que je suis le seul à ne pas pouvoir faire le build et lancer la procédure de @Mir. Pour l'instant j'utilise l'image de @gourou mais je ne peux pas faire les modifications ....😪

Plus de date et heure dans le message télégram depuis les dernières version .

 

Posté(é)

J'ai poussé une mise à jour afin de pouvoir identifier les soucis.

Il faudrait mettre à jour le container et le relancer avec la variable DEBUG=True

Puis m'envoyer un copier/coller des logs console correspondants.

Posté(é)

Je viens de faire la mise à jour avec la variable  Debug=True

voici le log

--------------------------------------------,
Env Var CAR_ID    : 1,
Env Var LANGUAGE  : FR,
Env Var GPS       : True,
Traceback (most recent call last):,
  File "./teslamte_telegram_bot.py", line 91, in <module>,
    print("Env Var TIMESTAMP : " + TIMESTAMP),
TypeError: can only concatenate str (not "builtin_function_or_method") to str,

Et depuis ta dernière version 07/05/2021 12h40

J'ai cette erreur :

Traceback (most recent call last):,
  File "./teslamte_telegram_bot.py", line 72, in <module>,
    if os.getenv('TIMESTAMP') != None: HORODATAGE = os.getenv('HORODATAGE').lower,
AttributeError: 'NoneType' object has no attribute 'lower',

 

Posté(é)

Oui je sais... j'ai déjà corrigé ce bug, mais tu as dû télécharger pendant qu'il recompilait la nouvelle version...

Elle fonctionnera (mieux) dans 5 minutes.

 

Désolé.

 

Version 20210507-04

Modifié par gourou

Posté(é)

Je ne vois plus le numéro de version 🙄

--------------------------------------------,
Env Var CAR_ID    : 1,
Env Var LANGUAGE  : EN,
Env Var GPS       : True,
Env Var TIMESTAMP : <built-in method lower of str object at 0x7f519c1fe630>,
Env Var UNITS     : Km,
Mode DEBUG        : True,
--------------------------------------------,
,
 successfully connected to MQTT broker,
07-05-2021 13:00:21 >> teslamate/cars/1/exterior_color : RedMulticoat,
07-05-2021 13:00:21 >> teslamate/cars/1/state : asleep,
07-05-2021 13:00:21 >> teslamate/cars/1/display_name : Carmen,
07-05-2021 13:00:21 >> teslamate/cars/1/est_battery_range_km : 395.66,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c6561c0>),
07-05-2021 13:00:21 >> teslamate/cars/1/model : 3,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c656540>),
07-05-2021 13:00:21 >> teslamate/cars/1/latitude : 45.xxxxxxx,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c6568c0>),
07-05-2021 13:00:21 >> teslamate/cars/1/longitude : 5.xxxxxxxx,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c656d00>),
07-05-2021 13:00:21 >> teslamate/cars/1/odometer : 2530.65,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c65b200>),
07-05-2021 13:00:21 >> teslamate/cars/1/usable_battery_level : 82,
(<class 'TypeError'>, TypeError('can only concatenate str (not "builtin_function_or_method") to str'), <traceback object at 0x7f519c656740>),

Ce qui est curieux :

  1. J'ai mis la variable LANGUAGE=EN   -> message FR dans télégram (Bon pas grave au final)
  2. GPS=False -> GPS présent dans télégram (Bon pas grave au final)

 

Modifié par dranreb38

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.