VAN PI Core Beta Image v2.0.0

EDIT (10. Mai 2024):

Die zweite Version ist online! Download unter Beta-Releases → VanPiCTRL_Core_Images

Wie angekündigt sind wir jetzt mit der BETA2.4 auf Debian 12 Bookworm unterwegs, mit NodeJS 22 und Python 3.11.
Dafür wurden die Bluetooth Skripte für JBD, Pekaway Wireless Shunt und Pekaway MPPT S20 überarbeitet, die Verbindung wird nun dauerhaft aufrecht erhalten und alle 20min neu gestartet, oder wenn keine Daten mehr kommen. Gleichzeitig wurden die Skripte für DS18B20 und die Tanksensoren überarbeitet.

Das führt im Großen und Ganzen dazu, dass wir eine deutliche Reduzierung im Ressourcenverbrauch haben, im Test teilweise bis unter 2% durchschnittliche CPU Last (mit 4 gleichzeitigen, dauerhaften Bluetooth Verbindungen/Abfragen).

Dazu sind alle Verbindungen mit Bluetooth auch im Access Point Modus deutlich stabiler geworden und haben eigentlich keine weiteren Probleme mehr verursacht.

Für das Wifi-Management wird jetzt Network-Manager verwendet, anstatt wie vorher hostapd und dnsmasq.

(Das neue Image wurde noch nicht auf dem älteren Relayboard getestet, kann gut sein, dass da noch System Packages und Python Module nachinstalliert werden müssen)

Den vollen Changelog findet ihr auf GitHub.


Moinsen,

das erste Image für den VAN PI Core ist online und kann heruntergeladen werden:

Und zwar hier: Download unter Beta-Releases → VanPiCTRL_Core_Images

Mit der neuen Hardware haben ein paar neue Bausteine ihren Weg ins Van Pi OS gefunden:

  • RuuviTags Pro 3in1 können hinzugefügt und ausgelesen werden
  • der Pekaway MPPT Solar Charger S20 kann ausgelesen werden
  • der neue (kommende) Pekaway wireless Shunt wird unterstützt und ausgelesen
  • der MPU6050 auf dem Board kann zur Positionsanzeige benutzt werden
  • es gibt eine neue Kategorie “Wireless” in den Einstellungen, für alles was mit Wifi und Bluetooth zu tun hat.
  • die Umschaltung zwischen kapazitiven und Widerstandsensoren wird nun in der Software vorgenommen, also keine Jumper mehr auf dem Board
  • es gibt ein neues Pythonscript “ble_manager.py”, darüber werden alle Scripts gestartet, die BLE verwenden. Das Script prüft, ob grade ein anderes Script läuft und stellt dann das neue Script hinten an. Damit sollen gleichzeitige Zugriffe auf den BLE Port verhindert werden. Heißt aber auch, dass die Werte der einzelnen Scripts nicht mehr ganz so regelmäßig kommen, weil es davon abhängig ist, wie lange die Schlange ist. (Scripts die bereits in der Schlange sind werden aber nicht nochmal eingereiht). Also lief bis jetzt sehr zuverlässig.
  • es gibt eine Weltkarte für die Darstellung der GPS Daten
  • es gibt die Möglichkeit einen UART RJ45 GPS Adapter anstelle des Touchisplays anzuschließen, die Baudrate wird dabei automatisch geändert zwischen Display (38400) und GPS Adapter (9600)
  • es sind ein paar neue Endpunkte zur API dazugekommen, zum großen Teil benötigt für die Smartphone App
  • die MQTT Funktionen, die sich um den Fernzugriff kümmern sind erweitert worden
  • man kann seine Logindaten für die App jetzt im Frontend eintragen (vorher in der App registrieren, oder eigenen Server benutzen)
    – also wer schon einen Router bzw. Internetzugriff hat kann darüber mit unserer App sein System steuern. Ansonsten sind die neuen IoT-Bridges in der Entwicklung
  • die MCP Inputs heißen jetzt “Switches Inputs” und wurden für das neue Board auf 8 erweitert

Im Großen und Ganzen war das das Wichtigste.

Im Prinzip kann das Image ebenfalls auf dem älteren Relayboard genutzt werden. Ich hab alles, was nicht mehr benötigt wird für das neuere Core, nur deaktiviert und nicht gelöscht, ein bisschen nacharbeiten muss man also. Zum Beispiel die Wassersensoren und der alte Shunt sind komplett deaktiviert, weil auf dem neuen Board ein anderes Script benutzt wird zum Auslesen.
Denkt dran, dass ihr eine zweite Node-RED Instanz starten könnt, dann könnt ihr immer direkt vergleichen im Backend, solltet ihr Anpassungen vorgenommen haben.

Bitte beachtet, dass das Image sich noch im Beta Stadium befindet. Gleichzeitig arbeiten wir an einem komplett neuem Image, mit den neusten Versionen von Debian, NodeJS, Python etc. etc.

Dazu muss ich auch sagen, dass der neue Shunt manchmal Probleme macht. Also im Zusammenhang mit dem Image bzw. der Bluetoothverbindung zum RPI, man kann zum Beispiel über das Smartphone mit einer direkten Verbindung immer zuverlässig alles auslesen. Fehleranalyse läuft, meistens ist es ja bekannterweise irgendwas dummes :smiley:

Wenn ihr Probleme und Bugs findet, bitte immer her damit!

3 Likes

Hallo Vincent
Ich habe im Schaltplan gesehen, das ihr beim mpu6050 den Interrupt Pinn angeschlossen habt.
Was macht ihr damit???
Kann das sein das ich deswegen mit dem alten Bord nichts bekommen habe???

Der ist angeschlossen aber aktuell wird er noch nicht weiter benutzt bei uns. Denke nicht dass das das Problem bei dir ist, aber man weiß ja nie.

Moin Vincent
nee Vermutlich nicht, hab eben mal die neue Version aufgespielt, und der NEUE MPU6050 hat auf Anhieb funktioniert. was mich nur wundert ist, das dass Bild aus meinem VANSPACE 3D direkt dadrinne war. ???
GPS bekomme ich nicht ans laufen.
Ich hatte ja den NEO-6 Chip über Netzwerkkabel am Display Ausgang angeschlossen.
Das habe ich jetzt bei der neuen Software “altes blaues Board” mal einfach eingesteckt
aber da kommen keine Daten. Schaltet auch nicht auf 9600Baut um.
Hier wurde letztens über einen Erschütterungssensor geschrieben.
Der macht das im Prinzip über den Interupt. gut der schaltet ne LED, aber geht ja auch was anderes :slight_smile:

Gruß
Arno

Please please please include a possibility to translate the menu text.
English is fine but if we can edit ourself it would be perfect.

Thanks

Das Image kann ich auch auf ein VAN PI HAT ohne Problem aufspielen? Wasserstand abfrage kann wieder aktiviert werden? Kann die Temperatur der Standheizung via RuuviTag geregelt werden?

1 Like

Ist nicht getestet, aber sollte funktionieren. Du musst ein paar Änderungen in Node-RED vornehmen, genauso wie bei dem Relayboard.

Die Wasserstandabfrage passiert zum Beispiel jetzt anders. Die älteren Nodes müssen wieder aktiviert werden und die neueren deaktiviert, dann sollte es gehen.

RuuviTags als Temperatur für die Heizung ist noch nicht drin, ich schreibs aber mal mit auf.

Hallo

Pekaway MPPT S20 Silent Solar Charger verliert immer wieder die Verbindung zum Core.
Die ersten 24 Stunden Problemlos funktioniert, ab dem 2 Tag hat er keine Daten mehr angezeigt.
Nach einem Neustart zeigt er zwar Daten an aber nur unregelmässig.
Hab jetzt den Victron wieder eingebaut und der Läuft Problemlos 24/7
Gruß Michl

Neues Update v2.0.0 BETA 2.4 ist online, siehe EDIT im ersten Post ganz oben

Hallo

Display zeigt nur noch Timeout an mit software 2.4 beta.
Mit der software 2.0 funktioniert das Display bis auf die webasto Steuerung.

@Half-car-trailer
Moin Michl
disable den Kram mal.
der sorgt für eine Automatische umschaltung wenn GPS und nicht Display vorhanden.
Das funktionierte bei der ersten Beta noch nicht, liegt eventuell daran

Ich habe die Betaversion 2.4 auf das alte blaue Relayboard aufgespielt.

Außer auf der Seite Relaycontroller habe ich nichts geändert.

Nachdem ich meinen ganzen Kram importiert habe, liegt die CPU Leistung bei 5 %
mit Zigbee bei 10 %, das sind gute 10-15% weniger als mit der Vorgänger Version.
grafik

Sonst funktioniert alles, die Modbus Implementierung fürs BMS, Sensoren über Onwire,I²C, und Modbus.
Bei GPS muss ich noch ein paar Anpassungen vornehmen, das ich über Telegram abfragen kann.
Und die Wassertanks werden nicht zur App übertragen. Ist sicher ne kleinigkeit, hat ja mal funktioniert :wink:
Gruß Arno

Edit !!!
Zigbee lässt sich zwar aktivieren verbraucht auch Ressourcen
grafik
aber Webseite lässt sich nicht öffnen.
und Bridge und Sensor verbinden sich nicht.
grafik
EDIT_2 !!!
nach ca 1 Stunde war Zigbee zur Verfügung ??? komisch.

Hallo zusammen,
ich melde mich auch mal in diesem Thread.

Hatte letzte Woche die Version 2.0.0 auf mein System aufgespielt und auch alles recht schnell ans laufen bekommen, was ich so nutze:

  1. Pekaway HAT
  2. Pekaway Shunt 200A (der alte, verkabelt)
  3. Wasserstandssensoren (Votronic, damals noch gelötet)
  4. Temperaturen
  5. Victron MPPT Laderegler 75/15 per USB-Adapter
  6. Autoterm 2D per USB-Adapter

Ursprünglich wollte ich auch einen MPU6050 den ich hier rumfliegen hatte an den HAT anschließen aber leider ist mein HAT wohl zu alt. (Laut schematic gibt es da eine Vorrichtung für eine RTC, die mir leider fehlt.)

Heute habe ich die 2.4 aufgespielt und die Wasserstände sowie Shunt wollen noch nicht, vermute es hängt an der neuen Python Version, ich melde mich sobald ich mehr weiß.

Mein aktueller Stand ist: irgendwas mit der Bibliothek adafruit_ads1x15 funktioniert nicht.

Hatte es auch schon mit einem venv und alternativen Bibliotheken wie adafruit-circuitpython-ads1x15 · PyPI versucht, allerdings ohne Erfolg.

Folgende Fehler traten zwischenzeitlich auf:

adc = adafruit_ads1x15.ads1115(0x4a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable

Aktuell bekomme ich die Ausgabe:

no data
Exists
errorUpdateShunt
errorUpdateShunt
errorUpdateShunt
errorUpdateShunt
errorUpdateShunt
errorUpdateShunt

Allerdings sehe ich nicht was an der Stelle bei “errorUpdateShunt” schiefgeht …
Mache für heute Feierabend, vielleicht fällt euch ja was ein?

zu Zigbee: Das Problem liegt an der Node hier:

image

Die blockiert den ACM0 Port. Wenn jetzt dein Zigbee Adapter aber auf dieen Port zugreifen will, Node-RED aber zuerst da war, dann gibts bei Zigbee einen Error und der Dienst startet alle 20s neu. Du kannst mit

ls -l /dev/serial/by-id

nachsehen, welchen Port dein Adapter belegt. Zum Beispiel geht ein u-Blox USB GPS auch auf ACM0, und dann wäre der Zigbee Adapter auf ACM1. Gleichzeitig ist ACM0 aber auch in der Zigbee Config festgeschrieben. Also müsste das dort auch noch geändert werden. (/opt/zigbee2mqtt/data/configuration.yaml)

Das Python Script:

Ich hatte noch keine Zeit das durchzutesten, aber es sollte an den Modulen liegen. Du könntest mal versuchen die komplette ältere pip3list in einem venv zu installieren? Dann wären zumindest alle Module vorhanden und das Setup so wie auf dem alten Image.
VAN_PI/VanPi-OS/pip3list.txt at main · Pekaway/VAN_PI · GitHub

Oder im Zweifel auch noch eine ältere Python Version dazu?

Beim Display hatten wir in unseren Tests eigentlich keine weiteren Probleme, kann das jemand bestätigen und/oder eventuell rekonstruieren?

Hallo Vincent
danke für die schnelle Antwort!! Auch wenn das zum Teil Böhmische Dörfer sind :wink: .
Zu tief in Raspberry eintauchen ist zu viel für mich.
Das “(/opt/zigbee2mqtt/data/configuration.yaml)” habe ich gefunden.
Wenn man da aus dem ACM0 ein ACM1 macht könnte das helfen???
Vorallem wenn man eine GPS USB Maus und Zigbee verwendet!!!
Ich wollte am System eigentlich nicht soviel verändern, weil im Moment läuft bei mir alles, Die Daten zur App die ich teilweise geändert habe kommen auch, die Änderungen für GPS funktionieren, und der ganze Telegram Kram funktioniert auch.
und die durchschnitliche CPU leistung liegt bei ~ 6% trotz Zigbee, da konnte man bis dato 15 bis 20% draufschlagen :joy: :+1:
Gruß Arno

Hi Vincent

Das Display mit dem Core Board und der Software 2.4 zeigt nur Timeout an.
Das gleiche Display mit dem alten Relayboard (das schwarze ) und Software 1.2 funktioniert das Display .
Wann kommt den die Finale Version?

Gruß michl

@ahtdf Ja genau, also du gibts in der Konsole einfach mal

ls -l /dev/serial/by-id

ein, dann siehst du auf welchem Port dein Zigbee Adapter hängt, also ttyACM0 oder ttyACM1 zum Beispiel. Den Port trägst du enstrpechend in der configuration.yaml von Zigbee ein und dann einmal den Dienst neustarten mit

sudo systemctl restart zigbee2mqtt.service

und in Node-RED den Port auch anpassen, auf die USB Maus.

@Half-car-trailer Also anderes Board, anderes Image und anderes Raspberry Pi? Oder ist das das selbe Raspberry, mit dem du das versuchst?

1 Like

Zum Python-Script habe ich updates:

Im Thread2 (ADC abfragen für Stunt und Level) läuft soweit erstmal alles - zumindest keine Fehler mehr.

Habe es dort angepasst auf die Funktionen wie in simplelevel.py (mit AnalogIn usw.)
Allerdings kommen noch keine Werte und er meckert “errorUpdateShunt” …

Ich vermute das hängt damit zusammen das in Thread3 die Datenbank noch folgenden Fehler wirft.
Wurde die DB verändert?
Kann ich die DB irgendwie neu initialisieren?

Exists
Exception in thread Thread-3 (thread3):
Traceback (most recent call last):
  File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.11/threading.py", line 975, in run
<frozen importlib._bootstrap>:1049: ImportWarning: _ImportRedirect.find_spec() not found; falling back to find_module()
    self._target(*self._args, **self._kwargs)
  File "/home/pi/pekaway/ads_py/web1.py", line 310, in thread3
    sql_update(conn,t,watthours,watthours2)
  File "/home/pi/pekaway/ads_py/web1.py", line 298, in sql_update
    cursorObj.execute(ssql)
sqlite3.OperationalError: no such table: tbl_energy

Ne, die Datenbank wurde nicht verändert und wird mit dem neuen Shunt auch nicht mehr verwendet.
Du kannst dir die Datenbankstruktur mit dem SQLite Broswer angucken: https://sqlitebrowser.org/

Ansonsten versuch mal die Datenbank durch eine ältere zu ersetzen von hier: VAN_PI/VanPi-OS/newFilesForUpdate at main · Pekaway/VAN_PI · GitHub

Oder du erstellst dir eine neue Datenbank und insitialisierst die neu, geht ebenfalls mit dem SQLITE Browser:

CREATE TABLE tbl_energy(id integer PRIMARY KEY, dateint integer, wh real)
CREATE TABLE tbl_energy2(id integer PRIMARY KEY, dateint integer, wh real)
CREATE TABLE tbl_default_val(id integer PRIMARY KEY, maxval integer)