VanPi im Node Red Docker Container?

Moin moin,
ich möchte meinen (bald hoffentlich kommenden) Van smart machen.

Die HW-Komponenten RelayBoard, Dimmy, TouchDisplay und Shunt finde ich klasse. :wink:

Das VanPi OS möchte ich jedoch nicht direkt auf dem RP4 laufen lassen, sondern in einem Node Red Docker Container.

Das Build- / Deployment lässt sich dann über Container im Entwicklungs- & Test-Umfeld ziemlich gut automatisieren.

Hat das schon jemand in diese Richtung gemacht?

Damit möchte ich 2 Dinge erzielen:

  • Integration von Sensoren und Bussystemen (generischer CAN-Bus Adapter per esphome.io bzw. OBD2 Bridge)
  • Integration von Cloud Services der KFZ Hersteller Mercedes ME (mein Van wird ein Vito).
  • Die Leistung des RP4 auch für anderes nutzbar machen… Z.B. für “Home Assistant”, “Nginx Proxy”, “Pi-Hole”, “GPS Tracker”, “Media Server”.

und ganz nebenbei:

  • andere Fahrzeug Hersteller lassen sich dann wahrscheinlich auch einfacher anbinden (Z.B. VW Car Net / VW WeConnect, BMW Connected Drive, SEAT Connect, Peugeot, …)
  • und ganz weit geträumt: Van Benachrichtigungen &Steuerung via SmartWatch, Integration von Gas-Sensor, Cams, BLE Token, Verbrauchsmessung Landstrom, Alarmanlage für Van und Rad.
2 Likes

Interessanter Ansatz und sollte möglich sein, allerdings bedarf es da etwas Feintuning :smiley:

Man braucht Zugriff auf die seriellen Schnittstellen, auf GPIOs, auf diverse Shell- und Pythonscripts, auf eine SQLite-Datenbank, auf diverse Dateien für Systemeinstellungen (z.B. wenn man das Wifi aus NR heraus ändern will), es wird auf viele Dateien im Home-Ordner zugegriffen…

Also definitiv machbar denke ich, aber mit Aufwand verbunden.

Nginx läuft standardmäßig und alles andere könnte man dazu installieren, geht ja auch ohne Docker. Ist aber wohl am Ende die Frage, was einem persönlich eher liegt, bzw. wieviel Aufwand dafür aufgebracht werden muss.

Ein Mix wäre vielleicht auch interessant. Man installiert Docker zusätzlich, lässt NR weiter direkt auf dem System und dann alle anderen Programme (HA, Pi-Hole, etc.) in Containern laufen.

1 Like

Klingt spannend bin gespannt ob du das hin bekommst.

Ich glaube allerdingst das du da schon zwei Systeme genannt hast die sich ziemlich beißen. HA und PKW.
Aber es klingt so das du dich auf der Linux Konsole zuhause fühlst dann könnte das ja was werden.

Wie du an die Cloud der Hersteller kommen willst ist mir ein Rätzel vor allem was das bringen soll ist mir noch nicht so ganz klar.

1 Like

Hey @okidoki
Hab in den letzten Wochen viel mit dem Vanpi herumgespielt und hatte dabei ganz ähnliche Gedanken wie du. Immer wenn ich was zusätzliches installiert hab, fehlt mir die Möglichkeit, das sauber zu “dokumentieren” um später auf einem frischen RPi Gerät zu reproduzieren. Da ich auch weitere Services hinzufügen wollte, kam mir der selbe Gedanken mit Docker-Compose.

Bis jetzt hab ich:

  • Container Node-RED
    • eigenes Image basierend auf nodered/node-red aber zusätzliche Packages installiert
    • läuft im Host-Modus für Zugang auf Bluetooth
  • Container Mqtt (image eclipse-mosquitto)
  • Container pigpiod
  • Container zigbee2mqtt (image koenkk/zigbee2mqtt)
  • Container own tracks recorder
    • optional
    • nutze ich um GPS Tracks aufzuzeichnen

Ich nutze das RPi in einem bestehenden WiFi Netzwerk und nicht im AP-Modus, weiss nicht ob und wie das im Container möglich wäre.

Zugang zu den GPIO Pins funktioniert super mit via pigpiod (siehe oben).

Bin nun dabei die Seriellen Devices für den Container freizugeben. Sobald ich ein Version hab die halbwegs läuft teile ich gerne mein Github-Repo.

Das bedeutet aber das du ja eigentlich kein PeKaWay mehr verwendest glaube nicht das der Nodered flow damit klar kommt von Pekaway klar kann man das auch alles anpassen.

Ich wüsst nicht warum das im AP Modus nicht gehen sollte du brauchst so der so eine Feste IP für den PI und dann sollte man immer die Container ansprechen können.

Bin mal gespannt ob du die Seriellen Devices in den Container bekommst.

Ich finde das Konzept von Venus OS irgend wie auch nicht schlecht da gibt es für alles eine Service und die pusten die dann die daten durch den D-BUS je nach Konfig werden Dienst gestartet. Klar für gewisse Sachen sind Container einfach unschlagbar. Aber für Treiber die die Hardware brauchen ?

DerKleinePunk · GitHub da sind meine Idee und versucherle zu finden

Ist vielleicht eine etwas philosophische Frage, ab wann du das nicht mehr PeKaWay nennen willst :wink: Aber eigentlich läuft PeKaWay fast unverändert. Alles was es dafür braucht ist der Ordner unter ~/home/pekaway darin sind ja eigentlich alle Flows und Skripte. Diese kann ich einfach via bind mount vom Host-System in den Container mounten.

Gewisse Funktionen werden natürlich nicht mehr möglich sein, wie ein system reboot oder das Upgrade-Skript ausführen. Von dem her hast du bestimmt Recht, dass ich hiermit längerfristig von dem originalen Projekt abweichen werde. Das ist mir bewusst und nehme ich in Kauf.

Falls es sich aber als funktionierendes Projekt herausstellt, das auch andere Builder aus der Community gerne verwenden würden, bestünde natürlich die Möglichkeit, dass die Jungs von VanPi (@Vincent) das unterstützen und als offizielle Installations-Methode anbieten. Aber ich verstehe natürlich, dass das keine Priorität hat. Und genau dafür ist die Community ja da, um auszuprobieren.

Ja klar kann man das mal Testen.

Bei der Aussage zur Abweichung bin ich eher davon ausgegangen das die “Tools” nicht mehr Funktionieren wie die Scripte die zum Beispiel auf die Hardware zugreifen.

Und da ich es zum Teil wirklich etwas undurchsichtig finde welche daten wo her kommen schätze ich das viel schwieriger ein als es ist.

Wenn es für dich Funktioniert ist doch Cool. Ich bin halt Software Entwickler im BOS Bereich und schon lange im Geschäft. Kann schon sei das man da machmal ein bisschen blind ist und oder die Anforderungen zu hoch setzt. Mein Software muss 24/7 laufen da hängen wenn es dumm läuft Menschen leben dran.

Ich habe bisher bei der Tool Auswahl auf die Wartung und Weiterentwicklung gesetzt. D.h. Möglichst breite Community für die einzusetzenden Programme und Komponenten, bzw. Guten support als das Entscheidungkriterium genommen. Also eher ‚ ‚Buy als Make‘. Daher möchte ich als Basis eine Home Assistant OS mit supervisor auf dem Raspberry verwenden. Alle weiteren Komponenten als Home Assistant Addons einbinden. Die kernfunktionen wie Reboot, Update des OS mit den Paket-Abhängigkeiten und Security funktioniert sehr zuverlässig. Die integration von HW wird sehr schnell vorangetrieben. Die Konfiguration des UI und Automation ist schon standardisiert und gut dokumentiert.
Das scripting bzw. Firmwareaktualisierung kann auch online bzw. Im Van am Strand vorgenommen werden.

Die eigene Tätigkeit begrenzt sich damit auf das zusammenführen der Komponenten, die ja schon sehr speziell in einem Van sind. Die Zielgruppe ist entsprechend klein.

Hier meine Überlegungen, in der Hoffnung das ich an dem Thema Pekaway OS nicht zu weit vorbeischieße, sondern auf ‚VanPi‘ fokussiert bin. Schließlich wie hier nur Geld mit dem Verkauf von HW Komponenten und nicht mit den NodeRed Flows verdient….

Für mein HW Setup:

  • Adapter: USB Stecker auf Standheizungssteuerung Autotherm

  • mit einem Surfstick den RP4 ins Internet, als auch Backup für den GPS Tracker.

  • Kühlschrank, Gefrierfach & Innenraum-Temperatur mit jeweils DS18B20 Sensor.

  • VanPi Dimmy für LED Ambiente-Beleuchtung der Aufbauten

  • VanPi Messhunt für AufbauBatterie, ggf. Solar

  • phys. Schalter f. WLAN AP und phys. Schalter für Raspberry Stromversorgung (Hard Reboot)

  • Sonoff Display oder VanPi Display zur Steuerung

  • RP4 mit SD Karte, Stromversorgung über VanPi Relayboard, ggf. stromPi oder Geekway Batterie Puffer.

  • GOK Senso4s für Gasfüllstand mittels BLE

  • APDS9960 Sensor für Gestik-Steuerung; (zusätzlichen ESP8266 falls I2E bereits durch VanPi belegt ist)

  • MEMS CO, Alcohol, NO2 & NH3 Gas Sensor (zusätzlichen ESP8266 falls I2E bereits durch VanPi belegt ist)

  • USB Stick f. History Datenbank & Logs (um die Lebenszeit der SD karte zu verlängern)

das Software Setup:

1 Like

Hut ab ! da hast du ein Tolles System gebaut!

Auslesen der Starterbatterie, Tankanzeige, KFZ Temperatur, Türöffner/Schließung
Das würde mich näher Interessieren.

Hast du das ganze irgend wo öffentlich hinter legt ?

Die Integration der Smart Services der KFZ Hersteller ist daher notwendig. Dafür der Cloud-Zugriff auf die KFZ-Hersteller, zwar über den cloud Umweg, aber die meiste Zeit werde ich mein Fahrzeug eh mit Internet Zugang versorgt haben und nicht im outback unterwegs sein.

Für den Mercedes Vito ist dafür das HA Addon „Mercedes me“ notwendig (siehe vorherigen Post von mir). Für andere Hersteller dann die entsprechende anderen Integrationen/Addons (siehe mein eingangspost)

Ich werde es in mein public GIT kippen, sobald der Van vor der Haustür steht und ich basteln darf.

Ok ich hatte es so verstanden das es schon läuft.
Bin gespannt gerade was du an Infos aus deinem Auto hin bekommst ich meine ohne Internet.
Mich hat schon erschreckt was die neuen Auto so alles ins Netz pusten bin ich froh ein altes Auto zu haben.

@okidoki sehr interessanter Ansatz! Wenn ich das richtig verstehe, möchtest du so viel wie möglich mit HA abdecken und VanPi “nur” noch für ein paar Funktionen nutzen, welche nicht trivial mit HA abzudecken sind (bspw. Steuerung d. Heizung), korrekt?

Da wäre ich dir sehr dankbar. Würde mich gerne davon inspirieren lassen.

Verwendest du zur Steuerung des Dimmys weiterhin VanPi, oder denkst du das direkt in HA einzubinden?

Noch eine kurze Frage: Meinst du damit, dass du das Image für das RPi auf die SD flashst und somit den Supervisor kriegst? Mit der Docker-Installationsmethode geht das ja glaube ich nicht.

geiler Ansatz. Bin Gespannt was bei raus kommt meine ersten Versuche waren auch mit Home Assistant.

Doch das geht

@TKone7 : Home Assistant OS ist ein abgespecktes Linux mit dockercompose und einer HA API zur Steuerung. D.H. Home Assistant OS läuft direkt auf dem RPi ( Raspberry Pi - Home Assistant installation) . Alles weitere (u.a. Home Assistant und jedes HA Addon - auch Node Red!) läuft in einem eigenen Docker Container. Home Assistant OS bietet ein bereits vorhandene Ökosystem zur Docker Container Steuerung und Überwachung. Wenn eine Komponente (z.B. Addon oder Integration) rumzickt, funktioniert alles weitere und braucht keinen kompletten reboot.

Die Docker Installationsmethode auf dem RPi ist nicht so doll, da damit keine HA Addons per UI Installation möglich ist. Somit müsste man wieder mit dockercompose auf der Console umschrauben.

ich hoffe, dass der PeKaWay Dimmy direkt mit i2c an dem RPi angeschlossen werden kann. Also den i2c an den NodeRed Docker Container auf dem HA OS ‘durchgeschliffen’ werden kann. Dieses ‘durchschleifen’ wird z.B. beim HA Addon ‘Raspberrymatic’ für die Funkmodems durchgeführt. Ich hoffe jedoch, das es bereits eine funktionsfähige HA Integration gibt, so dass die Standard HA Lampen UI Controls genutzt werden können. (für on/off, Helligkeit und Farbe)

Für die Standheizung (ich bekomme eine Autotherm) wird von dem HA Forum auf die VanPi Hardware verwiesen :wink: (Request - Planar diesel heater control - #7 by monaco - Configuration - Home Assistant Community). Da ich davon ausgehe, das die VanPi USB Schnittstelle funktioniert, kann ich den entsprechenden Node Red Flow für das Kommunikationsprotokoll verwenden. Vielleicht klappt auch eine direkte HA Integration, so daß die Standard HA Thermostat UI Controls verwendet werden können. Dann kann auch der Sonoff NSPanel HomeAssistant-Patch genommen werden.

Das Sonoff NS Panel für die Steuerung wollte ich verwenden, da 2 physische Taster gleich dabei sind und das UI vom Display mit dem UI der HA Weboberfläche ähnelt. Ein 5v Betrieb mehrfach im iNet bestätigt wurde und die Wetteranzeige/-vorhersage Standortbezogen gelöst ist.

Viele VanPi Scripte sind für die Infrastruktur notwendig (Netzwerk Konfig, Update & Boot). Die Wartung der Scripte entfällt damit.

Homebridge ist für IOS klasse, ohne ein AppleTv jedoch aus dem Internet nicht zugreifbar. Die kostenlose HA App für IOS funktioniert im WLAN, als auch über Internet ohne VPN und dennoch gesichert.

@okidoki did you manage to build a working Docker image / container? I tried today with a lot of different base images and approaches but I always get stuck somewhere.

I’m focussing on an different approach: I’ve installed Home Assistant on RP4 SD Card of Relay Board
using the Home Assistant Addon “Node Red” as template for creating a new Addon “HA_vanpi”, but’ it’s still in developement:

  • HAOS can see USB, I2C, Serial and SSH is accessible
  • Passthrough of GPIOs, I2C and Serial to Docker is possible (Addon is currently in trusted mode :frowning: )
  • NR Dashboards from VanPi are not accessible anymore, but I plan to replace them by HA default UI.
  • I have no space for the VanPi Display and choose Sonoff NS panel, with “HA NS Panel Blueprint”.
  • internet access & WLAN is provided by an external router. WLAN is deactivated on RP4
  • Bluetooth SmartShunt, LiFePo BT Battery are fully integrated in HA and their values visible in NR Flows.

Currently struggeling with the remote access from HA App of my mobile to the HA Installation. Guess it’s the problem with NAT of the Telekom Provider in germany: outgoing IP traffic is possible, but incoming is blocked.

@okidoki thank you for the answer :+1:

Were most things you listed working “out of the box” (or with little tweaking), or did you have to customize a lot?

I haven’t tried HA OS so I will give it a try next. In the meantime I realised my RPi 5 does not really work with the current VanPi system, so I ordered a RPi 4 and I am patiently waiting for it to arrive.

Regarding dashboards, I already started writing an independent frontend using React, since I find the NR dashboard system to be really cumbersome and quite limited. Plus, I read somewhere that the project is stale since one of the main dependencies is not being maintained anymore. A custom UI would make customization much easier and I can add new functionality (like grouping relays into tabs, adding switches that do multiple things etc.). I guess HA UI is also a good choice, definitely more end-user friendly than a custom react implementation.

Last but not least, I stumbled upon a project called IOT Stack and I was actually hoping to use that one in order to dockerize everything on the RPi: