Open Moosbueffel opened 2 years ago
You can send the "vehicle" (retrieve general vehicle information) command and check for msg.payload.state == online. It will send == asleep when its sleeping.
Many thanks, I will try it, when I'm back home next week and give feedback.
It may be msg.payload[0].state for the first vehicle if you have more than one car in your account there is also a msg.payload[0].state == offline a very short time while going to sleep.
I recommend a flow like
tesla-command:vehicles --> switch node (msg.payload[0].state == online -> Output 1 / Otherwise -> Output 2)
This will not wake your car. Use Output 1 for flows while car is awake and output 2 for flows while sleeping
last bit: If the car is not reachable, state is last known state. If you park in an underground parking lot with no wifi and no mobile coverage, it's shown as online (because that was the last state before going underground). If you (e.g.) issue a getVehicleData, the node will fail with error 408 and no output. Use a catch node to catch this event if needed.
Ok, danke. Dann sind die Werte die bei vehicle geliefert werden die vom letzten Wachzustand? Und Fahrzeug wird durch diesen Aufruf nicht aufgeweckt? Denn aufwecken will ich das Auto ja nicht.
Ja, aber bei (vehicles) wird selbst ja nicht sehr viel zurückgeliefert. Nur welche Fahrzeuge du hast und ob diese wach sind.
Wenn Du den Batteriestand et al dauerhaft brauchst, musst du ihn dir merken. Weil danach fragen (vehicleData oder chargeState) weckt das Auto auf (weil er ja fragen muss, wie der Akku jetzt steht).
Was ich mache ist relativ simpel:
tesla-command:vehicles --> switch node (msg.payload[0].state == online -> Output 1 / Otherwise -> Output 2)
an Output 1
get VehicleData --> change node: set flow.TeslaDataBackup to to value msg.payload; msg.Online to the value true
an Output 2
change node: set msg.payload to the value flow.TeslaDataBackup; msg.Online to the value false
dann die beiden flows zusammenführen und du hast in msg die aktuellen Daten und in msg.Online zusätzlich den Status ob wach oder nicht.
Königsklasse für den Fall, dass das Auto im Funkloch steht (weil in diesem Fall das Auto zwar als Online rückgemeldet wird (weil das Auto ja beim Einfahren in die Garage noch online war und sich dann nicht mehr melden konnte), aber das get Vehicledata wird fehlschlagen (error 408) und gar keinen Out liefern, daher zusätzlich eine
catch node: auf die Node get VehicleData reagieren, die im Output 1 Strang liegt --> change node: set msg.payload to the value flow.TeslaDataBackup; msg.Online to the value false
und diesen flow ebenfalls oben mit zusammenführen, dann hast du alle drei Fälle abgedeckt und immer die leztten bekannten oder aktuellen Daten in msg
cool @Michael-K-at-GitHub :). Habe ich so umgesetzt.
Zu erwähnen wäre noch, dass die Abfragefrequenz > 20 min sein muß, um dem Fahrzeug ein einschlafen zu ermöglichen. Scheinbar eben auch bei der status-Abfrage. Siehe auch die gute Beschreibung, die ich hier gefunden habe.
Ich lasse obige Sequenz permanent alle 60 Sekunden laufen. Trotzdem schläft er zuverlässig nach 12 Minuten ein. Offensichtlich verlängert ein get VehicleData nicht den Timeout des Autos. Nachdem ich ja dann auch alle 60 Sekunden nachsehe ob er schläft oder nicht, sehe ich, dass er zuverlässig durchschläft. (jetzt gerade habe ich das Auto zum letzen mal vor 20 Stunden verwendet, und er schläft seit dem).
Ich lasse obige Sequenz alle 60 Sekunden laufen. Trotzdem schläft er zuverlässig nach 12 Minuten ein.
Ok, muß ich mal ausprobieren. Man soll ja auch nicht zu oft abfragen. Alle Minute, wäre natürlich gut
Es gibt jedenfalls eine Limitierung, aber 1/Minute funktioniert bei mir seit Monaten zuverlässig.
How can I check if the vehicle is sleeping or awake? Perhaps it the temp == null?? But this seems me a workaround.
Could you please implement a command for this? I think it is always implemented in your code but not wired ouside!?
Thanks
LInks: https://support.teslafi.com/en/knowledge-bases/2/articles/640-enabling-sleep-settings-to-limit-vampire-loss https://www.domoticz.com/forum/viewtopic.php?p=240152#p240152