Summe aller Thermostatventile plotten

Begonnen von Herr 3x, 08 Januar 2014, 22:28:45

Vorheriges Thema - Nächstes Thema

Herr 3x

Hallo,

um zu prüfen, ob es beim morgendlichen Hochheizen nicht zu Leistungsspitzen kommt und um einen Überblick über die Heizlast im Tagesverlauf zu bekommen habe ich mir die Summe aller Ventilöffnungen geplottet.
Dazu müssen erst einmal die Ventilstellungen der Funk-Heizkörperthermostate (bei mir Homematic HM-CC-RT-DN) summiert werden. Wenn alle Ventile zu 100% auf sind soll das in der Summe 100% sein, ein Ventil trägt also Ventilstellung/Gesamtanzahl_Ventile zur Summe bei

##########################
# Summe aller Ventilöffnungen berechnen
define Ventile_Gesamt dummy

define n_heizung notify n_heizung {\
my $ventile_gesamt=0;;\
my @@hk=devspec2array("subType=thermostat");;\                   #Array aller Thermostate anlegen, "thermostat" ggf. anpassen
my $ventile_anzahl=@@hk;;\                                       #Anzahl der Thermostate ermitteln
foreach(@@hk) {\                         
     my $ventil=ReadingsVal($_, "actuator", "101%");;\            # ggf. "actuator" anpassen
     $ventil=(substr($ventil, 0, (length($ventil)-1)));;\         # umwandeln in eine Zahl, das % stört
     $ventile_gesamt=$ventile_gesamt+($ventil/$ventile_anzahl);;\ # Summe bilden
   }\
fhem("set Ventile_Gesamt $ventile_gesamt");;\
}

define FileLog_Ventile FileLog /var/log/fhem/Ventile-%W.log Ventile_Gesamt
attr FileLog_Ventile logtype text
attr FileLog_Ventile room Ventile

define a_heizung at +*00:02:30 trigger n_heizung                   # Bei Homematic kommt etwa alle 2:30 min eine Ventilstellung

define SVG_FileLog_Ventile_1 SVG FileLog_Ventile:SVG_FileLog_Ventile_1:CURRENT
attr SVG_FileLog_Ventile_1 room Ventile


So, fehlt noch der Plot "SVG_FileLog_Ventile_1.gplot"

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Akutatoren"
set yrange [0:100]
set y2range [0:100]

#FileLog 3:Ventile_Gesamt.*::

plot "<IN>" using 1:2 axes x1y2 title 'Gesamt' ls l0fill lw 1 with lines



Kann sein, dass das eleganter geht - ich habe es nur nicht besser hinbekommen.
Vielleicht kann damit ja jemand was anfangen.

Herr 3x

betateilchen

Du solltest in die Politik gehen, da werden auch viele Zahlen zu völlig sinnlosen und zu nichts zu gebrauchenden Zahlenwerten schöngerechnet...  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Herr 3x

Zitat von: betateilchen am 09 Januar 2014, 14:04:54
Du solltest in die Politik gehen, da werden auch viele Zahlen zu völlig sinnlosen und zu nichts zu gebrauchenden Zahlenwerten schöngerechnet...  8)
Danke für die Empfehlung. Dein Lob ist mir Ansporn.

Herr 3x