Animierte Visualisierung von Energieflüssen

Begonnen von Prof. Dr. Peter Henning, 10 Februar 2024, 20:08:13

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich bin ein großer Freund von interaktiven animierten Darstellungen. Allerdings nicht dann, wenn diese Dinge Ressourcen fressen oder gar einen eigenen Server benötigen.

Also habe ich mir den Spaß gemacht und - vorerst experimentell - eine Visualisierung der Energieflüsse in meinem Haus als FTUI-Seite gebaut.

Was ist auf der Seite zu sehen?
1. Existierende Photovoltaik-Anlage PV1 mit Wechselrichter und Einspeisezähler. Die Pfeile haben eine in SVG animierte Schraffur: Wenn eingespeist wird, laufen die grünen Balken nach unten.
2. Geplante Photovoltaik-Anlage PV2, mit Speicher. Wenn die PV-Anlage etwas liefert, gibt es einen animierten Pfeil nach unten. Wenn die Leistung Null ist, ist die Schraffur schwarz und statisch. Der Pfeil zum/vom Speicher wechselt die Richtung, je nachdem, ob er gefüllt oder geleert wird.
3. Haus mit tatsächlichem Stromverbrauch und animiertem Pfeil
4. Existierende WallBox mit geplantem E-Auto (Daumen-dreh-und-wart...), mit Anzeige der Ladeleistung und (wenn geladen wird) animierten Pfeilen.
5. Zweirichtungszähler mit animierten Pfeilen (rote oder grüne Schraffur, wechselnde Richtung).

Die Animation erfordert ein paar Kenntnisse über JavaScript. Ich habe mal testweise (fast) alles in der HTML-Seite verpackt. Zusätzlich benötigt wird nur noch ein Widget mit dem Namen "executor", das ich im FHEM-Buch beschrieben habe. Es ruft einfach bei Eintreffen eines FHEM-Events eine JavaScript-Funktion auf.

Du darfst diesen Dateianhang nicht ansehen.Du darfst diesen Dateianhang nicht ansehen.Du darfst diesen Dateianhang nicht ansehen.Du darfst diesen Dateianhang nicht ansehen.   

Wie kann man das nun testen, ohne die entsprechende Infrastruktur zu haben? Ganz einfach, es gibt ein Dummy-Device eTest, das Readings für die fehlenden Readings zur Verfügung stellt.
defmod eTest dummy
attr eTest event-on-update-reading .*
attr eTest group energyControl
attr eTest readingList PV2_power SP_power Car_power House_power
attr eTest room Energie
attr eTest setList PV2_power SP_power Car_power
attr eTest userReadings ERROR:.* {\
  my $pv2=ReadingsVal("eTest","PV2_power",0);;\
  my $sp=ReadingsVal("eTest","SP_power",0);;\
  return "Speicher entlädt trotz Solarstrom"\
    if( $sp<0 && $pv2>0 );;\
 },\
PV2SP_power:.* {ReadingsVal("eTest","PV2_power",0)-ReadingsVal("eTest","SP_power",0)},\
total_power:.* {ReadingsVal("eTest","House_power",0)+ReadingsVal("eTest","Car_power",0)-ReadingsVal("eTest","PV2SP_power",0)}\

Wie das dann aussieht, bitte den Bildern entnehmen. Sowohl das executor-Widget, als auch die fertige Seite energy.html hänge ich mal hier an.

LG

pah

Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.   

Prof. Dr. Peter Henning

#1
So, im nächsten Schritt habe ich jetzt noch die Sonne und die Anzeige der solaren Einstrahlung animiert (Die kommt bei mir von einem geeichten Sensor). Wenn es dunkel ist, sind beide weg. Im Prinzip könnte man das mit dem Astro-Device machen, der Einfachheit halber schaue ich nach, ob mein existierender Wechselrichter offline ist.

Damit ich eine der Anzeigen in einem Label-Widget mit dem Faktor -1 multiplizieren kann, muss natürlich auch noch fhem-tablet-ui.js und fhem-tablet-ui.min.js gepatcht werden, so wie hier beschrieben:https://forum.fhem.de/index.php?topic=112177.0. Es wundert mich, dass diese Änderung noch nicht allgemein übernommen worden ist. (Fußnote: FTUI2 wird ja nicht weiter entwickelt - aber FTUI3 ist irgendwie erst halb fertig. Kennt jemand den Zeitplan?)

Jetzt dran: Animation des Autos, auf Grund der verschiedenen Zustände, die vom Reading car_num in meinem WallBox-Device kommen können. Leider derzeit noch simuliert (Ungeduld ...)

LG

pah


Prof. Dr. Peter Henning

E-Auto und WallBox sind jetzt auch animiert, ich stelle also die nächste Version des Codes hier zur Verfügung.

Wenn jemand die Icons haben möchte, bitte melden

LG

pah

UweH

Das macht was her.
Muss ich mir in Ruhe reinziehen  ;)

Gruß
Uwe

UweH

Zitat von: Prof. Dr. Peter Henning am 11 Februar 2024, 17:32:36Wenn jemand die Icons haben möchte, bitte melden
Gemeldet ;D

Zitat von: Prof. Dr. Peter Henning am 11 Februar 2024, 17:32:36ein Widget mit dem Namen "executor", das ich im FHEM-Buch beschrieben habe
Über das Widget stolpere ich noch. Ich suche in Deinen Büchern nach Hinweisen...die Kapitel über Widgets habe ich gefunden, aber sonst...
Wo muss ich das einbauen?

Danke und Gruß
Uwe

Prof. Dr. Peter Henning

#5
Das Widget executor ist zu finden im Buch "SmartHome mit FHEM", Abschnitt 10.4.3, Seite 260ff.

Das Widget muss zu den anderen Widgets von FTUI, also nach /opt/fhem/www/tablet/.

Es bekommt von dem data-device über das data-get den Inhalt eines Readings, das in der aufgerufenen JavaScript-Funktion ausgewertet werden muss. Diese Funktion muss 3 Parameter haben, nur der dritte enthält den von FHEM übergebenen Datenwert.

LG

pah

P.S.: Ich sehe gerade, dass das Haus noch 2 Fehler hat.
P.P.S.: Behoben

UweH

OK, Danke.
Ich werde mich mal durchbeißen.

Gruß
Uwe

carlos

Hab es mal getestet. Funktioniert soweit.
2 Sachen:
  • Es fehlt sun.png
  • zähler.png musste ich in zaehler.png umbenennen
Sieht gut aus, danke.

Gruß
Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Prof. Dr. Peter Henning


UweH

Läuft soweit und ich bin dabei, die Visualisierung etwas auf meine Gegebenheiten anzupassen.
Ich habe da so ein Buch, von einem gewissen P.A.Henning...hilft ungemein  ;D

Danke  ;)