nach einigen Tagen Tüftelei habe ich den ersten Aufschlag meines Workflow zum KI gestützen optimierten Laden des E-Autos fertig. Ich habe dafür die Verbindung von Homeassistant und N8N genutzt. Der Trigger für den Start kommt aus Homeassistant. Trigger sind “Ladekabel wird mit dem Auto verbunden” , “Änderung der vorgegebenen Ladestrategie”, “durch die KI ermittelten optimalen Zeitpunkt für den Ladestart” und “Wechsel von Strombezug zu Netzeinspeisung” Homeassistant schickt die Trigger als “MQTT-publish” an N8N. Zunächst wird dann im ersten Schritt Datum und Zeit aus Homeasistant ausgelesen. Der darauf folgende AI Agent Ladestrategie auswählen, analysiert dann die zur Verfügung stehenden Daten für die Ladestrategie. Hierfür werden einige wenige Werte aus Homeassistant ausgelesen. Im nächsten Schritt werden aus der influxdb mittels http Abruf historische Daten bzgl. der PKW Reichweite abgerufen. Diese Daten werden an den “KI Agenten Auto optimieren” übergeben. Hier werden aus Homeassistant die erforderlichen Ist-Werte des PKW ausgelesen, durch vorgegebene zu erreichende Reichweiten wird dann der Ladebedarf berechnet. Im nächsten Schritt werden erneut aus der Influxdb historischen Daten zu PV-Stromerzeugung, Strombezug, Netzeinspeisung, Batteriespeicherdaten usw ausgelesen und alle Daten an den “KI Agenten Prognose Solarertrag” übergeben. Der liest dann aus Homeassistant die aktellen Sensoren für Helligkeit, Helligkeit aus Südrichtung und Westrichtung , Wetterbericht, Wetterprognose und PV Prognose aus. Ziel ist es die optimierte PV Prognose aus historischen Daten und Wetterberichten zu erhalten. Die gesamten Daten werden dann an den “KI Agenten optimiertes Laden” übergeben, der die Iststromwerte (PV, Netz, Batterie, Verbraucher) aus Homeassistant ausliest. Dazu den Strombezugspreis, den vorgegeben PV Strompreis ausliest und so auf Basis des kalkulierten Netzstrombezugs und der PV-Produktion sowie der Lademenge einen durchschnittlichen Preis ermittelt und die zu erwartenden Kosten des Ladevorgangs und diese mit dem zu erwarteten Strombezug und -verbrauch zu optimieren. Als nächstes rechnet der “KI Agent Wallbox steuern” die daraus resultierende Ladeleistung der Wallbox und den optimalen Ladezeitpunkt aus. Es werden zwei Werte erzeugt: “Ladeleistung” und “Ladedatum und Zeit”. Beide Werte jeweils an die beiden angeschlossenen “KI Agenten für Ladezeit und Ladeleistung” gegeben, die nur noch die Aufgabe haben die Werte zu trennen und jeweils weiter zu reichen. Liegt der Startwert in der Zukunft (also kein sofortiger Start) wir der Startzeitpunkt an Homeassistant übergeben, so dass Homeassistant erneut zum richtigen Zeitpunkt einen Starttrigger senden kann. Die Wallbox wird in diesem Fall nicht eingeschaltet. Soll sofort gestartet werden, wird die richtige Ladeleistung an Homeassistant geschickt und die Wallbox mit der Ladeleistung gestartet. In diesem Fall wird ein Vergangenheitswert an Homeassistant übermittelt, damit nicht neu getriggert wird. Der Prozess läuft dann in eine 5 Minuten Schleife um die Prognose mit den Istwerten anzupassen und ggf. zu korrigieren.
Ich muss das Ganze jetzt natürlich noch testen, und Fehler identifizieren und Verbesserungen einbauen. In der Weiterentwicklung plane ich folgende Ergänzungen/Entwicklungen:
Zugriff auf Calender (idealer weise ein homeassistant Kalender) in dem die wesentlichen Fahrstrecken (Orte zu den ich fahren muss) abgebildet werden
Einbinden von google maps oder einer anderen Routingapplikation um auf Basis der Kalenderdaten die erforderlichen Strecken zu kalkulieren
Anhand der Strecken den Verbrauch ermitteln
Ziele die weit sind, aber eine Fahrt zu einem Bahnhof oder Flughafen im Kalender eingetragen sind, müssen so kalkuliert werden, dass nur die Strecke bis zum Flughafen bzw. Bahnhof kalkuliert werden, weil die weitere Strecke dann mit Bahn oder Flugzeug erfolgt
Urlaubsabwesenheiten müssen eingeplant werden und zwar nach Urlaub zu Hause und Urlaub unterwegs, wenn Urlaub unterwegs muss das Auto vorab auf einen Batteriladestand von um die 80% gebracht werden um die Batterie zu schonen.
Langstreckenoptmierung; Einbindung von Ladestellenbetreibern (Shell, EnBW, EVE, Ionity, Electroverse) für Fahrten, die die maximale Reichweite überschreiten, hier soll das System Ladestation unterwegs suchen die günstig sind und auf der Basis eine Routen-Ladestrategie erarbeiten und vorschlagen
Einbindung des Ladepreises bei der Arbeit um zu entscheiden ob und wann eher bei der Arbeit oder zuHause zu laden ist.
Optimierungspfade für optimiertes laden (Winter), erzwungenes Laden (bis zum vorgegeben Ladelevel) und laden mit Nulleinspeisung (Sommer) integrieren
weitere influxdb abrufe prüfen
Obsidian einbinden um ggf. Prompts über Obsidian zu ändern
ich habe den workflow zur Optimierungs des Lademanagements meiner Wallbox nun deutlich verbessert. Die folgenden Anpassungen habe ich mit dem Ziel vorgenommen, den workflow performanter, effizienter und stabiler zu machen:
Klarer Trennung der unterschiedlichen Stufen innerhalb des workflows, Ergebnisse von Agenten werden in Redis Datenbanken abgelegt, so dass nicht alle Ergebnisse durch den gesamten Workflow transportiert werden müssen.
Direkter Abruf von Wetterdaten aus openweathermap
Überarbeitung sämtlicher Prompts, mit klarer Struktur der Prompts, und Abgrenzung zwischen User-Nachricht und System Message
Ausgliederung bestimmter Teilschritte in subflows um den Hauptflow stabiler zu machen:
a. Subflow: Abruf der der historischen Daten (7 Tage) aus der influxdb für Strombezug, PV Produktion, Stromverbrauch etc. und Auswertung zur Übergabe einer deutlich gekürzten Zusammenfassung an den Hauptflow (spart deutlich Token) b. Subflow: Fahranalyse, aus historische Bewegungsdaten (7 Tage) in der influxdb zur Prognose der zu erwartenden Fahrleistung zu Übergabe an den Hauptflow und c. Subflow: Vorabruf sämtlicher erforderlicher realtime Daten aus Home Assistant, und Ablage der Daten in einer Redis Datenbank (lokal installiert) ( Die im Hauptflow and die Angenten angehängten Home Assistant Tools dienen nur noch der Aktualisierung der Daten, Ausfall ist unkritisch)
Detaillierte Toolbeschreibung in den Tools um den Abruf der Tools zu verbessern.
Durch die Massnahmen ist der workflow deutlich schlanker und schneller geworden. Nun muss er laufend gestestet und die Ergebnisse analysiert werden um mögliche Fehler zu beseitigen. Das macht zwar Arbeit, ist aber zwingend erforderlich. Zukünftig möchte ich die folgenden Funktionen ergänzen bzw. aktualisieren.
Integration von mcp insbesondere für Home Assistant und influxDB
Einfügen von Berechnungsbespielen die von den Agenten abgerufen werden können um Berechnungsergebnisse zu verbessern
Dynamisierung der Modelle mit der KI Modellwahl durch openrouter (perspektivisch Lokalisierung der KI)
Einbau Langzeitgedächtnis, hier muss ich noch analysieren welche lokalen Möglichkeiten es dafür gibt
Calender und Routing Implementierung zukünftiger Fahrstrecken und optimierter Planung
Zusammenfassend muss ich sagen, dass das Zusammenspiel von Homeassistant und N8N wirklich sehr gut und stabil klappt. Mit dieser Integration lassen sich ganz andere Ansätze bei der Automatisierung erreichen. Der Standardautomatisierungsprozess “Trigger” > “Bedingung” > “Aktion” wird ersetzt durch “Trigger” > “KI-Agent” > “Aktion” und ermöglicht daber viel breitere Alternativen. Das SmartHome wird dadurch smarter.
Unabhängig davon ist es aus meiner Sicht von enormer Bedeutung sich intensiv mit der Thematik zu beschäftigen, wenn KI tiefer in das SmartHome integriert werden soll. Ich mache dies, lese mich dabei aber aus sehr intensiv in die Thematik ein, Ich will es verstehen und insbesondere bei dieser rasanten Entwicklung “am Ball” bleiben. Darüber hinaus verfolge ich eine klare Lokalisierungsstrategie. Wenn vor einiger Zeit noch alles in die Cloud ging, mache ich hier eine deutliche Rolle rückwärts. Ich versuche was eben geht lokal zu installieren und bin dabei auch gut voran gekommen. Ich will natürlich auch die KI lokal aufbauen, allerdings muss das stabil laufen und das Bedarf noch einiger Recherche und Rechnerleistung. Aber es wird gehen und wird auch umgesetzt. Das Ziel verfolge ich, weil natürlich Daten heraus gegeben werden und ich das nicht mehr möchte. Parallel dazu trenne ich mich auch von Alexa und Google-Assistant und irgendwann wohl auch von Siri. Das ist nicht einfach aber es geht.
Ich persönlich bin jetzt gut ein Jahr bei homeassistant und habe seitdem wirklich enorme Entwicklungen und Fortschritte wahrgenommen, ein wahrer Gamechanger wird aber das Thema KI sein. Der KI-Geist ist aus der Flasche, wir werden ihn nicht mehr einfangen, daher will ich ihn verstehen.
danke für diese super interessante Implementierung.
Ich möchte meinen Heimspeicher auf ähnliche Weise steuern, bin aber am Anfang meiner Recherche. Und schon stehe ich vor der ersten Frage. Ich möchte statistische daten aus HA in n8n überführen. (Verwende derzeit keine InfluxDB)
Die HA node hat Service - Call - recorder - get_statistics. Nur kann ich nicht zuverlässig herausfinden, wie man das bedienet, oder ob das überhaupt unterstützt wird. Hast Du einen Tipp, wo ich solche Infos finden kann? Um den Einstieg in n8n weniger Try and Error zu gestalten.
ganz genau kann ich es dir leider nicht sagen, weil ich die historischen Daten immer aus der influxDB ziehe, ich habe die halt und im Grunde werden alle HA entitäten dort historisch erfasst und können dementsprechend abgerufen. werden. Wenn ich mich richtig erinnere war es auch nicht ganz so einfach die statistischen Werte direkt aus HA zu lesen, die werden zwar grafisch dargestellt, ich bin aber nie ganz dahinter gekommen wie ich sie abrufen könnte, daher influxDB. Die ist übrigens open source und recht einfach aufgesetzt, Simon hat da hervorragende videos zu gemacht.
Ich habe den workflow leider derzeit nicht mehr im Einsatz, das liegt nicht am Workflow, der funktionierte gut, sondern an meinem Autohersteller VW der “freundlicherweise” die Schnittstelle zum Abruf der Daten abgestellt hat. Ich arbeite gerade an einer Ersatzlösung die aber nicht trivial ist.