SoC Modulerstellung

Alles rund um SoC (Ladezustand des Fahrzeuges). Probleme, Fragen, Fehlfunktionen gehören hier hin
Antworten
tux75at
Beiträge: 78
Registriert: Mi Mär 23, 2022 5:16 pm

SoC Modulerstellung

Beitrag von tux75at »

Hallo,

Noch habe ich kein openWB am laufen, meine PV-Anlage bekomme ich bald und ich suche noch nach der richtigen Wallbox, überlege die smartWB mit openWB Standalone zu verbauen.
Da für mein Wunsch EV noch kein Modul existiert, ich dann aber mit PV-Überschuss laden können möchte, bin ich dabei ein Modul zu erstellen.

Voraussetzungen sind gut, es gibt einen Python Code, ein Forennutzer war so nett und hat für mich ein paar Sachen getestet. Die Tests waren soweit erfolgreich und ich würde sagen der Proof of Concept ist mal erfolgreich. Jetzt gibt es noch genug Arbeit:
  • SoC in die Ramdisk schreiben ist zwar trivial, soll dort nur der Integerwert rein? oder gibts da ein bestimmtes Format?
  • Derzeit ist ein PIP Modul in Verwendung, Sourcen sind vorhanden und funktionieren zumindest bis zum Login, weiter muss noch getestet werden.
  • Verwendete Bibliotheken (e.g. cryptography.hazmat) auf openWB verfügbar?
  • Logging für Fehlersuche in Logfile (derzeit geht alles auf die Standardausgabe)
  • Wie bekommt man ein Modul zum Testen in ein openWB Testsystem rein?
  • Kann man hier auch zum Testen etwas triggern oder benötigt man dann eine Wallbox die durch das Laden auch die SoC Abfragen triggert? (Zur Not über Shell-Command mit den Parametern die von openWB auch verwendet werden)
Falls es diese Informationen schon gibt, würde ein Link helfen, ich konnte leider nichts finden.


Schöne Grüße
Tux
aiole
Beiträge: 6780
Registriert: Mo Okt 08, 2018 4:51 pm

Re: SoC Modulerstellung

Beitrag von aiole »

tux75at hat geschrieben: Di Apr 12, 2022 6:25 pm
  • Wie bekommt man ein Modul zum Testen in ein openWB Testsystem rein?
  • Kann man hier auch zum Testen etwas triggern oder benötigt man dann eine Wallbox die durch das Laden auch die SoC Abfragen triggert? (Zur Not über Shell-Command mit den Parametern die von openWB auch verwendet werden)
Schöne Grüße
Tux
Moin,
ich nehme dazu eine 2. standalone, wo die Testinstallationen laufen. Damit bleibt die Produktiv-oWB verschont.

Der SoC-Bezug ist komplett unabhängig von smartWB zu sehen. Die smartWB ist ähnlich wie die oWB Pro ein Ladepunkt (Sie läuft dann im "remote"-Modus.), der per API von oWB ferngesteuert wird. Die Infos dort sind nur ladetechnischer Natur - kein SoC.

Bei "nur SoC für Modell XY" würde ich meinen, dass man das durchaus auf der Produktiv-standalone machen kann, sofern man mit SSH und Konsole vertraut ist. Da in oWB alles über MQTT geht, kannst Du z.B. den MQTT-Explorer nutzen, um Variablen etc. zu prüfen.
https://mqtt-explorer.com/

Ansonsten läuft das ganze coding über Github. Unter modules findest Du die bisherigen SoC-Implementierungen:
https://github.com/snaptec/openWB/tree/master/modules
Flocki
Beiträge: 458
Registriert: Fr Aug 28, 2020 12:43 pm

Re: SoC Modulerstellung

Beitrag von Flocki »

Hi,

es gibt hiere viele Wege zum Ziel, aber ein für meine Module habe ich folgende Lösungen gewählt:

- SoC in die Ramdisk schreiben ist zwar trivial, soll dort nur der Integerwert rein? oder gibts da ein bestimmtes Format?
Ja, einfach den Integer-Wert reinschreiben

- Verwendete Bibliotheken (e.g. cryptography.hazmat) auf openWB verfügbar?
Fehlende Bibliotheken können über die entsprechenden Shellscripts (ich meine update.sh und/oder atreboot.sh) installiert werden, sofern noch nicht verfügbar.

- Logging für Fehlersuche in Logfile (derzeit geht alles auf die Standardausgabe)
Die Module werden über ein Bash-Script aufgerufen. In dem kannst du die Standardausgabe in das Log-File verbiegen.

Code: Alles auswählen

LOGFILE="$RAMDISKDIR/soc.log"
sudo python3 "$MODULEDIR/[Phyton-Script]" [Parameter] &>> $LOGFILE &
Dazu würde ich auf einem Entwicklungssystem empfehlen, die Loggröße höher als die üblichen 2000 Zeilen zu setzen (kann in cleanupf.sh angepasst werden)

-Wie bekommt man ein Modul zum Testen in ein openWB Testsystem rein?
Sofern es ein gekauften System ist, musst du die (unter teilweisem Verzicht auf Gewährleistung) freischalten lassen, damit du einen SSH-Zugang hast. Bei selbstgebauten Systemen stehen die alle Wege offen.
Das Modul bekommt ein Verzeichnis mit dem Namen "soc_xxxx" im "modules" Unterverzeichnis.
Dann muss unter "web/settings" die modulconfiglp.php angepasst werden, so dass das Modul dort ausgewählt werden kann. Werden dort zusätzliche Parameter erstellt, müssen die auch noch in der openwb.conf ergänzt werden und die updateconfig.sh so ergänzt werden, dass Default-Einträge für die Parameter erzeugt werden.

- Kann man hier auch zum Testen etwas triggern oder benötigt man dann eine Wallbox die durch das Laden auch die SoC Abfragen triggert? (Zur Not über Shell-Command mit den Parametern die von openWB auch verwendet werden)
Manuell kann der Abruf jederzeit von der Startseite aus getriggert werden. (Oder alternativ per Skript eine hohe Zahl in die "soctimer"-Datei auf der Ramdisk geschrieben werden.)

Gruß,
Florian
tux75at
Beiträge: 78
Registriert: Mi Mär 23, 2022 5:16 pm

Re: SoC Modulerstellung

Beitrag von tux75at »

Danke für das Feedback,

Testsystem ist ein selbst aufgesetzter Raspberry Pi mit Raspbian ... ältere Version, die auch unterstützt wird und dann nach Installationsanleitung, hat auf anhieb geklappt. 8-)

Das cryptographie Modul ist hier schon drauf, also muss nicht mal was nachinstalliert werden. Ob das dann beim Einbinden ins Live System auch der Fall ist kann ich nicht sagen.
Das Modul habe ich zum Testen auch schon einbinden können, aber nur manuell über das Config File, der tipp zu web/settings/moduleconfiglp.php ist gut, das muss ich mir ansehen, sowie das updateconfig.sh

Von der GUI habe ich dann auch gefunden wie man es triggern kann, das Shell-Script, welches aufgerufen wird mit dem soctimer muss ich mir noch genauer ansehen, hier habe ich die Einstellungen noch nicht verstanden. Hier würde ich eventuell das Tesla Script als Grundlage verwenden, sollte theoretisch dann auch laufen (Anpassungen sind sicher notwendig, ob ein wakeup benötigt wird weiss ich noch nicht und Unterstützung von Token wird noch nicht umgesetzt, kommt vielleicht später).

Da ich noch kein EV besitze, schreibt das Script derzeit einen konstanten Wert, der wird auch schon übernommen. Login in den Account funktioniert auch, aber ohne EV kein SoC. Proof of Concept wurde mit einem PIP Modul zur Kommunikation für das EV schon gemacht (auch mit EV, Danke @Andreas.W !) Obs im Modul dann auch funktioniert ist noch nicht getestet.

Noch ist einiges an Arbeit notwendig, aber wie würde ich meinen Code ins Projekt reinbekommen? Über einen Fork und dann einen Pull-Request auf Github? (Ich habe schon viel mit GIT gearbeitet, aber so gut wie nix auf Github und noch nicht in Open Source Projekten).

Schöne Gruße
Tux
derNeueDet
Beiträge: 4197
Registriert: Mi Nov 11, 2020 7:16 pm

Re: SoC Modulerstellung

Beitrag von derNeueDet »

Ja, mach dir einen Fork und von dort aus dann die Änderungen per Pull Request auf das Hauptprojekt zurück.

Die Logic des SoC Timers kopierst du einfach.

Für welches Fahrzeug soll das Modul denn gebaut werden?

VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
tux75at
Beiträge: 78
Registriert: Mi Mär 23, 2022 5:16 pm

Re: SoC Modulerstellung

Beitrag von tux75at »

Wird ein SoC Modul für Mazda MX-30
Antworten