TESLAMATE : un email envoyé après chaque recharge !
Vous conduisez une Tesla et utilisez Teslamate ?
Vous vous déplacez parfois chez des amis, de la famille et souhaitez payer le plein de la voiture ?
Voici un script qui va envoyer un email à la fin de chaque recharge :
#!/bin/bash
DB_HOST="192.168.1.193" # IP Teslamate
#
# les informations ci-dessous se trouvent dans le fichier .yml du docker Teslamate
DB_USER="teslamate"
DB_PASS="secret_password"
DB_NAME="teslamate"
EMAIL="email@email.com" # email du destinataire
STATE_FILE="/var/tmp/teslacharge_last_id"
LOG="/var/log/teslacharge.log"
# Log silencieux
exec 1>>"$LOG" 2>&1
echo "$(date) === LANCEMENT ==="
NEW_ID=$(PGPASSWORD="$DB_PASS" psql -h $DB_HOST -U $DB_USER -d $DB_NAME --no-psqlrc --quiet -t -c "SELECT id FROM charging_processes WHERE end_date IS NOT NULL ORDER BY end_date DESC LIMIT 1;" | tr -d ' \n\r')
OLD_ID=$(cat $STATE_FILE 2>/dev/null || echo "0")
ENERGY=$(PGPASSWORD="$DB_PASS" psql -h $DB_HOST -U $DB_USER -d $DB_NAME --no-psqlrc --quiet -t -c "SELECT charge_energy_added FROM charging_processes WHERE id=$NEW_ID;" | tr -d ' \n\r')
echo "$(date) Dernière: ID$NEW_ID $ENERGY kWh (old:$OLD_ID)"
if [[ "$NEW_ID" =~ ^[0-9]+$ && "$NEW_ID" > "$OLD_ID" ]]; then
SUBJECT="TeslaMate: Charge NOUVELLE $ENERGY kWh"
BODY="Nouvelle session terminée !
• ID: $NEW_ID
• Energie ajoutée: $ENERGY kWh
• Timestamp: $(date)"
echo "$BODY" | mail -s "$SUBJECT" -r noreply@monwifi.fr $EMAIL
echo "$NEW_ID" > "$STATE_FILE"
echo "$(date) ✅ EMAIL ENVOYÉ ID$NEW_ID $ENERGY kWh"
else
echo "$(date) ⏭️ Pas nouvelle charge"
fi
