[PYTHON] Ich habe Teslas API berührt

Was du machen willst

Ich habe gehört, dass Teslas API inoffiziell verwendet werden kann, also habe ich sie sofort berührt Da Sie Fahrzeuginformationen erhalten können, lassen Sie uns diese vorerst mit Python abrufen und Slack benachrichtigen

Vorbereitung

Authentifizierungs-ID


TESLA_CLIENT_ID=81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384
TESLA_CLIENT_SECRET=c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3

Betriebsumgebung usw.

Überblick

--Authentication ist "OAuth2Service"

Skript

teslaapi_test.py


def access_vehicle():
    import json
    from rauth import OAuth2Service #Für die TESLA-API
    import configparser

    config = configparser.ConfigParser()
    config.read('config.conf')
    section = 'development'
    
    teslaID = config.get(section,'teslaID')
    password = config.get(section,'password')

    tesla = OAuth2Service(
        client_id = config.get(section,'client_id'),
        client_secret = config.get(section,'client_secret'),
        access_token_url = "https://owner-api.teslamotors.com/oauth/token",
        authorize_url = "https://owner-api.teslamotors.com/oauth/token",
        base_url = "https://owner-api.teslamotors.com/",
        )
    data = {"grant_type": "password",
        "client_id": config.get(section,'client_id'),
        "client_secret": config.get(section,'client_secret'),
        "email": teslaID,
        "password": password}

    session = tesla.get_auth_session(data=data, decoder=json.loads)
    access_token = session.access_token
    my_session = tesla.get_session(token=access_token)

    url = 'https://owner-api.teslamotors.com/api/1/vehicles/'
    vehicles = my_session.get(url).json()['response'][0]
    mycar = vehicles['id_s']

    return mycar,my_session

def get_vehicle_status():
    import json
    import datetime
    from rauth import OAuth2Service #Für die TESLA-API

    mycar,my_session = access_vehicle()

    url_vehicle_state = "https://owner-api.teslamotors.com/api/1/vehicles/{:}/vehicle_data".format(mycar)
    resp = my_session.get(url_vehicle_state).json()

    return resp

Erstellen Sie Folgendes als Einstellungsdatei

config.conf


[development]
#tesla
teslaID = 'Benutzeridentifikation'
password = 'Passwort'
client_id = '81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384'
client_secret = 'c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3'

Slack-Benachrichtigung

Benachrichtigungen sind mit Incoming-Webhook einfach. https://api.slack.com/messaging/webhooks#posting_with_webhooks

Slack-Benachrichtigung


import slackweb

slack = slackweb.Slack(url="Webhook-URL")
slack.notify(text="Reisestrecke: {}[km]".format(resp['response']['battery_range'] * 1.60934))

Das Ergebnis sieht so aus slack_incoming.png

danach

Um den Status zu erhalten und die Benachrichtigung regelmäßig zu senden, werde ich sie an GAE senden und mit cron auslösen oder die Weckverarbeitung aktivieren, damit sie auch dann abgerufen werden kann, wenn sich das Fahrzeug im Ruhezustand befindet.

Recommended Posts

Ich habe Teslas API berührt
Ich habe versucht, die COTOHA-API zu berühren
jupyter ich habe es berührt
Ich habe versucht, Python zu berühren (Installation)
Ich habe eine Web-API erstellt
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich habe versucht zu debuggen.
Ich habe versucht, Pythons GUI-Bibliothek "PySimple GUI" zu berühren.
Ich habe versucht, PredNet zu lernen
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, SparseMatrix zusammenzufassen
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, unsere Dunkelheit mit der Chatwork-API aufzudecken
Ich habe versucht, Deep VQE zu implementieren
[Erste COTOHA-API] Ich habe versucht, die alte Geschichte zusammenzufassen
Ich habe versucht, API list.csv mit Python aus swagger.yaml zu erstellen
Ich habe die Naro-Roman-API 2 ausprobiert
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe die neuartige API von Naruro ausprobiert
Ich habe versucht, Realness GAN zu implementieren
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, meinen Lieblingssänger (SHISHAMO) mit der Spotify-API zu analysieren
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, der CPython-Implementierung ein Post-Inkrement hinzuzufügen
Ich habe versucht, Optuna die Nummer lösen zu lassen
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, TSP mit QAOA zu lösen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
API-Erklärung zum Berühren von Mastodon aus Python