Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Nog iemand met c# en API bezig?

This site may earn commission on affiliate links.

MartinPNL

Member
Supporting Member
Feb 23, 2019
34
7
Amsterdam
Ik heb er al 400 kilometer opzitten met de drie afgelopen week, en het jeukt om meer data uit de auto te halen. Er is een boel info over de API, maar ik zoek nog een voorbeeldje van een C# applicatie die een van de beschikbare libs gebruikt. Heeft iemand dat hier al gedaan?
 
Oooeeh tot nu toe heb ik alleen nog maar van de auto zelf genoten (eerste week), als developer had ik nog niet eens gekeken naar de API mogelijkheden, dat wordt nog meer pret binnenkort. Sorry geen antwoord op je vraag... :)
 
ja hoor, zat leuke dingen mee te doen. zelf heb ik een eigen logger die wat data in influxdb zet. zoek even op c# teslalib. Die heb ik als basis gebruikt maar het is allemaal super simpel.

groot nadeel is dat de tesla api query based is.

daarnaast maak ik gewoon gebruik van teslafi. kost me 5 eur per maand en geeft me alle data die ik zou willen inzien. daar kun je het zelf niet voor maken maar ik doe het gewoon voor de leuk
 
  • Helpful
Reactions: PascalH
ja hoor, zat leuke dingen mee te doen. zelf heb ik een eigen logger die wat data in influxdb zet. zoek even op c# teslalib. Die heb ik als basis gebruikt maar het is allemaal super simpel.

groot nadeel is dat de tesla api query based is.

daarnaast maak ik gewoon gebruik van teslafi. kost me 5 eur per maand en geeft me alle data die ik zou willen inzien. daar kun je het zelf niet voor maken maar ik doe het gewoon voor de leuk
Hè mooi! Ik had de libs al gevonden, en even met postman gespeeld en de auto info met mijn auto id opgehaald Ik had nog niet in detail naar de libs gekeken, maar zit daar de kennis in van de lijst strings die ik terug krijg van vehicle? Uit mijn hoofd een array met strings van drie of vier letters. Kennelijk codes voor wat er allemaal in de auto zit.

Ook teslafi gezien natuurlijk, maar die geeft niet wat ik graag zou willen.

Ik ben niet echt fluent met c# en heb altijd moeite met de start, bijv. integreren van de lib dll in het project, heb je daar toevallig een voorbeeld project van om te delen?

En qua libs, ik heb er drie gezien geloof ik, allemaal gebaseerd op Tim Dorr, zijn ze allemaal gelijk/even goed/slecht
?
Voor meelezers: Introduction - Tesla JSON API (Unofficial)
En libs:
JSkimming/tesla-net
morrisonbrett/tesla
razfriman/TeslaLib
 
  • Like
Reactions: PascalH
Ik ben al ruim een jaar met de API bezig, in de vorm van mijn dienst TesLender (de focus ligt op huurders en verhuurders, maar het hoeft niet op die manier gebruikt te worden). Het is weleenswaar geen C# maar vooral PHP. Mochten jullie nog API vragen hebben dan ben ik altijd bereid om die te beantwoorden en mensen verder te helpen. Als er iets is dat je gewoon wil hebben dan kan ik het misschien ook aan mijn dienst toevoegen, dat scheelt jullie dan een hoop gedoe. Echter snap ik natuurlijk dat het zelf voor elkaar krijgen veel leuker is.
 
  • Like
Reactions: PascalH and Hbrink
Leuke dienst!
Ik zoek voornamelijk de odometer data, liefst realtime. Maar ik begrijp dat 1 keer per halve seconde momenteel alleen maar mogelijk is.
Zou ook voldoende moeten zijn.
Ik dacht deze hiervoor te gebruiken: GET /api/1/vehicles/{id}/data_request/vehicle_state
Ik hobby nog wat door :).
 
  • Like
Reactions: SeBsZ
Waarom wil je elke halve seconde de odometer uitlezen?

Welke taal je gebruikt maakt niks uit. Het is een REST JSON API. Wat een slechte API ook naar mijn mening en ook heel erg beperkt en traaaaaaag. Het laatste door dat we altijd lekker via de USA gaan.
 
Ja, beetje raar, we rijden al bijna 30 jaar deze rit.
Daarvoor heb ik de gemiddelde snelheid nodig, gebaseerd op de starttijd en de afgelegde weg. Op elk willekeurig punt van de rit zou de gemiddelde snelheid 42km moeten zijn.
Ik gebruik nu een programma dat de pulsen van de pulsegever van de auto telt en op basis daarvan de berekeningen doet en op het scherm laat zien wat de gemiddelde snelheid is, en wanneer we moeten stempelen :). We rijden wel eens fout, in dat geval trekt het programma de fout gereden afstand af van de afgelegde weg om een correcte afstand te houden waarmee de gemiddelde snelheid mee berekend kan blijven worden.
Korte uitleg.....

En C# omdat ik het beste ken..., en heeft een GUI voor de weergave, en eenvoudige methodes om de correctie uit te voeren bij fout rijden.
Al met al draait de applicatie in een weekend 6 tot 8 uur per dag, dus wel een beetje stabiel, en realtime. Benieuwd of de API een beetje werkt.

Loopt de odometer stand een beetje realtime mee of loopt ie meer dan een minuut achter? In dat laatste geval zou ik toch op een interne bus moeten gaan zitten, liever niet. Ik ga het zien......
 
Lijkt me meer iets voor een GPS tracker op je mobiel.

De API geeft alle huidige data terug. Als je dat 'realtime' vind dan zou het dus werken. Er was eerst een streaming API maar die lijkt niet meer te functioneren.

De API heeft *meestal* een response tijd van tussen de 150 en 400 milliseconden dus je zou de API 2x per seconden aan kunnen roepen maar ik denk dat Tesla je (terecht) throttled als je hun API zo gaat bestoken.

Elke response bevat een timestamp (epoch linux time diff) die je kunt gebruiken. Zo kun je eenvoudig 2 responses vergelijken. De odometer value in de response is in mijlen maar dat kun je eenvoudig converteren naar kilometers.
 
Tja, helaas loopt het traject door de Ardennen en dat is gps af en toe weg...
Ik denk nu aan die frequentie maar als ik het aan de praat heb dan kan dat definitief bepalen.
Goed idee om de timestamp mee te nemen, ik weet nog niet hoe dat te integreren, en of dat nodig is. Alle logica gaat nu uit van starttijd, en verlopen tijd in de computer op de computer klok.
 
Goed idee om de timestamp mee te nemen, ik weet nog niet hoe dat te integreren, en of dat nodig is. Alle logica gaat nu uit van starttijd, en verlopen tijd in de computer op de computer klok.

Dan heb je toch feitelijk maar 2 zaken nodig en dat is odometer en tijd? Geen idee waarom je dan 2x per seconde de API zou moeten bevragen want als je dit 2x per minuut doet heb je daarna verstreken tijd + afgelegde afstand en kun je de gemiddelde snelheid bepalen. Desnoods doe je het ''on-demand" dus bijvoorbeeld 2x per minuut standaard maar af en toe een geforceerde query.

Als je in de Ardennen gaat rijden dan zit je wellicht ook nog met de dekking van je 3G/4G signaal en als dat weg valt kun je de Tesla API niet eens bevragen.
 
Dan heb je toch feitelijk maar 2 zaken nodig en dat is odometer en tijd? Geen idee waarom je dan 2x per seconde de API zou moeten bevragen want als je dit 2x per minuut doet heb je daarna verstreken tijd + afgelegde afstand en kun je de gemiddelde snelheid bepalen. Desnoods doe je het ''on-demand" dus bijvoorbeeld 2x per minuut standaard maar af en toe een geforceerde query.

Als je in de Ardennen gaat rijden dan zit je wellicht ook nog met de dekking van je 3G/4G signaal en als dat weg valt kun je de Tesla API niet eens bevragen.

Ja, ik verwacht dat het wel meevalt, moet wat proefrijden denk ik.

En 3G/4G, dat lijkt mee te vallen maar we hebben tot nu toe alleen ervaring met GPS wegvallen tijdens het rijden. Dus ook keertje proefrijden... :)
 
upload_2019-3-12_8-30-16.png

En daar is de kmstand.... :)
 
De odo-meter wordt in 3 cijfers achter komma door Tesla teruggegeven (de code van Martin converteert dat van miles naar km's waardoor de precisie ineens erg oploopt. Maar oke, 1/1000ste mijl komt overeen 161 cm, dat lijkt mij wel mogelijk voor de auto om redelijk correct te registeren (afhankelijk van de wijze waarop de odo-meter werkt, met omwentelingen of met GPS info).
 
  • Informative
Reactions: Merijn