EVNotify - Alternative Lösung mit Automate
Inhaltsverzeichnis [anzeigen]
EVNotify - Lösung mit Automate
Basislösung hier beschrieben: Anleitung für EVNotify insbesondere Einrichtung auf dem Smartphone
Im weiteren ist eine alternative Lösung für die automatische Steuerung von EVNotify beschrieben. Diese Lösung verwendet zur Steuerung das Android-Tool "Automate" (Automate by LlamaLab - Google Play Store). Dieses Tools ist kostenpflichtig (einmalig ein paar Euro).
Einrichtung des Handys
Die Beschreibung hier geht davon aus, dass bereits ein Handy mit EVNotify aufgesetzt, und ein OBD2-Dongle eingerichtet und verbunden ist. Die Einstellungen in EVNotify und in Android wurden wie in der Basislösung beschrieben eingestellt.
Das Handy sollte an einem USB-Stromanschluss angeschlossen sein, der Strom bekommt, wenn das Fahrzeug eingeschaltet ist (fahrbereit), und der keinen Strom bekommt, wenn das Fahrzeug ausgeschaltet ist.
Das Handy sollte so eingestellt werden, dass es im ausgeschalteten Zustand beim Einschalten der USB-Stromversorgung nicht nur lädt, sondern Android komplett bootet. Nähere Tipps dazu, wie man ein Handy so einrichtet findet man z.B. ab https://stackoverflow.com/questions/262 ... is-plugged Von dort hatte ich mich dann weitergehandelt bis zur Info über Nexus 4. Die dort beschriebene Methode ("fastboot oem off-mode-charge 0") scheint für Nexus devices und auch manche Motorola zu funktionieren. Für Samsung, LG, Xiaomi usw. gibt es andere Lösungen für die man root benötigt und Files wie /system/bin/kpoc_charger oder /system/bin/chargemon o.ä. modifizieren muss. Im angeführten Thread steht dazu einiges.
Ebenso sollte das Handy gerootet sein, so dass Automate das Handy auch skriptgesteuert wieder ausschalten kann.
Auf einem OnePlus One habe ich das Autoboot auch mal eingerichtet, war etwas komplizierter:
- TWRP installieren
- LineageOS 18.1 & open-gapps pico installieren
- Magick installieren (für root)
- Wenn das System soweit mal funktioniert, nach TWRP recovery booten
- Die system partition read-write mounten (Mount -> System anklicken -> zurück)
- Über Advanced -> File Manager die Datei /system/etc/init/hw/init.rc antippen -> Edit File
- Es kommen viele Fehlermeldungen und am Schluss der Text "Press Enter to continue starting nano". Also Enter drücken damit nano die Datei öffnet.
- Mit Ctrl-W den Text "on charger" suchen und folgende Änderung dort eintragen:
on charger
#class_start charger
trigger late-init - Mit Ctrl-X speichern und mit Y bestätigen.
- In der shell "exit" eingeben -> "Child process exited.", dann zweimal Zurück ins Hauptmenü von TWRP
- Die system partition wieder unmounten (Mount -> System abhaken -> zurück)
- Reboot
Sinnvollerweise wird dieses Handy, das dauerhaft im Fahrzeug verbleibt, nicht mit deinem normalen Google-Account eingerichtet, sondern mit einem speziell nur dafür erstellten (Risikominimierung bei Diebstahl etc.). Du musst allerdings Automate dann auch für/mit diesem Account kaufen.
Steuerung durch den Automate-Skript (Flow)
Was die Steuerung über den hier beschriebenen Automate-Flow macht:
- Hält EVNotfy im Vordergrund und aktiv.
- Wenn das Handy startet (nach Power on), wird EVNotify gestartet und verbindet sich zum Dongle.
- Wenn das Fahrzeug nur kurze Zeit ausgeschaltet war (einige Minuten) und wieder eingeschaltet wird, wird EVNotify durch Klick auf Settings und Dashboard zur Neuverbindung mit dem Dongle gebracht. (EVNotify macht das nämlich nicht von selbst, wenn es erst mal in einem Stromsparmodus war.)
- Ganz kurze Stromunterbrechungen (<5s) werden ignoriert. (Bei Ladung über einen QI-Charger kommt es bei mir manchmal zu ganz kurzen Unterbrechungen, und diese sollen die restliche Logik nicht stören.)
- Wenn das Fahrzeug längere Zeit aus ist, wird geprüft ob ein Ladevorgang stattfindet. Dazu wird das API von EVNotify abgefragt ob für einen apikey gerade charging stattfindet. Falls der Ioniq gerade geladen wird, bleibt das Handy an und der nächste Check passiert 10 Minuten später.
- Wenn das Fahrzeug längere Zeit aus ist, und kein Ladevorgang stattfindet, wird das Handy nach ein paar Minuten ausgeschaltet.
Worauf der Flow vorbereitet ist:
- Falls bei einem Ladevorgang der Ladestand (SOC) von 80% erreicht wird, kann ein eigener Vorgang getriggert werden, z.B. um die Ladung zu beenden. Dazu müsste man an der Stelle Code einfügen um das Ladegerät zu steuern, z.B. go-e Charger.
- Hinweis: Ich überlege gerade, ob man die Ladung direkt am Ioniq abbrechen könnte, mit einem Relay im Ladeport, das z.B. die PP- oder CP-Pins unterbricht. Da bräuchte man dann idealerweise ein über Bluetooth steuerbares Relay. Strom braucht das allerdings dann auch (12V oder 5V). Weiss nicht, ob die in der Nähe des Ladeports auffindbar sind. Wenn man das zusammenbrächte, dann könnte die Kombination von EVNotify + Automate-Skripts + zusätzliches Relay die Ladung bei einem bestimmten SOC beenden (also z.B. nur bis 80% laden), und zwar unabhängig von der Ladestation, also auch unterwegs auf Reisen.
Für die korrekte Abfrage ob ein Ladevorgang stattfindet, müssen in dem Automate-Skript der API-Key (akey) und das dazugehörige Token angepasst werden. Die Werte kann man den EVNotify-Settings entnehmen; sie müssen in der URL eines HTTP-Requests eingetragen werden.
Downloads
Alle Dateien unter: http://e.pc.cd/aJ
In diesem Ordner sind die .flo Datei zum Import in Automate sowie eine annotierte Version des PDF-Exports, die die verschiedenen Teile des Flows kommentiert und erklärt.