This is a telegram bot written in Python to:
Send Telegram message every TIMEOUT seconds (default 3600 == 60 minutes)
- In the "Home" geofence
- Not Plugged in
- Under some BATTERY_ALERT level (default 50%).
It uses the MQTT topic which TeslaMate offers.
- A Machine that's always on and runs TeslaMate
- Docker (if you are new to Docker, see Installing Docker and Docker Compose)
- External internet access, to send telegram messages.
- A mobile with Telegram client installed
- your own Telegram Bot, see Creating a new telegram bot
- your own Telegram chat id, see get your telegram chat id
Make sure you fulfill the Requirements.
It is recommended to backup your data first.
This document provides the necessary steps for installation of TeslaMate Telegram Bot on a any system that runs Docker.
This setup is recommended only if you are running TeslaMate Telegram Bot on your home network, as otherwise your telegram API tokens might be at risk.
-
Create a file called
docker-compose.yml
with the following content (adopt with your own values):version: "3" services: teslamatetelegrambot: restart: unless-stopped environment: - BATTERY_ALERT=50 #optional, default 50 - TIMEOUT=3600 #optional, default 60 minutes (in seconds) - MQTT_BROKER_HOST=IP_Adress - MQTT_BROKER_PORT=1883 #optional, default 1883 - MQTT_BROKER_USERNAME=username #optional, only needed when broker has authentication enabled - MQTT_BROKER_PASSWORD=password #optional, only needed when broker has authentication enabled - TELEGRAM_BOT_API_KEY=secret_api_key - TELEGRAM_BOT_CHAT_ID=secret_chat_id ports: - 1883 build: context: . dockerfile: Dockerfile
-
Build and start the docker container with
docker-compose up --build
. To run the containers in the background add the-d
flag:docker-compose up --build -d
Restart the stack with docker-compose up --build
. To run the containers in the background add the -d
flag:
docker-compose up --build -d
A makefile with pylint and hadolint is provided to ensure consistentency and stability.
make test
Testing utilizes docker and the actual built container which will update your docker-cache layers along the way.
All contributions are welcome and greatly appreciated!
Please note that the use of the Tesla API in general and this software in particular is not endorsed by Tesla. Use at your own risk.