Aller au contenu
Mir

[App Tierce] TeslaMate MQTT Telegram Bot

Messages recommandés

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 🙂

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

Partager ce message


Lien à poster
Partager sur d’autres sites

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 .

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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',

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.