In dem Artikel über die Elektrik habe ich schon einiges über unser „Smart Mobilehome“ berichtet. Jedoch ist ein Camper-Ausbau im Prinzip ja nie fertig. Und so ist das bei mir halt auch mit der Elektrik im Jolly. Zum einen sind es die Taster, die a) nicht wirklich hübsch aussehen und b) bei langen Leitungen auch noch andere Probleme mit sich bringen können. Auch haben sich die Temperatursensoren (DHT11) als nicht ganz zuverlässig herausgestellt (auch bedingt durch die Schwankungen im Netz). Und hilfreich ist auch die Status-Informationen über die Türen.
ZigBee
Und all dafür bietet sich eine neue Basis an, diese Aktoren und Sensoren anzubinden. Ja OK, eigentlich wurde mir diese Basis schon früher als eine mögliche Lösung von meinem ehemaligen Arbeitskollegen Marcus vorgeschlagen. Er hat mich damals schon gefragt: „Warum verwendest du nicht ZigBee?“ Nun ja, was soll ich sagen!? Vielleicht hatte ich einfach zu wenig Informationen über ZigBee. Meine Anforderungen an die Camperelektrik sind nun mal sehr wenig Strom zu verbrauchen. Und da war bei mir im Kopf pauschal abgespeichert: Kabelgebunden = weniger Stromverbrauch als Funk = mehr Stromverbrauch. Da aber a) der Stromverbrauch bei ZigBee echt gering ist und b) die Stromversorgung der einzelnen Aktoren mit eigenen Knopfzellen erfolgt und nicht die Batterie vom Jolly belastet, ist dieses Argument damit vom Tisch.
Coordinator
In einem Zigbee-Netzwerk gibt es neben den eigentlichen Endgeräten so genannte Coordinator, welche das Netzwerk verwalten. Zu der Zeit, wo ich angefangen habe mich für eine ZigBee-Lösung zu interessieren, war der Stick cc2531 von Texas Instruments noch eine beliebte Wahl und es gab wenig Alternativen. Das ist heute mit z.B. einem ConBee 2 Stick oder anderen leistungsstärkeren Geräten etwas anders. Somit habe ich zunächst versucht alle meine Aktoren mit dem cc2531 über das ZigBee-Binding in OpenHAB zu integrieren. Das hat auch zunächst z.B. mit den Temperatur-Sensoren ganz gut funktioniert. Als ich jedoch ganz neue Xiaomi-Schalter integrieren wollte, musste ich für die volle Funktionalität auf zigbee2mqtt wechseln. Das Problem mit den Schaltern und dem ZigBee Binding habe ich in dem OpenHAB-Forum mal beschrieben. Mit zigbee2mqtt haben die Schalter auf anhieb funktioniert und andere Probleme wie dieses waren auch nicht mehr vorhanden. Mit zigbee2mqtt bin ich bisher sehr zufrieden.
Temperatursensoren
Jetzt wo ich den für mich passenden Coordinator gefunden habe, kommen wir zu den verwendeten Aktoren und Sensoren, also den eigentlichen Nutzen. Als erstes mal ist natürlich die Temperatur interessant – sowohl drinnen wie draußen. Dafür verwende ich den Xiaomi Aqara Sensor WSDCGQ12LM der mir die Werte Temperatur, Luffeuchte und Luftdruck liefert.
Türkontakte
Auch ganz hilfreich ist, den Status der Türen zu kennen. Warum? Damit kann ich z.B. automatisch die Beleuchtung in der „Heck-Garage“ schalten. So geht nun automatisch das Licht unter dem Bett an, wenn man die Hecktüre öffnet und es bereits dunkel ist. Die Prüfung ob es bereits dunkel ist (nach Sonnenuntergang), kann man ganz einfach mit dem Astro Binding realisieren. Als Sensor, um mir den Status der Türen anzeigen zu lassen, verwende ich den Xiaomi Tür-/Fensterkontakt MCCGQ11LM. Mit dieser Basis ist auch eine Einbrucherkennung in Verbindung mit einer Anwesenheitserkennung denkbar. Die Anwesenheitserkennung lässt sich ggf. durch den Anmeldezustand am WLAN vornehmen.
Schalter
Viel wichtiger waren mir aber die bezahlbaren, gut aussehenden und vielen neuen Schaltmöglichkeiten, die ich mit ZigBee realisieren konnte. Der bereits schon länger auf dem Markt vorhandene Xiaomi Einfach-Schalter WXKG11LM hat mir an manchen Stellen nicht ausgereicht. So möchte ich u.a. direkt am Eingang doch deutlich mehr Schaltmöglichkeiten haben (Hauptlicht, Küchenlicht, Inverter, WLAN, etc.). Da hat mich die Ankündigung der neuen Aqara Opple Schalter doch sehr interessiert und bei dem Preis neugierig gemacht. Bestellt habe ich dann gleich mehrere WXCJKG12LM und WXCJKG13LM. Und nach dem weiter oben beschriebenen Wechsel auf zigbee2mqtt bin ich mit dieser Lösung auch sehr zufrieden.
Erweitung Victron Energy Binding um Batterie Monitor
In dem Beitrag Elektrik habe ich über meine Entwicklung eines eigenen OpenHAB Bindings berichtet, um die Daten des MPPT Solarladereglers auch in OpenHAB integrieren zu können. Darauf ist Arne von https://lifesetter.de aufmerksam geworden. Arne hat aber neben dem MPPT Laderegler auch noch einen Batterie Monitor BMV-712. So habe ich mein VRM-Binding noch um die Unterstützung des Batterie Monitors erweitert. Hier der Beitrag von Arne über die Raspberry PI Installation mit OpenHAB in seinem Camper.
Wie bereits in meinem Ausbau-Beitrag angekündigt, werde ich die Elektrik von unserem Jolly hier noch etwas genauer vorstellen.
Vermutlich ist diese Umsetzung nicht in allen Punkten gewöhnlich und somit ein extra Beitrag wert.
Solar
Beginnen wir mit dem Thema Solar. Ursprünglich habe ich mit 2 x 100WP ( Watt Peak – also Maximalleistung in Watt) Solarpanel geplant und diese auch so zunächst verbaut. Den Laderegler habe ich aber bereits für eine mögliche Erweiterung etwas größer gewählt. Die einzelnen Solarmodule bestehen aus je 72 Zellen. Das soll bei Teilabschattung mehr Strom liefern, als bei Modulen mit weniger Zellen.
Egal wo man sich in das Thema Solar einließt, es wird immer auf die Wichtigkeit des Solarladereglers hingewiesen. Dieser entscheidet in den meisten Szenarien mehr über den Ertrag, als die Module selbst. Um das Maximum aus deinen Solarmodulen herausholen zu können, sollte ein Laderegler vom Typ MPPT verwendet werden. Was das ist und warum, lasse ich lieber andere erklären. https://www.amumot.de/solar-laderegler-12v-mppt/
So bin auch ich dem Rat gefolgt und habe einen Laderegler von Victron Energy verwendet. Da ich mir aber die Möglichkeit einer Erweiterung der Solaranlage offen halten wollte, habe ich direkt den Victron Energy BlueSolar MPPT 100/30 bestellt. (Am Ende von dem Beitrag werde ich nochmal alle erwähnenswerten Produkte auflisten und ggf. verlinken.) Jedenfalls bin ich mit dem Teil absolut happy. Zum einen, weil er einfach genau das macht, was er soll, nämlich die Batterien effizient laden. Aber auch wegen der Schnittstellen und Zugriffsmöglichkeiten, worauf ich später beim Raspberry Pi nochmal im Detail drauf eingehen werde.
Ursprünglich nicht geplant war, dass wir den Trip direkt im April in der Schweiz beginnen. Als das jedoch fest stand, habe ich kalte Füße bekommen. Bei dem Sonnenstand war ich mir nicht sicher, ob ich mit meinen 200WP für alle Verbraucher (hauptsächlich 230V-Kühlschrank hinter einem Wechselrichter) ausreichend Silizium auf dem Dach von Jolly montiert hatte. So habe ich nochmal genau die Module bestellt, die bereits montiert waren und somit verdoppelt. Und im Nachhinein bin ich froh mit dieser Entscheidung. So haben wir eigentlich nie sehr stark entladene Batterien, was bei verwendetem Batterietyp nicht ganz unwichtig ist. Wobei wir direkt beim nächsten Thema wären.
Batterien
Bei dem Thema Batterien werde ich mich kurz halten. Warum und weshalb man welchen Batterietyp mit welcher Kapazität verwendet, können andere viel besser erklären. Und das haben die auch schon gemacht. So z.B. hier
Auch ich habe mich für 2 x 120Ah AGM-Batterien entschieden. Wobei auf lange Sicht sicherlich Lithium-Batterien die bessere Wahl gewesen wären. Warum erklären auch einige ganz gut.
oder auch bei amumot.dehier.
Aber ich musste ja auch etwas auf den Reisegeldbeutel schauen und bisher habe ich mit meinen AGM überhaupt keine Probleme. Und wer weiß, was auf dem Markt ist, wenn meine AGM mal „durch“ sind!?
Raspberry Pi
Jetzt kommen wir zum Herzstück der Elektrik. Raspberry Pi ist vermutlich der bekannteste und populärste Einplatinencomputer. Richtig, jetzt wird’s was nerdy. Auf Grund seines Betriebssystems Raspbian (ein Linux auf Debian-basis) ist das Teil vielseitig einsetzbar.
Das Portal des Solarladereglers von Victron Energy
So vielseitig, dass sogar der Hersteller des Solarladereglers Victron Energy ein Softwarepacket namens vrmlogger für das kleine Teil gebaut hat. Der Laderegler ist per USB mit dem Pi verbunden. Die Software ließt die Daten des Ladereglers aus und sendet dieses an den eigenen Web-Service https://vrm.victronenergy.com/ Alle Daten werden nun aufbereitet und echt gut präsentiert. Dadurch lässt sich von überall einsehen, wie es energiemäßig unserem Jolly so geht. Ob per Browser oder gar über die Smartphone-App (Android und Apple). Auch hier wieder ein Grund, warum ich froh bin, mich für den Laderegler entschieden zu haben. Victron Energy bietet einem sogar jetzt noch die Möglichkeit, diese Daten über eine API selbst abzurufen und weiter zu verarbeiten. Aber auch da komme ich später nochmal drauf. Hier ein paar Bilder von dem Webportal und der App.
Das war jetzt aber nicht der Hauptgrund, warum ein Computer im Camper fest verbaut wird. Das liegt ganz einfach daran, dass ich ein kleines nerdiges Spielkind bin und möglichst alles, wo ein paar Elektronen durch flitzen, gerne „Smart“ und flexibel z.B. per Smartphone oder zeitabhängig steuern können möchte. Anfangs hatte ich noch echt wilde Ambitionen. Ich wollte alles ohne Framework und co. in Software selbst entwickeln. Die ersten Zeilen Python waren bereits geschrieben. Vermutlich würde ich dann aber den Beitrag aktuell nicht schreiben, da ich noch fleißig am coden wäre. Aus dem Grund bin ich Marcus (Liebe Grüße an meinen ehemaligen Kollegen an dieser Stelle) echt dankbar, dass er mich auf openHAB aufmerksam gemacht hat. Obwohl auch openHAB mir echt noch viel Arbeit gemacht hat. Das liegt aber weniger an openHAB selbst, sondern eher an meinem speziellen Setup. openHAB ist jedenfalls eine Software, die ihren Einsatz eigentlich im Smart Home Umfeld hat. Ob es auch bei Smart Mobile-Home funktioniert? Diese Software-Lösung hat mich am Anfang nicht wirklich überzeugt. Erst als ich mir das HabPanel angesehen habe, war ich interessiert. Hier ein paar Bilder von meinem HabPanel bisher.
Dabei ist allerdings zu erwähnen, dass ich aktuell eher ein funktionales Panel zusammen geklickt habe. Das geht deutlich schöner. Wer hier inspiriert werden möchte, fragt einfach mal die Google-Bildersuche.
Da es sich bei HabPanel um ein webbasiertes Panel handelt, lässt es sich mit jedem Browser darstellen. So kann ich nahezu von jedem Gerät das HabPanel öffnen und Daten von Jolly abrufen und steuern. Ob am Smartphone, Notebook, Tablet, eingebautes Display vom Raspberry Pi oder gar vom Fahrersitz am Android-basierten Autoradio. Und für eine Webanwendung funktioniert das echt gut.
GPIO Erweiterung mit MCP23017 und I2C und Tinkerforge
Damit sich Verbraucher wie Licht, Wasserpumpe, Mikrotik Router, etc. überhaupt irgenwie durch den Raspberry Pi steuern lassen, ist das Schalten über Relais eine Möglichkeit. Also habe ich mehrere 8-fach Relais-Boards bestellt. Nur wie steuer ich diese ganzen Relais nur an? Klar kann ich die alle über ein paar Wiederstände und Transitoren an die GPIO-PINs (general purpose input/output) des Raspberry Pi anlöten. Doch dann sind schnell alle PIN’s belegt und ich habe keine Möglichkeit für andere Anwendungen und Erweiterungen mehr. Bei der Suche nach GPIO-Erweiterungsmöglichkeiten ist die Wahl auf den MCP23017 gefallen. Dieser wird über den separaten Bus I2C an den Pi angeschlossen und bieten dann 16 weitere Ein- oder Ausgänge. Klingt perfekt für mich. Ist aber leider mit etlichen Stunden löten verbunden. Und die kleinsten Fehler lassen einen schnell von vorne anfangen. Man, was habe ich am Anfang da rum gebraten. Löten konnte man das zu dem Zeitpunkt nicht nennen. Aber wie das immer so ist, mit eine bisschen Übung geht es dann irgendwann. Zwischenzeitlich habe ich sogar die Lochrasterplantinen weg gelegt und angefangen mir Platinen zu ätzen. Alles in allem war das Ganze echt Aufwändig und kleinste Fehler fressen ne Menge Zeit. Und am Ende wird man auf ein richtig geniales Baukastensystem für Elektronikbastler aufmerksam, mit dem alles deutlich einfacher ohne viel löten zu müssen, möglich gewesen wäre. Es heißt Tinkerforge, mit dem ich aktuell einige Eingänge (Wasserhahn, Taster, etc. an einem IO-16 Bricklet) realisiere. Jedem der ähnliche Projekte vor hat, der sollte sich unbedingt Tinkerforge mal ansehen. Die Relais sind jedenfalls jetzt per I2C mit dem Pi verbunden. Jetzt sollen diese aber auch über openHAB gesteuert werden können. Um Geräte mit openHAB steuern zu können, braucht es so genannte Bindings. Diese Bindings übersetzen die Befehle aus einer einheitlichen openHAB-Welt in gerätespezifische Kommunikation um. Bevor ich mich für den MCP23017 entschieden hatte, habe ich ein Binding für dieses Bauteil bereits gesehen. Perfekt, dachte ich! Funktioniert hat es aber zunächst überhaupt nicht zufriedenstellend. Es stand auch nicht in der Administrationsoberfläche PaperUI zur Installation bereit, sondern es gab nur eine .jar zum Download für eine uralte Version von openHAB. Damit hatte ich aber nur Probleme. Erst als ich aus den Quellen (von GitHub) selbst ein neues Binding gebaut und ein Kernel-Downgrade auf 4.4.50 durchgeführt hatte, hat es funktioniert. Mittlerweile wird aber mit openHAB ein ganz neues Binding für den MCP23017 mitgeliefert und lässt sich mit wenigen Klicks über PaperUI installieren. Hätte das nicht ein paar Monate früher kommen können? Das hätte mir einige Stunden Ärger erspart. Nochmal zu Tinkerforge. Die meisten Bricklets werden durch das existierende Tinkerforge-Binding unterstützt und lassen sich integrieren.
Solardaten in openHAB
Neben dem Schalten von Verbrauchern über Relais und dem Abfragen von Kontakten (Taster/Schalter) wollte ich natürlich auch meine Solardaten im openHAB integriert haben. Am schnellsten und einfachsten ließ sich das erstmal über das exec-Binding und einem kleinen Python-Skript realisieren. Das exec-Binding führt einfach Kommandos auf der Shell aus. Die Rückgabewerte lassen sich dann als String im openHAB weiter verarbeiten. In meinem Fall führe ich das Python-Skript mit einem Parameter aus. Der Parameter ist die Information vom Solarladeregler, die ich gerne zurück geliefert haben möchte. Z.B. die aktuelle Leistung in Watt, die die Solaranlage gerade liefert. Der Befehl kann dann wie folgt aussehen: „python3 dbus_sc.py %Variable%“. Das Python-Skript fragt den über USB angeschlossenen Solarladeregler mittels DBUS nach der gewünschten Information, bekommt diese geliefert und gibt diese schließlich auf der Shell aus. Diese Ausgabe packe ich in openHAB noch in ein Item, welches ich mir auf dem HabPanel dastellen kann.
LED-Stripes
Über der Küchenzeile und unter dem Bett (also quasi im Kofferraum) habe ich LED Stripes installiert. Auch hier wurde ich wieder von Marcus inspiriert. Jedoch habe ich etwas voreilig auf „Bestellen“ geklickt und los gebastelt. Im nachhinein hätte ich vielleicht besser Neopixel-Stripes genommen. Naja, jetzt verwende ich auch die vorliegenden Stripes. Der Pi liefert natürlich über seine GPIO-PIN’s nicht die Leistung, um die LED-Stripes betreiben zu können. So musste ich mal wieder den Lötkolben raus holen und eine Platine mit entsprechenden MOSFET Transistoren löten. Je Stripe also 4 GPIO-PIN’s, eine 12V Stromversorgung und am Ausgang Richtung Stripes die Leitungen für RGBW und Minus. Wer dazu eine Anleitung benötigt: hier https://dordnung.de/raspberrypi-ledstrip/! Die Steuerung über openHAB realisiere ich wieder mit dem Exec-Binding und dem Command „pigs p“. Mit der aktuellen Umsetzung lassen sich die weißen LED’s der Strips über einen Switch Ein- und Ausschalten, über einen Slider Dimmen und die bunten (also Rot Grün und Blau – RGB) per ColorPicker die Farbe wählen.
openHAB Binding für Victron Energy selber entwickeln
So ganz wollte ich mich mit der Exec-Lösung und dem Solarladeregler noch nicht zufrieden geben. Oder viel mehr habe ich durch Victron Energy noch mehr Möglichkeiten gesehen. Wie erwähnt, stellt Victron Energy die Daten über die API https://vrmapi.victronenergy.com/ zur Weiterverarbeitung zur Verfügung. Also habe ich angefangen selber ein Binding für openHAB zu entwickeln. Damit lassen sich die Daten der VRM-Installation eines Solarladereglers mit wenigen Klicks in openHAB integrieren. Mit dieser Variante ist auch denkbar, dass die Solaranlage vom Jolly in eine ganz anderen openHAB Smart-Home Umgebung integriert wird. Man ruft ja die Daten von der API übers Internet ab und muss nicht direkt mit dem Solarladeregler verbunden sein. Wer ebenfalls einen Victron Energy Solarladeregler hat und vielleicht sogar schon openHAB verwendet oder plant es einzusetzen, darf sich gerne bei mir melden. Würde mich über einen Beta-Tester freuen.
Bei der Verwendung von diesem Binding auf der openHAB-Installation im Jolly müssen natürlich ein Menge Daten übertragen werden. Zunächst die vom vrmlogger an die Victron Energy Server und diese werden dann auch wieder durch das Binding bei der vrmapi abgerufen. Und das, obwohl doch der Solarladeregler lokal angeschlossen ist. Das geht besser! So habe ich angefangen ein weiteres Binding zu entwickeln, welches die Daten direkt per DBUS über USB am Solarladeregler abfragt und in openHAB darstellt. Das ist aber aktuell noch in Arbeit.
WLAN im Camper
Damit wir von unseren Mobilgeräten sowohl mit Jolly als auch mit dem Internet kommunizieren können, hat der Jolly natürlich auch W-LAN. Installiert ist ein mikrotik Router/AccessPoint RouterBOARD 952Ui-5ac2nD. Daran angeschlossen ist ein LTE-Stick Huawei E3372. Dafür ist natürlich nochmal eine SIM-Karte erforderlich. Aber es gibt günstige reinen Datentarife.
In Planung
Es geistern natürlich noch weitere kleine Projekte und Sensoren in meine Kopf rum. Hier mal einige Stichpunkte, ohne diese aktuell weiter auszuführen.
Gassensor inkl. Alarmierung
Multimedia-Zentrale: Audioausgabe auf installierten Lautsprechern. Video wahlweise auf kleinem Fernseher oder Raspberry Pi Display
Tankfüllstandsanzeige (Frisch- und ggf. Abwasser)
Einbruchalarm mit Anwesenheitserkennung durch z.B. Smartphone im W-LAN
Weitere Temperatursensoren. (Einer existiert bereits)
und viele Weitere, die vermutlich nie umgesetzt werden
Da war jetzt alles dabei. Teilweise Punkte für die schon Sensoren existieren und ich rum bastel und teste. Aber auch welche, die ich mal als Spinnerei bezeichne und es vermutlich auch dabei bleiben wird.
Falls hier jemand schon Punkte in der Art umgestetzt hat, würde ich mich natürlich über ein Kommentar freuen.
So weit zum Thema Elektrik. Das ist jetzt hier nicht im Stil Tutorial geschrieben, mit dem man das Ganze oder auch nur Teile nachbauen könnte. Falls da jemand interesse dran hat, dem helfe ich dann gerne weiter. Einfach melden!