Integration einer langweiligen Standheizung ins Smarthome

Moin!

Ich wollte euch einmal mein neustes Projekt vorstellen.

Die Situation war wie folgt:
Ich fahre einen VW Touareg mit einer Standheizung, allerdings konnte man diese nur aus dem Innenraum oder per Fernbedienung starten. Die Reichweite dieser Fernbedienung war aber eher bescheiden und auf so ca. 50-100m begrenzt. Ziemlich nervig wenn man im Kino oder sonst wo sitzt und eigentlich nur schnell schonmal Vorheizen will und die Fernbedienung keinen Empfang hat.

Also bin ich ans überlegen gegangen wie man das ganze smart machen könnte. Es gibt hier schon fertige GSM Lösungen die direkt im Auto angeschlossen werden. Diese sind aber A) teuer und b) irgendwie nicht so geil wenn man das Auto anruft um die Heizung anzumachen. Ich wollte lieber eine vernünftige UI mit der Möglichkeit Anbindungen in Homeassistant vorzunehmen.

Also war die Idee des selber machens geboren. Folgende Kriterien habe ich mir gesetzt:

  • Soll überall auf der Welt funktionieren
  • Soll am besten sehr einfach Rückrüstbar sein wenn das Auto mal verkauft wird.
  • Sollte nicht das bohren von Löchern oder ähnlich erfordern.

Das Konzept war dann in Version 1 so:
Ein Mikrocontroller wie der ESP32 welcher zwei Relais schaltet, die die Knöpfe auf der bestehenden Fernbedienung brücken. Für die Funktion unterwegs sollte ein LTE Modul verbaut werden.

Das ganze erweiterte sich nach einigem Brainstroming noch weiter:
Es sollte nun doch kein ESP sondern ein Raspberry PI 2 werden, der zukunftsorientiert noch weitere Aufgaben im Auto übernehmen kann und noch mehr flexibilität als der ESP bietet. Außerdem wollte ich ein angeschlossenen Temperatursensor um so die Temperatur im Kofferaum zu überwachen. Dort lassen wir nämlich gerne mal unseren Hund kurz sitzen wenn wir einkaufen oder so. Damit Sie nicht friert oder überhitzt das Thermomether was dann Warnungen über Homeassistant an mein Handy schicken kann.

Aufbau:

  • Am Raspberry PI ist per USB ein SIM7600 Modul mit einer Congstar Simkarte angeschlossen. Hier habe ich einen Vertrag mit 1GB Datenvolumen gewählt. Kosten so 2€ pro Monat
  • An den GPIO Pins ein 2 Kanal-Relais und ein DS18B20 als Thermometer (hatte ich noch im Bestand, daher das Modell gewählt)

Konkret:

12V Steckdose -> Powerbank -> Raspberry
SIM7600 -> Raspberry -> 2 Kanal Relais -> bestehende Standheizung Fernbedienung
                     -> Thermometer

Datenaustausch:
Irgendwie müssen ja nun die Steuersignale und Daten zwischen Homeassistant und dem Raspi ausgetauscht werden. Ich habe mich hier für MQTT entschieden.

Der Raspi verbindet sich per VPN ins Heimnetzwerk und postet dort seine Infos auf dem lokalen MQTT Server. Konkret benutzt er das Topic home/standheizung/control für die Steuersignale, home/standheizung/status für Statusinformationen und homeassistant/sensor/kofferraumtemperatur für die Kofferaumtemperatur.

Auf dem Raspberry dann die Technik:
Standheizungs Steuerung:
Die Steuerung übernimmt hier ein Python Script welches per SystemD Job dauerhaft läuft.
Kurz zusammengefasst, wenn im Control Topic der Befehl „START“ steht, soll er Relais 1 für 1 Sekunde anziehen und dann wieder lösen, steht der Befehl „STOP“ soll er Relais 2 für 1 Sekunde anziehen und wieder lösen.
Außerdem soll er alle 32 Minuten wenn der Befehl „START“ steht die Standheizung erneut starten - dies ist eine Notwendigkeit, da das Auto (warum auch immer) nach 30 Minuten die Heizung automatisch stoppt.

Außerdem habe ich hier eingebaut, dass die START, STOP und NEUSTART Funktion jeweils einen Homeassistant Webhook auslöst. Ich habe hier absichtlich den Webhook gewählt um eine MQTT Unabhängige Bestätigung zu haben. Bedeutet wenn der Raspi kein Netz hat, würde der START Befehl ja trotzdem von Homeassistant zu MQTT gehen. Anhand des fehlenden Webhooks weiß ich dann sicher das der Befehl nicht beim Raspi angekommen ist.

Kofferraumtemperatur:
Auch hier habe ich ein Python-Script geschrieben welches die Temperatur ausließt und alle 60 Sekunden an MQTT schickt.

Außerdem laufen noch einige andere Scripte und Jobs:

  • Einer der die LTE Verbindung automatisch nach dem Start aufbaut

  • Einer der eine Reverse SSH Verbindung zu einem meiner öffentlichen Server aufbaut. (Das habe ich gemacht, da ich nicht direkt über die öffentliche LTE IP eine Portfreigabe für Port 22 SSH erstellen kann. Da ich aber immer gerne per SSH auf den Raspi käme, dieser Workarround. Ich verbinde mich also erst auf den öffentlichen Server und von da weiter auf den Raspi

  • Ein Sicherheitsskript falls längerfristig das LTE ausfällt. Eigentlich recht simpel - Alle 5 Minuten wird ein Ping auf 8.8.8.8 ausgeführt, schläfgt dieser fehl startet er die o.g. Scripte neu. (Das kam nachträglich, da die Scripte irgendwann nicht mehr neustarten wenn das LTE länger weg ist.

Stromversorgung:
Hier habe ich lange überlegt (und bin es auch nach wie vor noch, falls einer eine geile Idee hat, gerne her damit)

Da ein Raspi ja doch etwas mehr Strom nimmt und das Auto ggf. auch mal ein paar Tage steht, wollte ich die Maschinerie nicht direkt an die Autobatterie anschließen. Ich habe mir also eine Powerbank mit 50.000maH sowie Passthrough Charging besorgt. Der Raspi wird von der Powerbank betrieben und das Auto lädt die Powerbank sobald die Zündung an ist.

So reicht der Strom vermutlich ca. 5 Tage ohne Fahrt. Man muss dann nur genug fahren um die Powerbank auch wieder aufzuladen.

In Homeassistant:

  • Switch welcher die Standheizung an oder aus schaltet
  • Automation mit input_datetime für die Planmäßige Schaltung
  • Automation welche die Standheizung ausschaltet sobald mein Handy sich mit Carplay verbindet (damit ich es nicht vergessen kann)
  • Automationen für die Benachrichtigung bzgl. Kofferraumtemperaturen über 25 und unter 16 Grad insofern die Position des Hundes und die des Autos gleich ist. (Standort Hund wird über einen Tractive GPS Tracker am Halsband abgerufen, Auto aktuell noch über einen einmaligen Standort von meinem Handy wenn ich mich von Carplay trenne.)

Das Gehäuse für die ganze Geschichte habe ich mit Onshape selber gebaut und 3D gedruckt.

Was ich noch vor hab bei diesem Projekt:

  • GPS Antenne an das SIM Modul anschließen um das ganze auch als Tracker für das Auto zu benutzen
  • Festplatte mit Filmen, Raspi soll dann Medienserver im Auto stellen für längere Fahrten
  • Wenn mir was gutes Einfällt die Stromversorgung noch verbessern

Falls jemand etwas nachbauen will oder sowas - die Scripts hab ich in meinem Github unter GitHub - STHNokat/Standheizung

Wenn jemand noch coole Verbesserungsideen hat freue ich mich.

Liebe Grüße!

2 „Gefällt mir“

Hallo NOKAT :slight_smile: ,
wunderbarer Bericht und sehr spannendes Projekt.
Wenn du soweit bist und Zeit und Lust hast würden wir uns über paar Bilder von deinem Projekt sehr freuen.
Das Auge ist ja bekanntlich mit :drooling_face:

1 „Gefällt mir“

Moin Smartzeug,

selbstverständlich teile ich gerne ein paar Bilder!

Fertiges Gerät

Oben mit Kabelbinder fixiert die originale Fernbedienung noch im originalen Gehäuse. Die Kabelverbindung ist mit einem Super-Seal Stecker - Vorteil ist, dass die Fernbedienung jederzeit abgebaut werden kann und standalone benutzt werden kann.
Außerdem bleibt die originale Funktion dauerhaft erhalten und kann beim Verkauf des Autos schnell zurückgerüstet werden.

Das USB-Kabel vom SIM Modul geht nun einmal außen rum und von hinten wieder ins Gehäuse rein. Nicht die schönste Lösung, aber ein Kompromiss, da ich das Modul unbedingt per USB angeschlossen haben wollte und die Ausgänge vom Raspi von außen erreichbar haben wollte.

Wie ich sehe kann ich als neues Mitglied aktuell nur ein Bild teilen, also kommt gleich noch ein Post mit der Innenaufnahme.

1 „Gefällt mir“

Wie versprochen - Teil 2

Innenaufnahme

Hier sehen wir rechts den Raspi und links das Relais (Beschriftung ignorieren, stammt aus einem alten Projekt), darüberliegend befindet sich im verbauten Zustand das SIM Modul (auf dem Bild grade in meiner Hand)

Hinten rechts in der Ecke sieht man ein kleines Stück Platine, hier ist der Temperatursensor inkl. PullUP Widerstand (4,7kOhm) verlötet und auf Jumper Kabel adaptiert.

Die Kabelauslässe sind mit M16 Kabeldurchführungen vor dem Eindringen von Staub oder direkter Nässe geschützt.

Weiterer Plan

Derzeit überlege ich noch wie ich ein Auslesen der LED an der Fernbedienung realisere. Diese gibt anhand eines Blinkmusters in Grün oder Rot Feedback ob die Standheizung erfolgreich geschaltet wurde oder nicht. Die Information würde ich noch recht gerne abfangen um ein 100% sicheres Feedback des Autos zu bekommen.

1 „Gefällt mir“

Richtig stark Lennard :muscle:

Halte uns bitte auf dem laufenden. Solche spannenden Projekte sieht man nicht jeden Tag. Weiter so :+1:

1 „Gefällt mir“