Skip to content

Commit

Permalink
Merge master into Beta (#2033)
Browse files Browse the repository at this point in the history
* build UI (#2009)

* Update for Polestar auth change:client id and optional acceptance of terms and conditions

* add terser

* Added const for client_id

* Added blank line for Flake check

* fix heartbeat internal chargepoint (#2013)

* Build Display Theme: Cards

* Wiki (#2014)

* Wiki

* typos Wiki

* clear browser console at midnight

* Build Display Theme: Cards

* fix SolarEdge synergy units (#2026)

* reset boot_done before shutdown (#2027)

* fix solaredge synergy units (#2030)

* build

* Satellit: Fix telnet (#2032)

* Update version 2.1.6-RC.2

---------

Co-authored-by: PK <pk.hh8@online.de>
Co-authored-by: Lutz Bender <github@lutz-bender.de>
Co-authored-by: benderl <benderl@users.noreply.github.com>
  • Loading branch information
4 people authored Nov 22, 2024
1 parent 03cc7ec commit a589276
Show file tree
Hide file tree
Showing 283 changed files with 1,135 additions and 919 deletions.
4 changes: 2 additions & 2 deletions docs/Anzeige-Steuerung.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Die Kontrolle der openWB geschieht über einen Webbrowser. Aufruf geschieht über Eingabe der IP-Adresse der openWB.
Die Kontrolle der openWB geschieht über einen Webbrowser. Der Aufruf geschieht über die Eingabe der IP-Adresse der openWB.

## Startseite

Die hier angezeigten Leistungen werden direkt aus den Leistungsdaten, welche vom Zähler übertragen werden, übernommen.

## Auswertungen - Diagramme

In der Auswertung (und für's Langzeit-Logging) werden 5min-Intervalle der Zählerstände (kWh-Differenz/5min = kW) verwendet.
In der Auswertung (und für das Langzeit-Logging) werden 5-Minuten-Intervalle der Zählerstände (kWh-Differenz/5min = kW) verwendet.
4 changes: 2 additions & 2 deletions docs/Cloud-Sicherung.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ In den Sicherungseinstellungen kann ein Cloud-Dienst für automatische Sicherung
Die Konfiguration des Cloud-Dienstes wird in diesem Wiki-Beitrag beschrieben.

Automatische Sicherungen werden nur ausgeführt, wenn die openWB als **primary** konfiguriert (oder die einzige) ist.
Auf als **secondary** konfigurierten openWBs werden nur manuelle Sicherungen und Sicherungen vor einem Update (falls aktiviert) ausgeführt, da hier keine Arbeitsdaten (Log-Dateien) zu sichern sind.
Auf als **secondary** konfigurierten openWBs werden nur manuelle Sicherungen und Sicherungen vor einem Update (falls aktiviert) ausgeführt, da hier keine Arbeitsdaten (Log-Dateien) zu sichern sind.

Folgende Anbieter werden unterstützt:

* [NextCloud](https://github.com/openWB/core/wiki/NextCloud-als-Sicherungs-Cloud-einrichten)
* [Nextcloud](https://github.com/openWB/core/wiki/NextCloud-als-Sicherungs-Cloud-einrichten)
* [Samba](https://github.com/openWB/core/wiki/Samba-als-Sicherung-einrichten)
26 changes: 13 additions & 13 deletions docs/Entwicklungsumgebung.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
**Wie kann man die eigene Entwicklungsumgebung konfigurieren um bestmöglich mitwirken zu können?**
**Wie kann man die eigene Entwicklungsumgebung konfigurieren, um bestmöglich mitwirken zu können?**

Bewährt hat sich VSCode [https://code.visualstudio.com/](https://code.visualstudio.com/), hinzu kommen noch ein paar Plugins. Am einfachsten direkt nach der Installation von VSCode in den Erweiterungen danach suchen und installieren:

* GitHub - für die Codeverwaltung, erstellen von PRs & co
* Flake8 (ich musste aus dem DropDown explizit das prerelease auswählen) - Überprüft die Code-Formatierung von Python direkt im Editor. Ist optional, wird beim Erstellen eines PRs aber im Repo überprüft und der PR geht im Zweifel zurück an euch.
* Remote Development - ebenfalls optional, erlaubt es aber direkt auf einem Raspberry Pi zu arbeiten. Auch für Live-Debugging & co sehr hilfreich.
* GitHub - für die Codeverwaltung, Erstellen von PRs & Co.
* Flake8 (ich musste aus dem Dropdown explizit das Prerelease auswählen) - Überprüft die Code-Formatierung von Python direkt im Editor. Ist optional, wird beim Erstellen eines PRs aber im Repo überprüft und der PR geht im Zweifel zurück an euch.
* Remote Development - ebenfalls optional, erlaubt es aber, direkt auf einem Raspberry Pi zu arbeiten. Auch für Live-Debugging & Co. sehr hilfreich.
* Remote SSH - benötigt für das Remote Development auf einem Raspberry Pi
* Code Spell Checker - optional, aber empfehlenswert. Prüft die Rechtschreibung und kann sogar mit CamelCase und underscore_naming umgehen. Dazu auch gleich das Wörterbuch für Deutsch installieren: "German - Code Spell Checker". Wird "Remote Development" genutzt, so ist die Erweiterung auch auf dem über SSH verbundenen Raspberry Pi zu installieren. Dies kann ebenfalls einfach in VSCode bei den Erweiterungen erledigt werden, wenn man bereits mit dem Raspberry Pi verbunden ist. Damit der Code auch überprüft wird, müssen noch die zu prüfenden Dateitypen festgelegt werden. Dazu entweder den Haken der Einstellung "C Spell: Check Only Enabled File Types" entfernen, um alle Dateitypen zu aktivieren, oder direkt darunter in "C Spell: Enable Filetypes" einzelne Dateiendungen definieren.

Genereller Ablauf, um eigene Änderungen beisteuern zu können:

* Eigenen GitHub Account erstellen
* Eigenen GitHub-Account erstellen
* openWB core Repository in den eigenen Account kopieren ("forken"), um eine editierbare Version zu erhalten: [https://github.com/openWB/core/fork](https://github.com/openWB/core/fork)
* Gegen diese eigene Kopie kann nun gearbeitet werden. Hierzu in VSCode in der Kommandozeile oben git clone starten, auf die URL des eigenen Repo zeigen. Diese URL endet auf .git und findet sich in GitHub hinter dem Button Code.
* Es empfiehlt sich unbedingt für Änderungen stets einen separaten Branch zu öffnen, um das nächste Mal nicht wieder die ganzen alten Änderungen mitzuschleifen. Links unten in VSCode auf den Namen des Branch (master) klicken und einen neuen erstellen.
* Gegen diese eigene Kopie kann nun gearbeitet werden. Hierzu in VSCode in der Kommandozeile oben git clone starten, auf die URL des eigenen Repos zeigen. Diese URL endet auf .git und findet sich in GitHub hinter dem Button Code.
* Es empfiehlt sich unbedingt, für Änderungen stets einen separaten Branch zu öffnen, um das nächste Mal nicht wieder die ganzen alten Änderungen mitzuschleifen. Links unten in VSCode auf den Namen des Branches (master) klicken und einen neuen erstellen.
* Die Änderungen durchführen und testen.
* Wenn alles passt in der Quellcodeverwaltung die geänderten Dateien mit dem '+' auswählen und eine kurze Beschreibung hinzufügen. Mit Klick auf Commit werden die Änderungen in das eigene Repo übertragen.
* Wenn alles passt, in der Quellcodeverwaltung die geänderten Dateien mit dem '+' auswählen und eine kurze Beschreibung hinzufügen. Mit Klick auf Commit werden die Änderungen in das eigene Repo übertragen.
* Testen.
* Wenn alles passt, einen PullRequest (PR) gegen das offizielle Repo erstellen: GitHub in VSCode auswählen, rechts neben 'PULL REQUESTS' findet sich ein 'Create Pull Request' - überprüfen ob das Ziel wirklich master in openWB/Core ist, was eigentlich der Fall sein sollte. Änderungen auswählen, auch diese sollten bereits vorselektiert sein, kurze Beschreibung, und PR absetzen.
* Wenn alles passt, einen Pull Request (PR) gegen das offizielle Repo erstellen: GitHub in VSCode auswählen, rechts neben 'PULL REQUESTS' findet sich ein 'Create Pull Request' - überprüfen, ob das Ziel wirklich master in openWB/Core ist, was eigentlich der Fall sein sollte. Änderungen auswählen, auch diese sollten bereits vorselektiert sein, kurze Beschreibung, und PR absetzen.

Hört sich jetzt schlimmer an als es ist, wenn man den Prozess einmal durch hat, ist das kein Drama mehr.
Hört sich jetzt schlimmer an, als es ist. Wenn man den Prozess einmal durch hat, ist das kein Drama mehr.

Einrichtung Remote Development:

Expand All @@ -31,7 +31,7 @@ Für Live-Debugging eine Remote-Session starten, openwb2.service beenden und mai

## Flake8

Nach dem Erstellen eines PRs gegen das offizielle Repo werden automatisiert einige Tests durchgeführt, schlagen diese fehl muss der PR korrigiert werden.
Nach dem Erstellen eines PRs gegen das offizielle Repo werden automatisiert einige Tests durchgeführt. Schlagen diese fehl, muss der PR korrigiert werden.
Flake8 ist einer dieser Tests und überprüft/forciert saubere Code-Formatierung.

Um nun zu vermeiden, dass man dies unnötig häufig macht, empfiehlt es sich, unbedingt Flake8 direkt selbst in VSCode zu aktivieren und die Fehler und Warnungen zu korrigieren.
Expand All @@ -52,12 +52,12 @@ Und auch inline direkt im Editor:

Bitte an die allgemeinen Namenskonventionen für Python halten: [https://realpython.com/python-pep8/#naming-conventions](https://realpython.com/python-pep8/#naming-conventions)

Die vorgeschlagene Erweiterung "Code Spell Checker" kann mit fast allen Varianten umgehen. Lediglich die empfohlenen Bezeichnung für eigene Pakete (packages) kann nicht geprüft werden, da nur Kleinbuchstaben genutzt und die zusammengesetzten Wörter nicht von einem Tippfehler unterschieden werden können.
Die vorgeschlagene Erweiterung "Code Spell Checker" kann mit fast allen Varianten umgehen. Lediglich die empfohlene Bezeichnung für eigene Pakete (packages) kann nicht geprüft werden, da nur Kleinbuchstaben genutzt und die zusammengesetzten Wörter nicht von einem Tippfehler unterschieden werden können.

## PyTest

Neben der Formatierung werden auch automatisierte Funktionstests durchgeführt. Auch diese können in VSCode bereits vor dem Absenden des PRs durchgeführt werden.
Zu finden sind die Tests links im Navigationsbaum von VSCode. Bei der ersten Nutzung muss noch 'pytest' als Testplattform ausgewählt werden. Anschließend kann man im Navigationsbaum einzelne oder alle Tests starten und überprüfen ob diese erfolgreich waren. Fehler werden direkt im Code der jeweiligen Tests angezeigt um den Test ggf. anpassen zu können.
Zu finden sind die Tests links im Navigationsbaum von VSCode. Bei der ersten Nutzung muss noch 'pytest' als Testplattform ausgewählt werden. Anschließend kann man im Navigationsbaum einzelne oder alle Tests starten und überprüfen, ob diese erfolgreich waren. Fehler werden direkt im Code der jeweiligen Tests angezeigt, um den Test ggf. anpassen zu können.

Um sich das Leben einfach zu machen, sollte man spätestens hier die Variante 'Remote-Development' wählen. Das stellt sicher, dass die notwendigen Module allesamt vorhanden sind.

Expand Down
16 changes: 8 additions & 8 deletions docs/Fehlersuche.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ Es kann immer mal passieren, dass etwas nicht wie gedacht funktioniert. Das kann
Wenn nun eine Funktion nicht wie erwartet ausgeführt wird oder plötzlich ein Fehler auftritt, ist die erste Frage:
> Habe ich vor Kurzem etwas verändert?
Dies betrifft ebenso Änderungen der Einstellungen im Fahrzeug, Wechselrichter (Softwareupdate?) oder der Hauselektrik. Unter Umständen kann das Problem so schon gelöst werden.
Dies betrifft ebenso Änderungen der Einstellungen im Fahrzeug, Wechselrichter (z.B. Softwareupdates) oder der Hauselektrik. Unter Umständen kann das Problem so schon gelöst werden.

## Wo bekomme ich Hilfe?

### Hardwaresupport

Mit Problemen bei Inbetriebnahme / Anschluss oder Hardwareproblemen mit openWB-Hardware bitte direkt über die Support-Funktion unter System -> Support an openWB wenden (Notfalls auch per Mail an <support@openwb.de>).
Mit Problemen bei Inbetriebnahme / Anschluss oder Hardwareproblemen mit openWB-Hardware bitte direkt über die Support-Funktion unter System -> Support an openWB wenden (notfalls auch per Mail an <support@openwb.de>).
Im Forum kann durchaus mal etwas untergehen. Das führt zu Frust und soll nicht sein.

### Forum
Expand All @@ -22,24 +22,24 @@ Bitte bei Problemen immer einen Logauszug posten:

> Dazu unter System->Fehlersuche das Debuglevel auf Details stellen und mindestens zwei komplette Durchläufe von ``# *** Start***`` bis ``# ***Start***`` aus dem Main-Log kopieren, während das Problem auftritt. Sensible Daten wie Benutzernamen und Kennwörter unkenntlich machen.
Logauszüge bitte als Codeblock posten (Schaltfläche "</>" über dem Editor-Fenster).
Bei Problemen mit dem internen Ladepunkt zusätzlich einen Auszug aus dem Log des internen Ladepunkts, bei Problemen mit dem Soc aus dem Soc-Log posten.
Bei Problemen mit dem internen Ladepunkt zusätzlich einen Auszug aus dem Log des internen Ladepunkts, bei Problemen mit dem SoC aus dem SoC-Log posten.
Bei Problemen mit dem UI/Darstellung bitte ein Theme verwenden, das von openWB gepflegt wird (wird bei der Themeauswahl angezeigt).

> Screenshots ersetzen keinen Logauszug!
Für Beiträge wie "Funktion XY geht nicht mehr! Woran kann das liegen?" ohne Logs gibt es von uns keine Hilfestellung.

Formuliert Eure Frage freundlich, beschreibt was ihr tun wolltet und was anstelle dessen passiert ist. Weiterhin ist die verwendete Version von OpenWB wichtig. Diese findet ihr unter _Einstellungen -> System -> System_ im Feld _Versionsinformationen / Aktualisierungen_.
Da es schon Wechselwirkungen mit anderen Smarthome-Systemen gegeben hat, erwähnt ggf. weitere im Heimnetzwerk laufende SmartHome-Systeme.
Formuliert eure Frage freundlich, beschreibt, was ihr tun wolltet und was stattdessen passiert ist. Weiterhin ist die verwendete Version von openWB wichtig. Diese findet ihr unter _Einstellungen -> System -> System_ im Feld _Versionsinformationen / Aktualisierungen_.
Da es schon Wechselwirkungen mit anderen SmartHome-Systemen gegeben hat, erwähnt ggf. weitere im Heimnetzwerk laufende SmartHome-Systeme.

### Log-Erstellung

In der Standard-Einstellung des Logs werden nur Warnungen & Fehler erfasst. Außerdem wird bei einem Neustart der openWB der Fehlerlog gelöscht.
In der Standard-Einstellung des Logs werden nur Warnungen & Fehler erfasst. Außerdem wird bei einem Neustart der openWB der Fehlerlog gelöscht.

Um aussagekräftige Logs zu erzeugen, müssen Log-Dateien im Debug-Modus erstellt werden. Hierzu ist folgende Schaltfläche zu aktivieren:

![Debug-Einstellung](pictures/Fehlersuche_DebugLog.jpg)

Aufgrund des detaillierten Loggings, ist die Dauer der Aufnahme ca. auf die letzten zwei Stunden begrenzt. Beachtet also, dass ihr sich der Fehler innerhalb des aufgezeichneten Abschnitts befindet.
Dann ist in den meisten Fällen das Main.log, aufzuklappen und mit der grünen Schaltfläche zu aktualisieren. Der entsprechende Auszug kann nun in eine Textdatei oder direkt in die Nachricht im Forum kopiert werden.
Aufgrund des detaillierten Loggings ist die Dauer der Aufnahme ca. auf die letzten zwei Stunden begrenzt. Beachtet also, dass sich der Fehler innerhalb des aufgezeichneten Abschnitts befindet.
Dann ist in den meisten Fällen das Main.log aufzuklappen und mit der grünen Schaltfläche zu aktualisieren. Der entsprechende Auszug kann nun in eine Textdatei oder direkt in die Nachricht im Forum kopiert werden.

![Main-Log](pictures/Fehlersuche_Main-Log.jpg)
Loading

0 comments on commit a589276

Please sign in to comment.