Neues Plugin: TeslaConnect
Einklappen
X
-
-
Hallo BernhardHallo Marius,
ich habe keinen Tesla als Fahrzeug sondern eine Powerwall. Ich fände es cool wenn ich über das Plugin die Stromzähler die am Tesla Gateway, der Steuerung für die Powerwall hängen auslesen könnte so wie sie in der Tesla App auch wiedergegeben werden. Leider habe ich keine Erfahrung in dieser Programmierung. Kann ich dich trotzdem hier irgendwie unterstützen.
Bei mir wird in deinem Plugin als Vehicle ID die Site ID angezeigt. Mit der TestQuery Product_List erhalte ich folgende Rückmeldung (die IDs habe ich ge "xxx" ed:
{
"response":[
{
"energy_site_id":"xxx",
"resource_type":"battery",
"site_name":"xxx",
"id":"xxx",
"gateway_id":"xxx",
"asset_site_id":"xxx",
"energy_left":"10065.842105263158",
"total_pack_energy":"14289",
"percentage_charged":"70.44469245757686",
"battery_type":"ac_powerwall",
"backup_capable":true,
"battery_power":"600",
"storm_mode_enabled":true,
"powerwall_onboarding_settings_set":true,
"sync_grid_alert_enabled":true,
"breaker_alert_enabled":true,
"components":{
"battery":true,
"battery_type":"ac_powerwall",
"solar":true,
"solar_type":"pv_panel",
"grid":true,
"load_meter":true,
"market_type":"residential"
}
}
],
"count":"1"
}
Soweit ich bisher die API recherchieren konnte geht es um folgende Abfragen:
https://owner-api.teslamotors.com/ap...id/live_status
https://owner-api.teslamotors.com/ap...e_id/site_info
Sag gerne wie ich helfen kann das in das Plugin reinzubekommen.
Danke
Bernhard
ich habe die Befehle auf GitHub hinzugefügt. Ich weiss nicht, ob diese funktionieren, da ich selber keine Powerwall habe. Du kannst die angepasste Version vom folgenden Link installieren.
https://github.com/marius-hh/LoxBerr...heads/main.zip
Sag mir doch bitte Bescheid, ob es bei dir funktioniert.
Grüsse
MariusKommentar
-
Hallo Marius,
Hallo Bernhard
ich habe die Befehle auf GitHub hinzugefügt. Ich weiss nicht, ob diese funktionieren, da ich selber keine Powerwall habe. Du kannst die angepasste Version vom folgenden Link installieren.
https://github.com/marius-hh/LoxBerr...heads/main.zip
Sag mir doch bitte Bescheid, ob es bei dir funktioniert.
Grüsse
Marius
also es geht aber nicht mit der Testquery sondern nur mit dem HTTP String selber umgebaut mit anderer ID am Schluss.
Dein Plugin verwendet die "ID" (Rot markiert) aus der PrductList. Es funktioniert aber mit der Energy_Site_ID aus der ProductList. Das wäre erstmal nicht schlimm, kann man ja im Trigger aus dem Miniserver ändern (hab ich aber noch nicht ausprobiert)
Rückmeldung der Live Status Abfrage: /admin/plugins/teslaconnect/tesla_command.php?action=live_status&vid=energy_si te_ID
{"response":{"solar_power":"0","energy_left":"0 "," total_pack_energy":"14259","percentage_charged":"0 ","backup_capable":true,"battery_power":"0","l oad_ power":"611","grid_status":"Active","grid_services _active":false,"grid_power":"611","grid_services_p ower":"0","generator_power":"0","island_status":"o n_grid","storm_mode_active":false,"timestamp":"202 2-11-17T23:07:43+01:00","wall_connectors":[]}}
In der Rückmeldung wäre grundsätzlich alles drin was man braucht. Solar Energie, Hausverbrauch, Powerwall und Stromnetz.
Rückmeldung der Site Info Abfrage: /admin/plugins/teslaconnect/tesla_command.php?action=site_info&vid=energy_site _ID
{"response":{"id":"xxx","site_name":"xxx","back up_ reserve_percent":"0","default_real_mode":"self_con sumption","installation_date":"2022-05-12T12:00:44+02:00","user_settings":{"storm_mode_en abled":true,"powerwall_onboarding_settings_set":tr ue,"sync_grid_alert_enabled":true,"breaker_alert_ e nabled":false},"components":{"solar":true,"solar_t ype":"pv_panel","battery":true,"grid":true,"backu p ":true,"gateway":"teg","load_meter":true,"tou_ capa ble":true,"storm_mode_capable":false,"flex_energy _ request_capable":false,"car_charging_data_supporte d":false,"off_grid_vehicle_charging_reserve_sup por ted":false,"vehicle_charging_performance_view_ena b led":false,"vehicle_charging_solar_offset_view_en a bled":false,"battery_solar_offset_view_enabled":tr ue,"solar_value_enabled":true,"energy_value_heade r ":"Energy Value","energy_value_subheader":"Estimated Value","energy_service_self_scheduling_enabled":tr ue,"show_grid_import_battery_source_cards":true," s et_islanding_mode_enabled":true,"wifi_commissionin g_enabled":true,"backup_time_remaining_enabled":tr ue,"battery_type":"ac_powerwall","configurable":t r ue,"grid_services_enabled":false,"ITC_cliff":"1", " edit_setting_permission_to_export":true,"edit_sett ing_grid_charging":true,"edit_setting_energy_expor ts":true},"version":"22.18.3 21c0ad81","battery_count":"1","tou_settings":{"opt imization_strategy":"economics","schedule":[{"target":"off_peak","week_days":[1,0],"start_seconds":"0","end_seconds":"0"}]},"nameplate_power":"5000","nameplate_energy":"1 35 00","installation_time_zone":"Europe/Berlin","max_site_meter_power_ac":"1000000000","mi n_site_meter_power_ac":-1000000000,"geolocation":{"latitude":"xxx","longit ude":"xxx"},"address":{"address_line1":"xxx","cit y ":"xxx","state":"xxx","zip":"xxx","country":"D E"}} }
Ich hab mir mal aus dem Livestatus angeschaut was im MQTT ankommt. Leider aktuell nicht alle Werte:
Werde am Wochenende mal weiter testen.
Danke schon mal bis hierher.
Gruß
BernhardKommentar
-
Hi,
ist es bitte Möglich, den aktuellen Status des Fahrzeuges periodisch zu übermitteln?
Mit:
"/admin/plugins/teslaconnect/tesla_command.php?action=vehicle_summary&vid=xxxx "
sehe ich zwar unter anderem den Status "asleep", aber diese Abfrage muss immer manuell durchgeführt werden.
Schön wär ein Hintergrundprozess, der die Status-Abfrage alle paar Minuten mit dem aktuellen Wert per MQTT an die Loxone liefert.
Gruß
Andreas
Kommentar
-
Du könntest dir hierfür in der Loxone Config vor den Virtuellen Ausgangsbefehl einen Impulsgeber setzen und dir hier deine gewünschte Abfragezeit hinterlegen.
Dann wird automatisch der Befehl in den gewünschten Abständen getriggert und du erhältst deine Werte.Kommentar
-
Hallo Marius,
jetzt hab ich noch einiges getestet.
Ich habe den Abfragetrigger des LiveStatus über den Miniserver gemacht und funktioniert.
Ich bekomme auch Werte zurück. Allerdings zeigt der MQTT Monitor immer nur Werte wenn nicht Null. Das heißt wenn z.B. Solar_Power = 0 dann kommt im MQTT kein Eintrag Solarpower an.
Hier mal die Rückmeldung auf den HTTP Request wenn ich ihn direkt im Browser mache:
{"response":{"solar_power":"0","energy_left":"2 558 .8947368421054","total_pack_energy":"14241","perce ntage_charged":"17.96850457722144","backup_capable ":true,"battery_power":"680","load_power":"680 ","g rid_status":"Active","grid_services_active":false, "grid_power":"0","grid_services_power":"0","ge nera tor_power":"0","island_status":"on_grid","storm_mo de_active":false,"timestamp":"2022-11-19T19:48:16+01:00","wall_connectors":[]}}
Da ist z.B. solar_Power und Grid_Power = 0
im MQTT kommen nur diese Werte an.
Muss ich noch irgendeine Einstellung dazu verändern?
Danke
BernhardKommentar
-
Hallo BernhardP
ich habe eine überarbeitete Version erstellt. Die fehlenden Werte sollten jetzt auch an MQTT übertragen werden.
Du kannst die angepasste Version unter folgenden Link herunterladen:
Kannst du es testen und mir ein Feedback geben?
Danke+Grüsse
MariusKommentar
-
Hallo Marius,Hallo BernhardP
ich habe eine überarbeitete Version erstellt. Die fehlenden Werte sollten jetzt auch an MQTT übertragen werden.
Du kannst die angepasste Version unter folgenden Link herunterladen:
Kannst du es testen und mir ein Feedback geben?
Danke+Grüsse
Marius
hervorragend. Die Nullwerte kommen nun komplett an. Außerdem habe ich gesehen, dass du die Testqueries angepasst hast, funktioniert ebenfalls.
Damit kenne ich aktuell keinen weiteren Fehler mehr.
Vielen Dank dafür.
Gruß
BernhardKommentar
-
Hallo,
ich habe ein Problem zusätzliche Daten des Tesla-Pluging in Loxone darzustellen.
Ich kann die Außen- und Innentemperatur wunderbar anzeigen lassen.
Allerdings Werte wie: /battery_level oder locked werden mir zwar über den UDP Monitor angezeigt, ich kann diese aber nicht in einem virtuellen UDP Eingang anzeigen lassen.
Die Befehlskennung für den Ladestand ist die: MQTT:\iteslaconnect/929715872608212/climate_state/battery_level=\i\v
Bei den Temperaturangaben nutze ich den gleichen Syntax.
Hat Irgendwer einen Tipp?Kommentar
-
Hallo olaf.kropp@gmx.de
Am einfachsten ist es, wenn du in den MQTT Gateway gehst, deinen Wert aussuchst und den Miniserver Virtualinput Name kopierst. In der Loxone Conifg legst du einen virtuellen Eingang oder Texteingang, je nach Wert an. Bekommt der MQTT Gateway diesen Wert von Teslaconnect, übermittelt der MQTT Gateway diesen Wert automatisch an den Miniserver.
Weitere Infos dazu findest du hier: MQTT Gateway [LoxBerry Wiki - BEYOND THE LIMITS]
Grüsse
MariusKommentar
-
Tooles Ding. Hat auf Anhieb funktioniert. Allerdings macht mich diese Warnung
doch etwas nachdenklich. Einerseits braucht der LB ja eine Internet-Verbindung - schon allein, um den Token zu aktualisieren - andererseits möchte ich ungern, dass ein Hacker mir ein meinem Tesla rumpfuscht.Warnung
Dieses Plugin speichert ein Token, um auf die Tesla API zuzugreifen. Ich empfehle das Plugin nur zu installieren, wenn der Loxberry gut geschützt und nicht direkt aus dem Internet erreichbar ist.
Gelingt es jemand dieses Token auszulesen, kann dieser alle Informationen über das Fahrzeug abrufen und Befehle an das Fahrzeug senden.
Wie würdet ihr das regeln, um der Anforderung gerecht zu werden?Kommentar
-
Nennt sich Firewall und hängt von deinem Internetanschluss ab/Konfiguration etc etc.
Wenn du Standard hast:
DSL Anschluss + Fritz! Box und NICHTS an der Fritz!Box geändert hast (Stichwort Portforwarding), dann solltest du erstmal auf der sicheren Seite sein was das Token angeht, da die Fritz! erstmal eine rudimentäre Firewall/NAT macht. (Server kann raus, aber nix darf rein)
Kannst aber immernoch von INTERN angegriffen werden (Stichwort: Kinder + WLAN Passwort verteilen).
Achso und das Gefährlichste ist aktuell: Die Kommunikation zwischen Loxone/Loxberry Plugin, d.h. das was der Loxone Server macht und das was das Plugin dann macht ist auch schon gefährlich. Da nützt auch keine Firewall, da ja jemand das auch so machen könnte ohne loxone server (sende signal an Plugin, die Motorhaube zu öffnen etc.)
Wobei ich dir hier keine Angst machen möchte. Alle Geräte die von Loxone gesteuert werden, sind aktuell angreifbar. Also Beispiel bei mir, alle meine MODBUS Geräte. Kann jeder der in meinem LAN ist und die IP kennt (schnell rausgefunden) per Modbus meine Heizung verstellen, meine Stromleser auslesen, etc.
Ich kenn das Plugin noch nicht, bin nur über die Suche nach : Tesla in den Thread hier rein, weil ich gerade am überlegen bin ein eigenes Plugin/Server zu schreiben für Tesla API (Auto/Wallbox/PV/...)Zuletzt geändert von CyCl0ne; 05.01.2023, 07:02.
-
Kommentar