Allgemein_Header_6

 

PV-Anzeige

PV-Anzeige

Wir haben drei einphasige PV-Wechselrichter und einen Batteriewechselrichter im Keller. Der Akku kann das Haus bei Netzausfall autark versorgen, wird dafür im Normalfall nie unter ca. 25% entladen.

Die Wallbox wird über den sogenannten SmartCharger, einer auf einem Raspberry Pi laufenden Freeware von Nico Treffkorn, so gesteuert, dass nur dann geladen wird, wenn Überschuss seitens der PV-Generatoren besteht, also Energie ins Netz eingespeist würde, die besser lokal selbst verbraucht wird.

Die Anlage läuft seit der Installation mehr oder weniger unauffällig und die meisten Anlagedaten lassen sich über das Sunny Portal gut visualisieren. Das Sunny Portal hält auch Langzeitdaten bereit, diese lassen sich auf mannigfaltige Art darstellen und Alles könnte gut sein.

Allerdings bietet das Sunny Portal keine Anzeige für den Strom, der über die Wallbox in das EV gespeist wird, diese Energie wird einfach dem Hausverbrauch zugeschlagen.

Darüber hinaus laufen im Sunny Portal mehrere Zähler, die überwachen, wie lange und/oder wie oft Werte in der momentanen Browsersitzung abgerufen wurden.

Wird einer der Grenzwerte überschritten, zeigt das Portal immer noch Werte an, diese werden aber nicht mehr aktualisiert. Im Zweifelsfall ist man also der Meinung, die PV -Generatoren liefern Strom, in Wahrheit wird längst der Akku entladen.

Zusätzlich muss für die Kontrolle, ob das EV (Electric Vehicle, Elektrofahrzeug) gerade geladen wird, ein weiterer Browser geöffnet werden, um die Daten des SmartChargers anzuschauen.


Um die oben genannten Einschränkungen zu umgehen, habe ich mich entschlossen, eine eigene Visualisierung zu erstellen, die alle meine Anforderungen erfüllt und lokal im eigenen Hausnetz läuft, ohne irgendwelche Server im Internet zu bemühen.

Die Benutzeroberfläche (Graphical User Interface, GUI) habe ich mit Qt Creator modelliert, die Daten der Wallbox und einige Weitere liefert der SmartCharger (im Weiteren EDLD), die Momentandaten der PV-Generatoren werden von MBMD (Modbus Measurement Daemon) zur Verfügung gestellt.

EDLD und MBMD laufen auf einem Raspberry Pi, zur Zeit ist das bei mir ein RPi 3 B+ mit einer SSD als Speicherlaufwerk.

Anmerkung:
Durch den Einsatz der SSD anstelle der normalerweise dafür eingesetzten SD-Karte ist der RPi deutlich schneller in allen Belangen, zusätzlich habe ich seit der Umstellung auf SSD noch keinen Datenverlust durch Spannungsausfälle gehabt, was bei der SD-Karte schon mehrfach zu Verdruss, zweimal sogar zur Zerstörung der SD-Karte, geführt hat.
Da der verwendete Raspberry Pi SSD-Adapter den RPi nicht booten kann, habe ich auf der immer noch eingebauten SD-Karte nur noch die zum Boot notwendigen Verzeichnisse belassen und alles andere an Verzeichnissen auf die SSD transferiert. So wird die SD-Karte nur noch bei Änderungen an der Installation beschrieben.
Die Gefahr, bei Stromausfall beschädigt zu werden ist also minimiert.

EDLD stellt seine Daten über eine XML-Schnittstelle zur Verfügung, MBMD verwendet dafür ein JSON-Interface.

Die eigentliche Visualisierung hingegen läuft in meinem Fall auf einem Windows-Tablet oder jedem Windows Rechner im LAN.


Konfiguration der verwendeten Tools EDLD und MBMD

EDLD ist von Nico Treffkorn ursprünglich für Debian 7 „Wheezy“ geschrieben worden, die Installation und der Betrieb auf einem Raspberry Pi 2B haben problemlos mit seiner Anleitung funktioniert.

Im Laufe der Zeit wurde Debian weiterentwickelt, inzwischen, Stand 02/2022, sind wir bei Debian 11 „Bullseye“ angelangt. Beim Übergang von „Wheezy“ zu „Jessie“ wurde der Mechanismus für den Start und Neustart des Dienstes EDLD geändert und der von Nico beschriebene Weg über „init.d“ funktionierte nicht mehr. Jetzt erfolgt der Start von Diensten über „systemd“, man benötigt eine „Unit“ in der Abhängigkeiten und Zeitvorgaben einzutragen sind.

Die Notwendigkeit für einen Umstieg auf eine neuere Version von Debian ergibt sich alleine durch die Tatsache, dass ein heute neu gekaufter Raspberry Pi nicht mehr von „Wheezy“ oder “Jessie” unterstützt wird.

Ich stelle hier eine für den EDLD funktionierende systemd Unit vor:

[Unit]
Description=edl SmartCharger Daemon
DefaultDependencies=no
After=sysinit.target
StartLimitIntervalSec=0

[Service]
ExecStart=/bin/edld
Restart=always
RestartSec=4
User=pi

[Install]
WantedBy=sysinit.target


Die Datei muss im Verzeichnis „/etc/systemd/system/“ abgelegt werden, anschließend ist der Service mit

sudo systemctl enable edld

zu aktivieren und mit

sudo systemctl start edld

zu starten.

Es kann sein, dass vorher noch

sudo systemctl daemon-reload

aufgerufen werden muss, weil sich die Unit Datei geändert hat. Debian macht ggf. von sich aus auf diesen Umstand aufmerksam.

Migriert man eine bereits unter “Jessie” gelaufene Installation auf eine neuere Version von Debian, darf auf keinen Fall vergessen werden, die init.d Datei zu entfernen. Diese liegt im Verzeichnis „/etc/init.d“. Ansonsten wird der Dienst ggf. zweimal gestartet und die beiden Instanzen kommen sich gegenseitig ins Gehege. Ich habe das anfangs übersehen und bis ich das als Ursache für sporadische Abstürze des EDLD gefunden habe, hat wirklich lange gedauert.

Die Parameter für die zu steuernde Anlage werden über die Oberfläche von SmartCharger eingegeben und dann in einer Konfigurationsdatei auf dem Raspberry Pi gespeichert. Die GUI des SmartCharger wird im Browser unter der IP-Adresse des RPi mit Port 18001 angezeigt, also “192.168.xx.xx:18001”.

SmartCharger Settings

Eine Übersicht über alle Daten, die der SmartCharger aus dem System erfahren kann erhält man auf der Home Seite.

SmartCharger Home

 

MBMD läuft unter „Bullseye“ ohne Änderungen, die Unit Datei wird bereits mitgeliefert. Die Konfiguration von MBMD erfolgt durch eine Config-Datei „mbmd.yaml“ die im Benutzerordner „/home/pi“ abgelegt wird.

Hier der Inhalt beispielhaft für drei SMA Wechselrichter:

#REST api, use 127.0.0.1 to restrict to localhost
api: 0.0.0.0:8080
rate: 3s

# adapters are referenced by device
adapters:
- device: 192.168.xx.xx:502
- device: 192.168.xx.xx:502
- device: 192.168.xx.xx:502

# list of devices
devices:
- name: PVGenerator1
  type: sunspec
  id: 126
  adapter: 192.168.xx.xx:502

- name: PVGenerator2
  type: sunspec
  id: 126
  adapter: 192.168.xx.xx:502

- name: PVGenerator3
  type: sunspec
  id: 126
  adapter: 192.168.xx.xx:502


In dieser Datei ist unbedingt auf die korrekte Einrückung der Zeilen zu achten, ansonsten kommt YAML bei der Interpretation durcheinander.

Die jeweiligen Adressen der Wechselrichter müssen zweimal eingetragen werden, einmal unter „adapters:“, ein zweites Mal unter „devices:“. Durch den jeweils hinter der Adresse angegebenen Port 502 erkennt MBMD, dass die Verbindung über LAN erfolgt. Alle Wechselrichter werden als „Sunspec“ Device mit der ID 126 angesprochen, die Unterscheidung im Netz erfolgt durch die IP-Adresse. Der Name der Devices kann frei gewählt werden.

Damit die Wechselrichter von MBMD gefunden werden können, muss mit dem Sunny Explorer von SMA die Anlage als Installateur aufgerufen und unter „Einstellungen - Externe Kommunikation“ der TCP-Server für jeden Wechselrichter eingeschaltet werden.

Sunny Explorer TCP Server aktivieren


Abfrage der Werte

Die für die PV-Anzeige verwendeten Werte bzw. Stati sind in den folgenden beiden Listings Gelb markiert.

EDLD stellt die ermittelten Werte im XML-Format zur Verfügung:

<GetValues>
    <Version>2.6.107</Version>
    <SettingsVersion>1.6</SettingsVersion>
    <Uptime>1d 06:32:27</Uptime>
    <Copyright>Nico Treffkorn</Copyright>
    <CurrentDateTime>01.02.2022 18:22:59</CurrentDateTime>
    <LastEDLReceive>01.02.2022 18:22:43</LastEDLReceive>
    <LastUDPReceive>01.02.2022 18:22:59</LastUDPReceive>
    <LastWallboxControl>01.02.2022 18:22:03</LastWallboxControl>
    <LastSQLStatement>00.00.0000 00:00:00</LastSQLStatement>
    <LastKNXBroadcast>00.00.0000 00:00:00</LastKNXBroadcast>
    <LastStorageReceive>01.02.2022 18:22:57</LastStorageReceive>
    <SmartMeter>
        <Using>1</Using>
        <Type>SMA</Type>
        <Serial>xxxxxxxx</Serial>
        <TimeStamp>3739926</TimeStamp>
        <ActualPower>-1</ActualPower>
        <RealPower>
            <L1>-338</L1>
            <L2>295</L2>
            <L3>41</L3>
        </RealPower>
        <PowerFactor>
            <total>0.004</total>
        </PowerFactor>
        <Voltage>
            <L1>231</L1>
            <L2>232</L2>
            <L3>231</L3>
        </Voltage>
        <mAmpere>
            <L1>2020</L1>
            <L2>1440</L2>
            <L3>331</L3>
        </mAmpere>
        <MeterReadings>
            <Consumption>7172.4</Consumption>
            <Surplus>43009.2</Surplus>
        </MeterReadings>
    </SmartMeter>
    <Infrastructure>
        <MainFuses>
            <Current>35000</Current>
            <SafetyDistance>2000</SafetyDistance>
        </MainFuses>
    </Infrastructure>
    <KNX>
        <Using>0</Using>
    </KNX>
    <MySQL>
        <Using>0</Using>
    </MySQL>
    <EV>
        <Using>1</Using>
        <Charging>
            <ChargingMode>SURPLUS</ChargingMode>
            <SurplusActivation>-1300</SurplusActivation>
            <ManualCurrent>18000</ManualCurrent>
            <SafetyCurrent>6000</SafetyCurrent>
            <MinCharge>6000</MinCharge>
            <MaxPhases>1</MaxPhases>
            <EvaluationPoints>0</EvaluationPoints>
            <TeslaWorkaround>0</TeslaWorkaround>
        </Charging>
        <Wallbox>
            <ProductID>KC-P20-ES240030-000</ProductID>
            <Serial>xxxxxxxxx</Serial>
            <Firmware>P30 v 3.10.28 </Firmware>
            <SecondsSinceStart>16516963</SecondsSinceStart>
            <State id="1">not ready for charging</State>
            <Plug id="5">plugged on wallbox, plugged on EV</Plug>
            <SystemEnabled>0</SystemEnabled>
            <Input>0</Input>
            <Output>0</Output>
            <MaxCurrent>0</MaxCurrent>
            <MaxCurrentPercent>100.0</MaxCurrentPercent>
            <HardwareCurrent>16000</HardwareCurrent>
            <UserCurrent>6000</UserCurrent>
            <Voltage>
                <L1>0</L1>
                <L2>0</L2>
                <L3>0</L3>
            </Voltage>
            <mAmpere>
                <L1>0</L1>
                <L2>0</L2>
                <L3>0</L3>
            </mAmpere>
            <ActualPower>0</ActualPower>
            <SessionEnergy>7970</SessionEnergy>
            <PowerFactor>0.000</PowerFactor>
            <TotalEnergy>1120311</TotalEnergy>
            <Error1 id="0">NO_ERROR</Error1>
            <Error2 id="0">NO_ERROR</Error2>
            <FailsafeCurrent>0</FailsafeCurrent>
            <FailsafeTimeout>120</FailsafeTimeout>
        </Wallbox>
    </EV>
    <StorageSystem>
        <Using>1</Using>
        <Type>SIX0H</Type>
        <DeviceName>Sunny Island 4.4M</DeviceName>
        <Serial>xxxxxxxxxxx</Serial>
        <CommVersion>04.00.100.R</CommVersion>
        <Battery>
            <SOC>83</SOC>
            <Temperature>28.4</Temperature>
            <mVoltage>58600</mVoltage>
            <mAmpere>9000</mAmpere>
        </Battery>
        <AC>
            <ActualPower>490</ActualPower>
            <Frequency>49.900</Frequency>
            <Voltage>
                <L1>230.60</L1>
                <L2>0.00</L2>
                <L3>0.00</L3>
            </Voltage>
        </AC>
    </StorageSystem>
</GetValues>


Hinweis
Da die Extraktion der Werte aus dem EDLD XML-Datenstrom nicht iterativ sondern nach einem bestimmten Schema erfolgt, muss die SettingsVersion überprüft werden.
Zur Zeit (Stand 02/2022) werden als gültiges Format die Versionen “1.6” und “2.6.107” akzeptiert, beide sind identisch aufgebaut. Sollte sich die Version in Zukunft ändern, muss überprüft werden, ob die Daten im XML-Stream noch dem vorgegebenen Format entsprechen. PV-Anzeige macht auf eine nicht unterstützte Settings Version mit einer Meldung in der GUI aufmerksam.
 

Die Werte von MBMD werden im JSON-Format übergeben:

{
    "SUNSPEC1.126":   :)
    {
        "Timestamp":"2022-02-01T19:50:42.176209446+01:00",
        "Unix":1643741442,
        "ApparentPower":0.000000,
        "Current":0.000000,
        "DCCurrentS1":0.000000,
        "DCCurrentS2":0.000000,
        "DCPowerS1":0.000000,
        "DCPowerS2":0.000000,
        "DCVoltageS1":54.000000,
        "DCVoltageS2":54.000000,
        "Export":16026.480000,
        "Frequency":50.020000,
        "HeatSinkTemp":30.000000,
        "Power":0.000000,
        "ReactivePower":0.000000,
        "VoltageL1":232.300000
    },
    "SUNSPEC2.126":
    {
        "Timestamp":"2022-02-01T19:50:42.177324656+01:00",
        "Unix":1643741442,
        "ApparentPower":0.000000,
        "Current":0.000000,
        "DCCurrentS1":0.000000,
        "DCCurrentS2":0.000000,
        "DCPowerS1":0.000000,
        "DCPowerS2":0.000000,
        "DCVoltageS1":81.000000,
        "DCVoltageS2":80.000000,
        "Export":30198.630000,
        "Frequency":49.980000,
        "HeatSinkTemp":30.000000,
        "Power":0.000000,
        "ReactivePower":0.000000,
        "VoltageL1":230.400000
    },
    "SUNSPEC3.126":
    {
        "Timestamp":"2022-02-01T19:50:42.271564826+01:00",
        "Unix":1643741442,
        "ApparentPower":0.000000,
        "Current":0.000000,
        "DCCurrentS1":0.000000,
        "DCCurrentS2":0.000000,
        "DCPowerS1":0.000000,
        "DCPowerS2":0.000000,
        "DCVoltageS1":66.000000,
        "DCVoltageS2":66.000000,
        "Export":20934.280000,
        "Frequency":50.010000,
        "HeatSinkTemp":30.000000,
        "Power":0.000000,
        "ReactivePower":0.000000,
        "VoltageL1":233.300000
    }
}

 

Hinweis
Die oben verwendeten Textboxen mit Scrollbalken und formatiertem Text musste ich Netobject Fusion regelrecht abtrotzen, letztlich aber erfolgreich, wie man sieht :)


Die Darstellung in der GUI ist bewusst an das Original Sunny Portal von SMA angelehnt, erstens ist das meines Erachtens recht gut gelöst, zweitens hat diese Form der Präsentation einen hohen Woman Acceptance Factor, auch Wife Acceptance Factor
Wikipedia: Der Woman Acceptance Factor ist umgekehrt proportional zum möglichen Konflikt, der aus den unterschiedlichen Ansichtsweisen der Ehepartner resultiert. Je niedriger der WAF, desto mehr Überredungsarbeit muss aufgebracht werden, oder desto mehr Konflikt resultiert aus der Anschaffung oder dem Projekt. :)

Um Problemen mit SMA Copyright von vornherein aus dem Weg zu gehen, habe ich die Sonne und das Haus leicht verändert, den Akku und den Mast komplett anders realisiert. Der Füllstand des Akku wird linear angezeigt, nicht wie im Sunny Portal in Stufen. Die beiden stilisierten Fahrzeuge sind ohnehin neu und symbolisieren den Ladevorgang an der Wallbox.

Hier einige Ansichten verschiedener Zustände der Anlage. Direkt nach dem Start sind alle Werte 0 und die Blöcke werden farblos Grau dargestellt.

PV0

Nach maximal 10 Sekunden reagiert der Raspberry Pi erstmals mit aktuellen Werten für PV-Erzeugung und die anderen Komponenten der Anlage. Energieflüsse werden mit Doppelpfeilen angezeigt, Grün zeigt PV-Energie an.
Rechts oben in der Wallboxkomponente wird der Moment der Kommunikation mit dem Raspberry Pi mit einem Funksymbol visualisiert.

PV1

Wird Energie aus dem Akku verbraucht, wird das Dunkelgrün angezeigt. Netzbezug wird Rot dargestellt.

PV6

Der Anteil der jeweiligen Energiequelle am Verbrauch im Haus wird prozentual eingefärbt visualisiert. Die Grundfarbe für Ladevorgänge an der Wallbox ist Blau, je nach Zustand unterschiedlich abgestuft.

PV14

Ist das Ladekabel nicht eingesteckt, ist die Wallboxkomponente Grau.
Wird das Ladekabel angeschlossen, ändert sich die Farbe in Hellblau.

Ist die Sonneneinstrahlung ausreichend hoch, erhöht sich der Wert der “Evaluation Points” minütlich bis maximal 10. Ab 5 beginnt der Ladevorgang und die Farbe ändert sich auf Dunkelblau.

Ist der Akku des Fahrzeugs voll geladen, sinkt der Ladestrom auf Null, die Stecker an den Fahrzeugen werden Grün und die Box Mittelblau eingefärbt.

PV3a

Treten Probleme in der Kommunikation zu einem der beiden benutzten Services auf dem Raspberry Pi auf, werden die vom betreffenden Dienst abhängigen Werte Rot dargestellt, der Hintergrund der App wird Hellrot gefärbt, zusätzlich wird das Schweinderl benannt, ggf. auch beide gleichzeitig, MBMD dann linksbündig.

EDLD Fehler

Dieser Zustand kann sich von selbst wieder korrigieren, tritt das Problem aber über längere Zeit auf, muss im Allgemeinen der Dienst auf dem Raspberry Pi neu gestartet werden. Dazu die Dienste über z.B. PuTTY durch Eingabe von

sudo systemctl restart edld

oder

sudo systemctl restart mbmd

wieder in die Spur bringen. Der Neustart dauert gemeinhin einige Sekunden.


Die Sourcen für das Programm sind auf Github zu finden. Am Einfachsten verwendet man “GitHub Desktop” um das Repository komplett auf den eigenen Rechner zu ziehen.

Um das Programm selbst zu erstellen ist die Installation des Qt Creator notwendig. Für privaten, nichtkommerziellen Einsatz des Tools die Variante ”Downloads for open source users” auswählen, sich registrieren und den Download starten, idealer Weise den “Qt Online Installer” wählen.

Im Installer muss die Version gewählt werden. PV-Anzeige kann mit Qt 5 und Qt 6 erstellt werden, wobei für Qt 6 in der “main.qml” die GraphicalEffects Library durch eine Compatibility Lib ersetzt werden muss, da die Farbspiele in der Haus Komponente und da insbesondere das Clipping an den runden Ecken, von der Qt 6 Version der GraphicalEffects nicht mehr unterstützt werden.

import QtQuick 2.12
import QtQuick.Window 2.12
import QtGraphicalEffects 1.0

wird zu

import QtQuick 2.12
import QtQuick.Window 2.12
import Qt5Compat.QtGraphicalEffects


Der Download aller Komponenten von Qt dauert eine geraume Weile, nicht ungeduldig werden. Durch Doppelklick auf die Qt-Projektdatei “PV-Anzeige.pro” öffnet sich das Projekt in Qt Creator zur Bearbeitung.

Qt Creator bietet mehrere Möglichkeiten, die Sourcen in ausführbaren Code umzuwandeln, ich habe mich für “MinGW 64-bit” entschieden.

QT Creator Compiler

Hat man alles übersetzt, muss noch das sogenannte “Deployment” durchgeführt werden, um das fertige Programm lauffähig auf einen anderen Rechner transferieren zu können. Im BIN-Ordner der Qt Installation findet man laut Anleitung das Tool “windeployqt.exe”.

Aber Achtung!
Es existieren mehrere Versionen - die zu nutzende Version dieses Tools muss passend zur verwendeten Build-Umgebung gewählt werden. Für MinGW 64-bit ist also die Version im Pfad “Qt\5.15.2\mingw81_64\bin\” zu verwenden.

Der korrekte und zielführende Weg ist also:

  • Bestimme die Build-Umgebung (hier “MinGW 64-bit”)
  • Starte in einem CMD Fenster (DOS-Box) den Batch file
    Install-Laufwerk:\Qt\5.15.2\mingw81_64\bin\qtenv2.bat
  • Starte im gleichen Fenster den Aufruf
    windeployqt.exe
       --dir Pfad-zum_Zielverzeichnis\PV-Anzeige_Deployment_MinGW
       --qmldir Pfad-zum_Zielverzeichnis\PV-Anzeige [hier ein Leerzeichen]
       Pfad-zum_Zielverzeichnis\build-PV-Anzeige
                 -Desktop_Qt_5_15_2_MinGW_64_bit-Release\release\PV-Anzeige.exe
      --no-translations
  • Kopiere die Datei “PV-Anzeige.exe” aus dem Build-Ordner in das Deployment-Verzeichnis
  • Kopiere die korrekt mit der echten IP-Adresse des Raspberry Pi befüllte Datei “PVconfig.ini” in das Deployment-Verzeichnis

Jetzt kann getestet werden, ob alles richtig im Zielverzeichnis angekommen ist. Der Start von PV-Anzeige.exe sollte die GUI öffnen und kurz darauf sollten Werte aus der PV-Anlage in den Anzeigen erscheinen.

Leider gibt es auf diesem beschriebenen Weg nicht eine einzelne, ausführbare EXE als Programm, sondern es wird ein Verzeichnis mit mehreren Dateien und Unterverzeichnissen erstellt, das dann auf den Zielrechner kopiert werden muss.

Um den Transfer auf einen anderen Rechner etwas handhabbarer zu gestalten, habe ich mit ChilkatZipSE alles in eine Installer-EXE verpackt, die das Deployment-Verzeichnis auf dem Zielrechner unter “%UserProfile%\Documents\PV-Anzeige” ablegt und direkt nach dem Auspacken mittels eines Batch einen Link auf die ausführbare “PV-Anzeige.EXE” auf dem Desktop erzeugt.

Die Benutzeroberfläche des Pack-Programms ist schon etwas abgehangen, funktioniert aber auch unter dem aktuellsten Windows 10 klaglos (Stand 05/2022). Überhaupt nicht abgehangen ist hingegen die herausragende Funktionalität des Packers. Chilkat Software stellt das Programm unter dem Namen ZIP 2 Secure EXE als Freeware zum Download zur Verfügung und auch die Premium Options sind jetzt per Freischaltkey nutzbar - den Key findet man auf der Homepage von Chilkat Software.


Als das Grundgerüst der PV-Anzeige soweit lief, habe ich die Füße nicht still halten können und als Fingerübung noch ein paar Gimmicks eingebaut, um meine Kenntnisse in Sachen Qt Programmierung weiter zu vertiefen.

Die Sonne ist jetzt nicht immer Weiß, sondern bei steigender PV-Leistung wird sie zuerst blass Gelb, später satt Gelb. Dass sie sich ganz langsam dreht, ist schon länger drin ;-)

Zusätzlich habe ich die Möglichkeit implementiert, Bilder mit den eigenen Elektrofahrzeugen anstelle der stilisierten Icons anzuzeigen. Umgeschaltet wird mit Mausklick auf die Wallbox Komponente.

Die Bilder müssen aber zuvor in Eigenregie zurecht gefrickelt werden, damit die Visualisierung der Kabelsituation (gesteckt/nicht gesteckt) funktioniert. Das klappt hervorragend mit der Freeware “paint.net”, jedes andere Malprogramm mit der Fähigkeit, den Hintergrund transparent einzustellen, ist natürlich ebenso geeignet.

Aktualisierung
Um mich noch ein bisschen weiter in Qt einzufuchsen hatte ich schon länger die Idee, die Sonne nicht abhängig von der Einstrahlungsleistung in Stufen einzufärben, sondern die Farbe kontinuierlich von Weiß nach Gelb zu steuern.

Dazu musste ich die Darstellung der Sonne quasi invertieren, also nicht den Hintergrund des Sonnen-Icons transparent einstellen, sondern die Sonne selbst und dafür den Hintergrund des Icons farbig, passend zur aktuellen Farbe der PV-Generator-Box, einfärben, also Hellgrau, wenn keine PV-Leistung zur Verfügung steht bzw. Grün, wenn die Sonne scheint.

Zusätzlich erhielt das Sonnen-Icon kreisrunde Ränder, damit durch die langsame Drehung keine Ecken sichtbar werden. Zum Schluss bekam das jetzt transparente Sonnen-Icon noch ein passendes Rechteck mit Eckenradius “Seitenlänge Halbe” hinterlagert, dessen gelbe Farbe in Abhängigkeit von der Strahlungsleistung mehr oder weniger gesättigt wurde (durch umgekehrt proportionales Zumischen von Blau).

Die Sonne erstrahlt jetzt in der Version V1.3 in 254 Abstufungen von Weiß nach leuchtend Gelb. Die zugehörigen Sourcen für das Programm finden sich auf Github.

Update
Bei der Änderung auf die sich kontinuierlich ändernde Sonnenfarbe ist mir eine Referenz auf eine der gelöschten, früheren Sonnen-Icons durch die Lappen gegangen, was eine Fehlermeldung im Log von Qt bewirkt hat. Das ist mit Version V1.4 vom 26.05.2022 behoben.

Zusätzlich hatte ich übersehen, dass der Wert des Gesamtverbrauchs im Haus sowohl von der Funktion des Service EDLD als auch vom Service MBMD abhängig ist. Folglich muss die Farbe der Ziffern bei Fehlern beider Services auf Rot gesetzt werden. Das ist in V1.4 jetzt ebenfalls berücksichtigt. Die zugehörigen Sourcen für das Programm finden sich wie immer auf Github.

 


Besucherzaehler

Besucher seit
25.11.2000