FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: toka11 am 19 Dezember 2016, 09:09:21

Titel: xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: toka11 am 19 Dezember 2016, 09:09:21
Hallo,

ich möchte die tägliche durchschnittliche Aussentemperatur gegen den täglichen Gasverbrauch plotten (scatter plot). Ich habe beide Werte in verschiedenen Logdateien gespeichert.

Geht das mit logproxy?
Titel: Antw:xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: justme1968 am 19 Dezember 2016, 23:09:40
das plotten ja, das zusammenführen aus zwei log files nicht direkt.

du müsstest dir eine eigene routine schreiben die z.b. über die filelog get funktion die daten für den relevanten zeitraum aus beiden logs holt und dann in das von logproxy benötigte format zusammen mischt. diese kannst du dann mit Func: in einer logProxy columnspec zeile im plotfile angeben.

gruss
  andre
Titel: Antw:xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: toka11 am 20 Dezember 2016, 09:09:39
Vielen Dank.
Wenn ich es richtig verstehe, müsste ich die aus den log files ein neues log file erstellen und das dann mit einer eigenen Funktion (Func:) plotten?
D.h. logProxy_xy2Plot(\@xyPoints) ist dafür nicht anwendbar?

Grüße
Toralf
Titel: Antw:xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: justme1968 am 20 Dezember 2016, 09:44:02
du musst kein neues log erstellen.

aber du rauchst eine eigene routine um beide logs auszulesen und das array zu erstellen.

und dann hast du etwas in der art im plot file: Func:logProxy2Plot(myFunc($from,$to,'log1','log2'))

gruss
  andre
Titel: Antw:xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: andies am 01 Januar 2020, 17:44:07
Ich kapere mal den Thread, weil ich keinen neuen aufmachen will. Ich hatte mir aus jux und tollerei überlegt, wie man den Gasverbrauch als Funktion der Außentemperaturen messen kann und da ich über mehrere Monate (eigentlich zwei Jahre) Daten haben, wollte ich mal loslegen. Das Bild unten zeigt den Plot aus den Daten. Auf der x- und der y-Achse stehen Minimal- und Maximaltemperatur des jeweiligen Tages, gemessen mit einem Sensor etwa zehn Meter vom Haus entfernt (die Gasheizung hat einen eigenen Temperaturfühler, den wollte ich aber nicht nehmen - obwohl der ja eigentlich auslöst). Auf der z-Achse steht der Gasverbrauch in Euro. Man sieht kleinere Fehler, an denen der Gaszähler ausgefallen ist sowie an denen wie verrückt gebadet wurde.

Logischerweise steigt der Verbrauch bei sinkenden Temperaturen; außerdem bleibt eine Grundlast, weil bei uns das warme Wasser ja mit Gas erzeugt wird. Dann war die Frage, wie man diese Funktion am geschicktesten darstellt. Es ist so, dass der Mittelwert aus Minimum und Maximum des Tages am besten vorhersagen kann, wie der Gasverbrauch werden wird (Vorhersagegüte fast 90%, das ist sehr gut). Die ideale Funktion ist eine quadratische:

Ich habe dann intern das so umgesetzt, um mir das auch anzeigen zu lassen:
   
   my $m=(ReadingsVal("BresserTemeo_1", "tmin", "20")+ReadingsVal("BresserTemeo_1", "tmax", "20"))/2; #Mittelwert holen
   fhem("setreading Gasrechner Normverbrauch ".sprintf "%.2f", 9.9329-0.7284*$m+0.0137*$m*$m);  # Vorhersage schreiben


Wozu man das gebrauchen kann? Keine Ahnung...
Titel: Antw:xy plot von Aussentemperatur gegen Gasverbrauch
Beitrag von: andies am 29 September 2020, 21:26:16
Ich habe hier ein wenig weiter gespielt und festgestellt, dass meine Rechnung oben mit zwei Eingabewerten viel zu kompliziert ist. Am besten kann man den Gasverbrauch bei meinem Haus vorhersagen, wenn man sich die Durchschnittstemperatur des  Tages anschaut. Genauer den Quotienten
Zitat(Maximaltemperatur+Minimaltemperatur)/2.
Das entsprechende Bild über zwei Jahre (unten dieser Durchschnitt, links der Preis des verbrauchten Gases, jeder Punkt ist ein Tag) hängt an. Wenn man da eine einfache Regression durchführt, kommt eine quadratische Gleichung heraus.   

Wenn man nun noch die Oberfläche des Hauses dazunimmt (da habe ich sehr überschlagsmäßig gerechnet) und unterstellt, dass diese quadratische Funktion in Wirklichkeit linear ist, kann man den U-Wert des Hauses abschätzen. Denn jeder Grad Temperaturverlust kostet mich ja ungefähr 0.68 Euro pro Tag, das macht also ungefähr 13 kWh pro Tag und das sind dann pro Stunde ungefähr 0.55 kW. Auf die Oberfläche des Hauses bezogen bedeutet das, mein Haus (1937 gebaut, Dach gedämmt, aber Oberfläche nicht und Doppelfenster) hat einen U-Wert von 1.2.

Jetzt müsste ich nur noch wissen, ob das gegenüber den Werten https://de.wikipedia.org/wiki/W%C3%A4rmedurchgangskoeffizient#Typische_Werte_des_Bauwesens (https://de.wikipedia.org/wiki/W%C3%A4rmedurchgangskoeffizient#Typische_Werte_des_Bauwesens) gut oder schlecht ist. Genau ist es sicher nicht, aber es wird näher an der Wahrheit liegen als 0.5 oder 2.