WEBVTT 00:00:00.000 --> 00:00:16.900 RC3-Vorspann-Musik 00:00:16.900 --> 00:00:20.750 Herald: Aber und damit herzlich willkommen wieder an diesem Morgen zur About-Future- 00:00:20.750 --> 00:00:26.060 Stage. Wir haben jetzt hier einen ganz interessanten Talk über DIY-Heizenergie- 00:00:26.060 --> 00:00:31.340 Optimierung mit einem neuronalen Netzwerk von Jens Dorfmüller hier zu meiner 00:00:31.340 --> 00:00:36.370 Rechten. Jens hat auch die Folien unter seiner Website wwwjens.dorfmüller.de, mit 00:00:36.370 --> 00:00:46.940 ü oder mit u ist egal. Ja Jens, wie bist du darauf gekommen, einen Talk über 00:00:46.940 --> 00:00:50.650 Heizenergie-Optimierung zu machen? Jens: Ich habe mich vor zweieinhalb Jahren 00:00:50.650 --> 00:00:55.520 habe ich einen Smart Meter eingebaut bekommen und habe mich damit beschäftigt, 00:00:55.520 --> 00:01:01.470 was man damit machen kann. Und daraus hat sich im Laufe von zweieinhalb Jahren ein 00:01:01.470 --> 00:01:04.989 bisschen größeres Projekt entwickelt. Und jetzt war ich.. ist das Projekt in einem 00:01:04.989 --> 00:01:08.940 Zustand, wo ich sag: Na ja, jetzt könnte man es eigentlich auch mal zeigen und 00:01:08.940 --> 00:01:13.400 gucken, ob es für andere Leute interessant ist, ob andere Leute vielleicht auch noch 00:01:13.400 --> 00:01:17.830 Ideen haben, was man weiter damit machen könnte. Ja und so habe ich gedacht, melde 00:01:17.830 --> 00:01:21.510 ich mal einen Talk an und es freut mich sehr, dass ich heute hier in München sein 00:01:21.510 --> 00:01:24.310 darf und mal wieder auf einer Bühne stehen darf. 00:01:24.310 --> 00:01:29.690 Herald: Wunderbar. Ich würde sagen, damit übergebe ich gleich an dich und wir sind 00:01:29.690 --> 00:01:36.330 gespannt, was du uns zu erzählen hast. Jens: Super, guten Morgen zusammen. So, 00:01:36.330 --> 00:01:39.660 ich fange gleich mit meiner ersten Folie an. Die ganze Geschichte hat bei mir 00:01:39.660 --> 00:01:44.071 angefangen, vor gut zweieinhalb Jahren, als ich einen Smart Meter eingebaut 00:01:44.071 --> 00:01:48.060 bekommen habe und ich mich damit beschäftigt habe: Was kann man denn 00:01:48.060 --> 00:01:52.501 eigentlich damit machen? Und als ich mich damit beschäftigt habe, habe ich dann 00:01:52.501 --> 00:01:56.780 festgestellt Na ja, dieses Smart Meter überträgt alle paar Sekunden den 00:01:56.780 --> 00:02:01.890 Zählerstand und die aktuell bezogene Leistung. Und zwar macht sie das über eine 00:02:01.890 --> 00:02:07.810 Infrarot-Schnittstelle, die da drauf ist. Auf der Folie, auf dem Bild sieht man 00:02:07.810 --> 00:02:11.731 diese Infrarot-Schnittstelle, abgedeckt durch so einen gelben Messkopf, den ich da 00:02:11.731 --> 00:02:18.510 draufgesetzt habe. Darunter sitzt die LED. Diese Infrarot-LED kann man mit einer 00:02:18.510 --> 00:02:23.670 einfachen Diode, mit einer einfachen Foto- Diode mit einer Infrarot-Foto-Diode 00:02:23.670 --> 00:02:28.329 abgreifen und kann die zum Beispiel über die Infrarot-Schnittstelle, über eine 00:02:28.329 --> 00:02:32.439 GPIO-Schnittstelle eines Raspberry PI auslesen. Oder ich habe ein bisschen die 00:02:32.439 --> 00:02:37.201 faule Variante genommen. Ich habe jemanden gefunden, der in der Kleinserie so ein 00:02:37.201 --> 00:02:45.719 Messkopf gebaut hat und der die quasi mit USB-Schnittstelle angeboten hat. Vorteil 00:02:45.719 --> 00:02:49.639 wenn man das Ding so semiprofessionell kauft, dann dann wird da auch gleich noch 00:02:49.639 --> 00:02:55.030 nen Magnet-Ring mit eingebaut, der das dann auf der Schnittstelle festhält und 00:02:55.030 --> 00:03:01.709 das ganze optisch abdichtet. So, damit kann ich jetzt den Zählerstand auslesen. 00:03:01.709 --> 00:03:06.930 Vielleicht noch einen Hinweis für Leute, die das nachmachen wollen. Man muss erst 00:03:06.930 --> 00:03:11.709 die Schnittstelle freischalten, da gibt es eine PIN, die man da eintippen, eingeben 00:03:11.709 --> 00:03:14.900 muss. Das ist ganz lustig über Morsezeichen, mit einer Taschenlampe muss 00:03:14.900 --> 00:03:19.879 man die eingeben und dann kann man den vollen, die Ausgabe des vollen Datensatz 00:03:19.879 --> 00:03:26.310 freischalten. Das habe ich dann gemacht und ich habe ein Projekt gefunden im 00:03:26.310 --> 00:03:32.370 Internet volkszähl.org, dieses Projekt liefert letztendlich die ganze Software, 00:03:32.370 --> 00:03:37.019 mit der man das dann auslesen kann, die die Daten aufbereiten kann. Dieses Projekt 00:03:37.019 --> 00:03:41.529 steht, besteht letztendlich aus mehreren Programmen. Das eine, erste Programm ist 00:03:41.529 --> 00:03:46.939 der vzlogger. Der liest quasi den Datenstrom mit, teilt ihn auf in 00:03:46.939 --> 00:03:50.980 verschiedene Kanäle, also in den Kanal, Zählerstand-Hauptzeit, Zählerstand- 00:03:50.980 --> 00:03:57.129 Nebenzeit und den aktuellen Verbrauch. Der kann aber auch puffern. Das heißt, wenn 00:03:57.129 --> 00:04:02.249 mein Server, auf dem die Daten gespeichert werden, mal down ist, dann puffer der 00:04:02.249 --> 00:04:07.650 zwischen, so lange bis der wieder ub ist und schickt dann die Daten rüber. Dieses 00:04:07.650 --> 00:04:13.769 Programm, vzlogger, schickt die Daten dann an eine Middleware, die auf meinem Server 00:04:13.769 --> 00:04:17.630 läuft. Das ist im Prinzip eine Schnittstelle, ein ganz einfacher http- 00:04:17.630 --> 00:04:24.470 request, über den das übertragen wird. Diese Middleware hat dann die Aufgabe, die 00:04:24.470 --> 00:04:29.300 die Messwerte zu empfangen und sie letztendlich in die Maria-DB, die im 00:04:29.300 --> 00:04:35.520 Hintergrund läuft, zu schreiben. Und dann gibt es noch das Web Frontend. Das ist 00:04:35.520 --> 00:04:39.860 letztendlich das, wie man das Ganze bedient. Die nimmt dann die Daten aus der 00:04:39.860 --> 00:04:45.240 Maria-DB und stellt sie grafisch dar. Und damit kann man schon ganz interessante 00:04:45.240 --> 00:04:52.919 Dinge machen. Hier zum Beispiel ist.. ist der Strom, der Stromverbrauch, der normale 00:04:52.919 --> 00:04:59.080 Stromverbrauch von unserem Haus. Und jetzt sieht man unten die Zeitskala und oben 00:04:59.080 --> 00:05:04.550 aufgetragen die Leistung, die abgerufen wurde. Jetzt habe ich folgendes Ereignis 00:05:04.550 --> 00:05:09.449 mal mit geplottet: Hier sieht man, was der Stromverbrauch ist vom Haus, wenn das 00:05:09.449 --> 00:05:14.520 Deckenlicht im Wohnzimmer an ist. So, dann bin ich hergegangen, habe die Leselampe 00:05:14.520 --> 00:05:20.810 neben dem Sofa angemacht. Man sieht der Stromverbrauch steigt. Dann habe ich das 00:05:20.810 --> 00:05:25.840 Decken Licht ausgemacht und habe gedacht naja, jetzt spare ich Strom, weil ich nur 00:05:25.840 --> 00:05:31.400 noch weniger Licht verbrauche. Dann habe ich aber mal mein Handy rausgezogen, habe 00:05:31.400 --> 00:05:35.790 die Oberfläche aufgerufen und habe geguckt und habe festgestellt: Ich habe gerade 00:05:35.790 --> 00:05:42.199 genau das Gegenteil gemacht. Ich habe mehr Strom verbraucht. Man sieht, das Ganze 00:05:42.199 --> 00:05:45.150 kann man rückgängig machen: Wenn ich das Licht wieder anmache und die Leselampe 00:05:45.150 --> 00:05:50.620 aus, dann verbrauche ich auf einmal wieder weniger Strom. Wenn man drüber nachdenkt: 00:05:50.620 --> 00:05:55.379 ganz logisch. Die Deckenlampe ist eine moderne LED-Lampe, wo die meiste Energie 00:05:55.379 --> 00:06:01.440 in Licht verwandelt wird und die Leuchte neben dem Sofa ist noch eine alte Halogen- 00:06:01.440 --> 00:06:08.080 Standleuchte, die verbrennt eben.. die erzeugt nicht nur Licht, sondern auch eine 00:06:08.080 --> 00:06:14.370 Menge Wärme und verbraucht deswegen mehr Strom. Seitdem ist die Stehlampe ehrlich 00:06:14.370 --> 00:06:18.800 gesagt auch ein bisschen in Ungnade gefallen. Sie wird deutlich weniger 00:06:18.800 --> 00:06:27.380 eingeschaltet. So, jetzt wollt ich mal ein bisschen mehr damit machen. Vorteil von 00:06:27.380 --> 00:06:31.289 dieser von dem Projekt volkszaehler.org ist, dass diese http-Schnittstelle sehr 00:06:31.289 --> 00:06:35.409 sehr gut dokumentiert ist und man relativ einfach auch andere Dinge da reinhängen 00:06:35.409 --> 00:06:41.949 kann. Ich habe zum Beispiel noch ein paar Temperatur-Sensoren da reingehängt. Das 00:06:41.949 --> 00:06:45.860 sind einfache Platin-Messwiderstand- Temperatursensoren. Ich habe mir von 00:06:45.860 --> 00:06:50.819 Adafruit einen Verstärker dafür gekauft, den kann ich dann.. da kann ich dann die 00:06:50.819 --> 00:06:55.560 Temperatur über die SPI-Schnittstelle mit einem RaspberryPI0 auslesen und ich kann 00:06:55.560 --> 00:07:00.849 ein einfaches Python-Script schreiben. Das sind wirklich nur 15 Zeilen und kann das 00:07:00.849 --> 00:07:08.249 dann an den vzlogger übergeben. Also hier rechts dargestellt sieht man dann auch wie 00:07:08.249 --> 00:07:11.580 das ganze aussieht. Also der Temperatursensor ist über ein vieradriges 00:07:11.580 --> 00:07:19.069 Kabel an den Verstärker angebunden, über SPI dann an an den RaspberryPI0. Da geht 00:07:19.069 --> 00:07:26.590 es dann an den vzlogger und über WLAN hängt der an meinem Server. Gut, eine 00:07:26.590 --> 00:07:34.009 weitere Datenquelle, die mich interessiert hat, war die Heizung. Da habe ich ein 00:07:34.009 --> 00:07:38.879 bisschen den Nachteil, da gibt es keine gut dokumentierte freie Schnittstelle. 00:07:38.879 --> 00:07:43.280 Erst kürzlich hat der Hersteller Vissmann die API zum Auslesen auch wirklich 00:07:43.280 --> 00:07:48.629 freigegeben und einigermaßen dokumentiert. Zum Glück gibt es aber eine OpenSource- 00:07:48.629 --> 00:07:57.259 Schnittstelle, eine OpenSource-API auf GitHub, die bereits.. die es schon länger 00:07:57.259 --> 00:08:03.340 gibt und die mir das Leben da ereinfacht: Da kann ich eben über diese API die Daten 00:08:03.340 --> 00:08:07.660 von meiner Heizungsanlage auslesen und aus der Cloud auslesen und damit in meinem 00:08:07.660 --> 00:08:13.599 volkszaehler.org einspielen. Die Daten, die ich da abgreifen. Das sind vor allen 00:08:13.599 --> 00:08:18.560 Dingen die Außentemperatur. Ich kann auslesen, ob die Heizung aktiv ist oder ob 00:08:18.560 --> 00:08:23.479 sie, ob sie im Sommer ausgeschaltet ist. Und was ganz interessant ist: Ich kann 00:08:23.479 --> 00:08:28.090 lesen, ob die Heizung gerade Warmwasser- Aufbereitung macht oder ob sie mein Haus- 00:08:28.090 --> 00:08:38.070 Fußbodenheizung betreibt. So, damit kann ich jetzt schon eine bisschen, bisschen 00:08:38.070 --> 00:08:41.970 interessantere Auswertung machen. Ich kenne also die Leistungsaufnahme meiner 00:08:41.970 --> 00:08:46.800 Heizung zu jedem Zeitpunkt und ich kenne den Betriebszustand zu jedem Zeitpunkt. 00:08:46.800 --> 00:08:51.830 Und jetzt kann ich mir einfach ausrechnen, wie viel Strom ich eigentlich für.. zum 00:08:51.830 --> 00:08:55.790 Heizen brauche und wie viel ich für die Warmwasser-Aufbereitung brauche. Also hier 00:08:55.790 --> 00:09:03.440 sieht man jetzt einen Plot über die letzten zweieinhalb Jahre. Jeder Balken 00:09:03.440 --> 00:09:08.840 ist eine Woche. In Blau sieht man die Energie, die ich zum Heizen benutzt habe 00:09:08.840 --> 00:09:14.530 und in Orange sieht man die Energie, die zum Warmwasser-Aufbereitung benutzt wurde. 00:09:14.530 --> 00:09:18.860 Ich kann dann auch sehen, ich kann daraus relativ schnell sehen, in welcher Woche 00:09:18.860 --> 00:09:28.481 ich wie viel, wie viel wie viel Geld ausgegeben habe zum Heizen. So, ich kann 00:09:28.481 --> 00:09:34.160 aber auch auftragen, wie viel Energie brauche ich gegenüber bei welcher 00:09:34.160 --> 00:09:38.980 Temperatur? Und da kriegt man schon was Interessantes raus, da sieht man relativ 00:09:38.980 --> 00:09:45.630 schnell eine eindeutige Korrelation. Je wärmer es ist, umso weniger Energie 00:09:45.630 --> 00:09:52.940 brauche ich zur Warmwasser-Aufbereitung. Das ist relativ einfach erklärbar. So eine 00:09:52.940 --> 00:09:58.370 Luft-Wasser-Wärmepumpe, die hat eine eine schlechtere Effizienz, wenn es kalt ist. 00:09:58.370 --> 00:10:07.360 Wenn ich mir das jetzt angucke, könnte ich jetzt, ist es eine der Ideen, die ich 00:10:07.360 --> 00:10:11.410 habe, was ich in Zukunft ausprobieren will. Ich könnte jetzt sagen, ich guck mir 00:10:11.410 --> 00:10:17.120 die Wettervorhersage an und verlege versuche die Wasser Warmwasser- 00:10:17.120 --> 00:10:23.080 Aufbereitung in die Zeit am Tag zu legen, in der es wärmer ist. Und in der kalten 00:10:23.080 --> 00:10:26.180 Zeit, vor allen Dingen in der Nacht, da unterdrücke ich dann die Warmenwasser- 00:10:26.180 --> 00:10:35.850 Aufbereitung bis in die frühen Morgenstunden. Ja, das ist eine Idee. So, 00:10:35.850 --> 00:10:41.100 dann habe ich aber auch zu Hause noch einen Komfort-Ofen, einen Holzofen im 00:10:41.100 --> 00:10:46.310 Wohnzimmer, den ich betreibe. Und was mich jetzt dann interessiert hat, ist: Wie viel 00:10:46.310 --> 00:10:53.030 Strom spare ich eigentlich dadurch, dass ich hin und wieder mit Holz heizen? Auch 00:10:53.030 --> 00:10:56.770 da habe ich mal einen einfachen Plot versucht. Ich habe einfach die Temperatur 00:10:56.770 --> 00:11:03.290 aufgetragen und dann dagegen die Energie, die ich zum Heizen mit meiner Was.. mit 00:11:03.290 --> 00:11:09.890 meiner Luft-Wärmepumpe brauche. Jeder Punkt hier, jeder Punkt ist quasi eine 00:11:09.890 --> 00:11:17.050 Woche, der Mittelwert einer Woche. Und man sieht in den Wochen, wo ich markiert habe, 00:11:17.050 --> 00:11:22.530 dass ich den Ofen relativ häufig anhatte, dort scheint der Stromverbrauch 00:11:22.530 --> 00:11:27.510 tatsächlich ein bisschen reduziert zu sein. Ob jetzt der Holzofen an war oder 00:11:27.510 --> 00:11:32.510 nicht, das kann ich eben an meine Temperatur-Sensoren messen. Da sehe ich, 00:11:32.510 --> 00:11:36.682 wenn.. wenn die Temperatur-Sensoren nur die Umgebungstemperatur anzeigen, dann war 00:11:36.682 --> 00:11:41.190 er offensichtlich aus und wenn die deutlich über der Raumtemperatur liegen, 00:11:41.190 --> 00:11:47.910 dann war der an. So, jetzt habe ich mich gefragt, kann ich das eigentlich auch noch 00:11:47.910 --> 00:11:54.632 genauer ausrechnen? Und da habe ich mir jetzt folgende Idee überlegt: Ich nehme 00:11:54.632 --> 00:11:59.980 ein neuronales Netzwerk, trainiere das auf die Außentemperatur, die Temperatur des 00:11:59.980 --> 00:12:07.200 Ofens und den Betriebsmodus der der Heizung. Und wenn ich das trainiert habe, 00:12:07.200 --> 00:12:11.190 dann manipuliert ich die Ofen-Temperatur, die dieses neuronale Netzwerk sieht, 00:12:11.190 --> 00:12:16.240 einfach so, dass ich so tue, als ob der Ofen nie angewiesen wäre. Und jetzt 00:12:16.240 --> 00:12:21.320 postuliere ich, dass die Differenz zwischen der Vorhersage mit dem Holzofen 00:12:21.320 --> 00:12:27.550 und die Vorhersage ohne den Holzofen, das müsste ungefähr meine gesparte elektrische 00:12:27.550 --> 00:12:35.310 Energie sein. So, so, sieht jetzt, sehen die eingangs Größen für das neuronale 00:12:35.310 --> 00:12:39.690 Netzwerk aus. Man sieht also hier die Außentemperatur, dass es eben nicht nur 00:12:39.690 --> 00:12:45.530 die aktuelle Außentemperatur, sondern eben auch die von den Zeitslots vorher. Ich 00:12:45.530 --> 00:12:50.890 mittel immer über Zeitslots von 6 Stunden, das heißt, ich betrachte hier die die 00:12:50.890 --> 00:12:56.430 Außentemperatur bis zu 24 Stunden rückwärts. Dasselbe mache ich mit dem 00:12:56.430 --> 00:13:01.390 Ofenspeicher mit dem Ofen. Dann nehme ich eben auch nicht nur die aktuelle 00:13:01.390 --> 00:13:08.510 Temperatur, sondern gucke mir auch bis.. gucke mir auch drei Slots zurück an. Denn 00:13:08.510 --> 00:13:12.280 bei dem Betriebszustand der Heizung, da gucke ich mir jetzt nur an Ist die Heizung 00:13:12.280 --> 00:13:17.690 aktuell an oder ist sie im Spar-Modus? Oder ist gerade die EVU-Sperre vielleicht 00:13:17.690 --> 00:13:22.610 noch ein Wort zu der EVU-Sperre: Das ist eben ein Recht, was mein Energieversorger 00:13:22.610 --> 00:13:27.630 hat. Mein Energieversorger darf mir sagen, dass an bestimmten Zeiten am Tag meine 00:13:27.630 --> 00:13:33.330 Heizung ausbleiben muss. Da hält sich die Heizung halt auch dran. Und das hat 00:13:33.330 --> 00:13:37.760 natürlich auch einen massiven Einfluss darauf, wie viel Strom meine Heizung 00:13:37.760 --> 00:13:45.110 verbraucht. So die aus... die Größe, auf die ich das neuronale Netzwerke trainiere, 00:13:45.110 --> 00:13:49.450 ist letztendlich die Heizenergie. Das ist die, die das Integral über die Leistung 00:13:49.450 --> 00:13:58.750 ohne die Warmwasser aufbereitung. So sieht dann das neuronale Netzwerk aus. Ich habe 00:13:58.750 --> 00:14:07.870 hier, dass das Input-Layer mit 11 Größen, einen Hidden-Layer mit 24 Neuronen dann im 00:14:07.870 --> 00:14:13.820 Hidden-Layer 2:16, im Hidden-Layer 3:12 und dann habe ich nachher einen Output- 00:14:13.820 --> 00:14:18.830 Layer und das Netzwerk ist fully connected. Man sieht hier an der Anzahl 00:14:18.830 --> 00:14:24.630 der Linien, hier gibt es sehr, sehr viele Parameter, sehr viel freie Parameter, mit 00:14:24.630 --> 00:14:30.550 der ich, mit dem ich das neuronale Netzwerke trainieren kann. Für mich als 00:14:30.550 --> 00:14:35.680 Physiker ist dieses neuronale Netzwerk erst einmal einfach nur eine Funktion mit 00:14:35.680 --> 00:14:43.300 insgesamt 905 Freiheitsgraden, also ein F(a1..a905) und dann noch die 00:14:43.300 --> 00:14:49.380 Eingangsgrößen hier und die Ausgangsgröße ist der Energieverbrauch. So und jetzt 00:14:49.380 --> 00:14:58.270 habe ich Datensätze für dieses x1 bis x11 von Datensatz 1 bis.. im Moment sind es 00:14:58.270 --> 00:15:03.440 über 23600 Stück, die ich da reinstecken will in diese Funktion. Und rauskommen 00:15:03.440 --> 00:15:10.380 soll der Energieverbrauch für jeden dieser einzelnen Datensätze. So, jetzt ganz kurz: 00:15:10.380 --> 00:15:15.380 Wie komme ich zu diesen Datensätzen? Hier sieht man jetzt aufgeplottet die Zeit, das 00:15:15.380 --> 00:15:21.730 sind zwei Tage. Man sieht hier in der Ockerfarbe den den den Stromverbrauch der 00:15:21.730 --> 00:15:28.020 Heizung und man sieht hier zum Beispiel in in Pink, das ist jetzt schwer zu erkennen, 00:15:28.020 --> 00:15:31.500 hier in Pink ist markiert, wo Warmwasser- Aufbereitung war. Das wird rausgerechnet. 00:15:31.500 --> 00:15:39.050 Und hier in Rot sieht man die Temperatur des Ofens. Und jetzt gehe ich her und 00:15:39.050 --> 00:15:44.700 teile das einfach in Sechs-Stunden-Slots auf und mittel die Werte für jeden dieser 00:15:44.700 --> 00:15:49.811 Sechs-Stunden-Slots. Wenn ich das ausrechene würde ich ungefähr auf, wenn 00:15:49.811 --> 00:15:53.500 ich das so mache über die ganze Zeit, über die ganzen zweieinhalb Jahre würde ich, 00:15:53.500 --> 00:15:57.810 glaube ich, auf 6000 Datensätze kommen. Jetzt mache ich noch ein bisschen.. 00:15:57.810 --> 00:16:01.560 schummeln ich noch ein bisschen. Ich schiebe diese Zeit-Slots einfach immer um 00:16:01.560 --> 00:16:06.350 eine Stunde weiter und so kann ich wesentlich mehr Datensätze generieren mit 00:16:06.350 --> 00:16:11.150 denselben Daten, die ich letztendlich habe. Das hilft mir sehr beim Trainieren 00:16:11.150 --> 00:16:18.280 des Netzwerks und erhöht die Genauigkeit. So, jetzt habe ich das neuronale Netzwerk. 00:16:18.280 --> 00:16:23.010 Ich habe die Daten. Jetzt ist die einzige Aufgabe, die noch fehlt: Ich muss das 00:16:23.010 --> 00:16:29.310 trainieren. Trainieren läuft normalerweise so, ich ich lege initiale Parameter fest. 00:16:29.310 --> 00:16:33.630 Dann schätze ich die die Datensätze. Ich berechne den Fehler, die Ableitung des 00:16:33.630 --> 00:16:38.750 Fehlers. Dann werden verbesserte Parameter bestimmt und so läuft das iterativ immer 00:16:38.750 --> 00:16:43.430 weiter, solange, bis der Fehler klein genug ist. Und dann sage ich: Das 00:16:43.430 --> 00:16:52.290 neuronale Netzwerk ist trainiert. So, das sind jetzt die Ergebnisse. Hier habe ich 00:16:52.290 --> 00:16:59.150 jetzt mal aufgetragen, wie viel Energie mein Ofen bei welcher Außentemperatur 00:16:59.150 --> 00:17:03.750 spart, das ist in rot aufgetragen. In schwarz sieht man noch, was passiert, wenn 00:17:03.750 --> 00:17:10.130 ich meine Heizung im Urlaubs-Modus betreibe. Aber wir konzentrieren uns jetzt 00:17:10.130 --> 00:17:13.860 hier auf die rote Linie und da sieht man je tiefer die Temperatur ist, umso mehr 00:17:13.860 --> 00:17:19.939 Energie spart er. Und zum Beispiel hier so bei minus 5, zwischen minus zwischen 0 und 00:17:19.939 --> 00:17:29.950 minus 5 Grad gibt es so ein Peak. Da spart mir mein Holzofen, da trägt er bis zu 0,5, 00:17:29.950 --> 00:17:40.080 bis zu 0,5 Kilowatt zur Heizung bei. So das Modell an sich, wenn ich das 00:17:40.080 --> 00:17:45.490 aufintegriere über den ganzen Zeitraum, dann sagt das Modell relativ gut den 00:17:45.490 --> 00:17:52.490 realen Energieverbrauch voraus. Das überschätzt den Energieverbrauch leicht um 00:17:52.490 --> 00:17:57.290 0,21%. Ich habe auch, ich habe das mehrmals wiederholt. Ich habe mal über 100 00:17:57.290 --> 00:18:01.250 Stück über 100 Läufe gemittelt und da komme ich auf eine Standardabweichung auf 00:18:01.250 --> 00:18:09.640 3,2%. Das finde ich schon relativ gut für den Ansatz. So, die Energieersparnis, die 00:18:09.640 --> 00:18:16.010 das Modell voraussagt, ist im Durchschnitt 6,.., ja ungefähr 6,4% und die 00:18:16.010 --> 00:18:19.040 Standardabweichung dort ist auch so gering, dass ich sag: Ja, dem Wert kann 00:18:19.040 --> 00:18:25.350 man vertrauen. Und insgesamt sagt das Modell mir voraus, dass ich mit dem 00:18:25.350 --> 00:18:33.820 Betrieb des Holzofen so ca. 575 Kilowattstunden an elektrischer Energie 00:18:33.820 --> 00:18:43.190 gespart habe oder in Stromkosten ca. 135 Euro. Gut. Wie kann man das einschätzen? 00:18:43.190 --> 00:18:49.900 Hier die beiden Wärmequellen verglichen einerseits meine Luft-Wasser-Wärmepumpe, 00:18:49.900 --> 00:18:57.130 auf der anderen Seite der Holz-Kaminofen. So Energieträger bei der Luft-Wasser- 00:18:57.130 --> 00:19:02.600 Wärmepumpe ist Strom. Inzwischen beziehe ich da nur noch Ökostrom. Die Kosten hatte 00:19:02.600 --> 00:19:10.151 ich gesagt, 135 Euro und die eingesparte Energie 575 Kilowattstunden. So, das ist 00:19:10.151 --> 00:19:16.310 aber der Stromverbrauch der Wärmepumpe. Und das, was an Heizenergie dann wirklich 00:19:16.310 --> 00:19:22.030 zu Hause ankommt, ist höher. Da gibt es eben einen Umrechnungsfaktor, der sagt, 00:19:22.030 --> 00:19:26.680 wie viel Energie wirklich im Haus ankommt, denn die Wärmepumpe erzeugt ja nicht 00:19:26.680 --> 00:19:31.560 Wärmeenergie, sondern sie pumpt die Wärmeenergie einfach von außen in das Haus 00:19:31.560 --> 00:19:38.180 hinein und der Holzofen wurde betrieben bei einer Durchschnittstemperatur von 5 00:19:38.180 --> 00:19:43.420 Grad. Und da liegt der "Coefficient of Performance" meiner Luft-Wasser-Wärmepumpe 00:19:43.420 --> 00:19:52.020 so ca. bei 4,7. Das heißt, das was an Heizenergie bei mir im Haus ankommt oder 00:19:52.020 --> 00:19:59.540 angekommen wäre von diesem, von der eingesparten Energie ist das 4,7 fache. So 00:19:59.540 --> 00:20:04.000 auf der anderen Seite habe ich den Holz- Kaminofen. Da habe ich in den zweieinhalb 00:20:04.000 --> 00:20:11.040 Jahren ca. 4 Schüttraummeter Buchenholz verbrannt. Hier sieht man, wie viel das 00:20:11.040 --> 00:20:16.570 ist. Das sind zwei Meter Buchenholz, das heißt das doppelte. Von dem habe ich ca. 00:20:16.570 --> 00:20:23.070 in dem Ofen in der Zeit verbrannt. Bezahlt habe ich dafür wesentlich mehr als für für 00:20:23.070 --> 00:20:32.730 den Strom, den ich gespart habe. Die Energie, die dieses Holz hat, sind ca. 00:20:32.730 --> 00:20:38.510 fünfeinhalb Kilowatt, 5500 Kilowattstunden. Jetzt hat der Ofen 00:20:38.510 --> 00:20:45.530 natürlich auch eine gewisse Effizienz. Die wird angegeben bei ca. 82%. Das heißt auch 00:20:45.530 --> 00:20:50.360 davon kommt natürlich nicht alles bei mir im Haus an. Jetzt, wenn man guckt, ist 00:20:50.360 --> 00:20:54.840 eine Differenz von fast 2000 Kilowattstunden. Das wirkt erst mal 00:20:54.840 --> 00:21:02.410 relativ groß. Aber an sich liege ich da in der richtigen Größenordnung. Die möglichen 00:21:02.410 --> 00:21:06.630 Ursachen für die Differenz, die da noch ist, zum einen unterschätze ich 00:21:06.630 --> 00:21:11.490 wahrscheinlich noch den Effekt von meinem Holzofen, denn ich mittel nur ich gucke 00:21:11.490 --> 00:21:17.800 nur bis zu 24 Stunden zurück. Und wenn der Ofen mal ordentlich läuft und auch die 00:21:17.800 --> 00:21:22.890 Wände vom Haus erhitzt, dann ist der Effekt wahrscheinlich noch wesentlich 00:21:22.890 --> 00:21:32.290 länger. Und zum anderen: die die Effizienz von 82% erreiche ich garantiert nicht zu 00:21:32.290 --> 00:21:39.260 Hause, denn der Ofen steht nur in einem Raum und der heizt genau einen Raum. Und 00:21:39.260 --> 00:21:43.390 da kommt nicht alles im ganzen Haus an. Auch da könnte man wahrscheinlich 00:21:43.390 --> 00:21:51.100 verbessern. So was schließe ich daraus. Zum einen: Wirtschaftlich ist der Betrieb 00:21:51.100 --> 00:21:59.630 meines Holzofens definitiv nicht rentabel. Denn wenn wir, wenn draußen Temperaturen 00:21:59.630 --> 00:22:02.450 so jenseits der Minus 10 Grad sind, dann macht es wahrscheinlich auch 00:22:02.450 --> 00:22:06.490 wirtschaftlich Sinn, den zu betreiben. Da muss man einfach bedenken Der "Coefficient 00:22:06.490 --> 00:22:11.340 of Performance" einer Wärmepumpe sinkt drastisch, wenn man in Richtung minus 10 00:22:11.340 --> 00:22:16.690 Grad geht. Ich habe mal aus dem Datenblatt hergeleitet. Leider sieht man das.. leider 00:22:16.690 --> 00:22:21.120 wird das für die Temperatur nie angegeben, weil die Werte dann relativ schlecht sind. 00:22:21.120 --> 00:22:23.990 Deswegen habe ich mir die aus dem Datenblatt mal hergeleitet. 00:22:23.990 --> 00:22:28.610 Schätzungsweise bei minus 10 prozent... bei minus 10 Grad Celsius ist der 00:22:28.610 --> 00:22:32.300 "Coefficient of Performance" wahrscheinlich nur noch bei 2,5. 00:22:32.300 --> 00:22:38.760 Dahingegen: Die Leistung und die Effizienz des Ofens bleibt aber unabhängig von der 00:22:38.760 --> 00:22:44.770 Außentemperatur immer gleich. Das heißt, irgendwo bei sehr tiefen Temperaturen 00:22:44.770 --> 00:22:53.880 draußen steigt das, macht es immer mehr Sinn, diesen Ofen zu betreiben. Von der 00:22:53.880 --> 00:23:00.910 CO2-Bilanz her kommt es ganz darauf an, was man für einen Strommix hat. Dadurch, 00:23:00.910 --> 00:23:07.740 dass ich jetzt nur noch nur noch Ökostrom nehme, macht das da auch nicht mehr so 00:23:07.740 --> 00:23:14.130 viel Sinn. Wenn ich die energetische Betrachtung von vorhin angucke, dann komme 00:23:14.130 --> 00:23:19.100 ich drauf, dass die Analyse-Methode an sich scheinbar ganz gut funktioniert und 00:23:19.100 --> 00:23:24.950 mir da auch Daten in der richtigen Größenordnung liefert. An sich lässt sich 00:23:24.950 --> 00:23:31.300 dieser Ansatz auch übertragen eben auf andere Dinge. Die Methode lässt sich 00:23:31.300 --> 00:23:35.490 eigentlich immer dann einsetzen, wenn man vorhersagen möchte, ob eine manchmal 00:23:35.490 --> 00:23:40.559 verwendete Verhaltens-Methode bei dauerhafter Anwendung zu einer Einsparung 00:23:40.559 --> 00:23:44.310 führen würde. Und dann kann man auch ausrechnen, wie groß diese Einsparung 00:23:44.310 --> 00:23:52.530 wäre. Das könnte man zum Beispiel machen, indem man die Umwälzpumpe für die 00:23:52.530 --> 00:23:57.530 Warmwasser-Aufbereitung mal einschaltet, mal ausschaltet, dann darauf ein Modell 00:23:57.530 --> 00:24:03.440 trainiert und am Schluss sich dann ausrechnet: Wenn ich die dauerhaft 00:24:03.440 --> 00:24:09.679 ausgeschaltet lassen würde, wie viel würde ich dann sparen? Oder ich könnte mir 00:24:09.679 --> 00:24:14.300 überlegen, wenn ich die Jalousien regelmäßig bei Kälte runter lasse, alle 00:24:14.300 --> 00:24:17.770 Jalousien runter lasse. Dann würde ich wahrscheinlich auch was sparen und ich 00:24:17.770 --> 00:24:20.940 könnte mir gucken.. ich könnte mir angucken, wie viel diese 00:24:20.940 --> 00:24:29.460 Verhaltensänderung nachher auch an Energie sparen würde. Gut, zum Schluss noch einmal 00:24:29.460 --> 00:24:35.340 die Projekte, die Software und die ich die verwendet habe. Zum einen habe ich schon 00:24:35.340 --> 00:24:39.300 erwähnt das OpenSource Projekt volkszaehler.org, was mir sehr geholfen 00:24:39.300 --> 00:24:48.420 hat und die Viessmann App von von True Avatar auf GitHub. Zum Auswerten habe ich 00:24:48.420 --> 00:24:55.090 sehr viel NumPy verwendet. Ich habe auf das Backend von Vissmann zugegriffen. Da 00:24:55.090 --> 00:25:00.850 gibt es das Developer Portal, wo man dann ja die dokumentierte API findet. 00:25:00.850 --> 00:25:04.040 Programmiersprachen habe ich das meiste in Python geschrieben, auch ein bisschen PHP 00:25:04.040 --> 00:25:10.720 ist dabei. Machine Learning habe ich in Keras mit Tensor Flow als Backend 00:25:10.720 --> 00:25:16.530 angewendet und als Package Manager hatte ich Anaconda und ein Buch was ich 00:25:16.530 --> 00:25:22.200 empfehlen kann ist hier von Jörg Frochte: Maschinelles Lernen. Das hat mir sehr viel 00:25:22.200 --> 00:25:27.480 Spaß gemacht, es zu lesen und es hat mir sehr viel gebracht zum Verständnis von 00:25:27.480 --> 00:25:33.059 neuronalen Netzwerken. Damit bin ich fertig. Möchte mich herzlich bedanken fürs 00:25:33.059 --> 00:25:39.300 Zuhören. Die Folien wie gesagt habe ich abgelegt auf meinem auf meiner Homepage. 00:25:39.300 --> 00:25:43.231 Ihr könnt mich per E-Mail erreichen oder auch über Event Phone, wenn ich dann 00:25:43.231 --> 00:25:47.809 wieder zu Hause bin, könnte mich auch über Event Phone anrufen. Vielen Dank. 00:25:47.809 --> 00:25:53.429 Herald: Wunderbar. Wir sagen auch: Vielen Dank! Ich hoffe, es hat den 00:25:53.429 --> 00:25:57.590 Zuschauer*innen an den Endgeräten gefallen. Wir haben eins, eins, zwei, drei 00:25:57.590 --> 00:26:02.350 Fragen bekommen. Wir haben auch noch Zeit für eine kurze Q&A. Falls noch Fragen 00:26:02.350 --> 00:26:07.240 aufkommen, einfach in den IRC, da kommt es am besten zu uns durch. Genau, und zwar 00:26:07.240 --> 00:26:11.059 wurde gefragt, ob du es schon vorher mit einem einfachen physikalischen Modell 00:26:11.059 --> 00:26:15.290 versucht hast, das einfach nur den Wärmefluss oder den Energiefluss mit 00:26:15.290 --> 00:26:20.830 einbezieht und nicht ein komplettes neuronales Netzwerk mit 509 Parametern, 00:26:20.830 --> 00:26:25.700 oder bzw. 11 Parameter waren es glaub ich und 509 Einstellmöglichkeiten, oder? 00:26:25.700 --> 00:26:30.520 Jens: Das habe ich nicht probiert, weil mir relativ schnell klar wurde, dass es 00:26:30.520 --> 00:26:37.810 eben sehr viele verschiedene Kombinationen aus verschiedenen Dingen gibt. Also 00:26:37.810 --> 00:26:43.320 spielen eben so viele verschiedene Dinge eine Rolle, dass ich gesagt habe: Naja, da 00:26:43.320 --> 00:26:47.650 mache ich mir das Leben einfacher. Ich probiere es mit dem neuronalen Netzwerk, 00:26:47.650 --> 00:26:49.240 da muss ich mich nicht um die Details kümmern. 00:26:49.240 --> 00:26:56.210 Herald: Okay, genau die zweite Frage geht in eine ähnliche Richtung, nämlich das 00:26:56.210 --> 00:27:00.190 bzw. dass man das neuronale Netzwerk auch als modellfreien Ansatz charakterisieren 00:27:00.190 --> 00:27:05.770 könnte, weil da weniger Parameter und weniger Daten vonnöten würden. Hast du da 00:27:05.770 --> 00:27:11.880 mal drüber nachgedacht? Jens: Ne habe ich so noch nicht drüber 00:27:11.880 --> 00:27:14.929 nachgedacht. Herald: Okay. Genau, und es wurde noch 00:27:14.929 --> 00:27:18.060 gefragt, was für eine Wärmepumpe du benutzt hast, ob die Wärme aus der Luft 00:27:18.060 --> 00:27:22.111 oder aus dem Boden kommt, von dem, wie sie es angeordnet hat. Es kommt aber aus der 00:27:22.111 --> 00:27:24.111 Luft. Jens: Es ist eine Luft-Wasser-Wärmepumpe. 00:27:24.111 --> 00:27:28.680 Das heißt, die Wärmepumpe zieht die die Wärme aus der Luft raus. Auf der einen 00:27:28.680 --> 00:27:32.460 Seite saugt sie die Luft an, auf der anderen Seite pumpt sie die kalte, 00:27:32.460 --> 00:27:37.929 abgekühlte Luft wieder raus. Ja, natürlich könnte man die Effizienz steigern, indem 00:27:37.929 --> 00:27:43.480 man auf eine eine andere Art von Wärmepumpe, wie zum Beispiel mit einer 00:27:43.480 --> 00:27:49.160 Tiefbohrung die Energie aus dem aus dem Boden holen. Das würde wahrscheinlich die 00:27:49.160 --> 00:27:54.420 Effizienz und vor allen Dingen den Effizienz-Verlust bei tiefen Temperaturen, 00:27:54.420 --> 00:27:57.680 der wäre dann längst nicht so stark. Herald: Ich kann mir auch vorstellen, dass 00:27:57.680 --> 00:28:02.340 der Boden ja auch einen guten Puffer oder guten Zeitpuffer bietet. Besser als die 00:28:02.340 --> 00:28:04.760 Luft. Jens: Ja, und es gibt auch, es gibt 00:28:04.760 --> 00:28:10.400 inzwischen Wärmepumpen, wo man sich einen großen Wassertank in in, in den Boden 00:28:10.400 --> 00:28:15.190 einlässt und über den Winter macht man das zu Eis und im Sommer lässt man es langsam 00:28:15.190 --> 00:28:18.740 schmelzen. Herald: Auch sehr interessant. Es gab 00:28:18.740 --> 00:28:23.740 sogar noch Feedback über den IRC, dass der Talk sehr informativ war und es wird dir 00:28:23.740 --> 00:28:26.340 gedankt. Jens: Vielen Dank. 00:28:26.340 --> 00:28:29.310 Herald: Gut, wenn sonst jetzt noch nichts mehr hier eintrudelt... Ah, doch noch was. 00:28:29.310 --> 00:28:33.690 Und zwar ob es die Leser am Stromzähler auch mit WiFi und Akku gibt, dass sie 00:28:33.690 --> 00:28:37.920 nicht über eben diese Vier-Draht_Leitungen angeschlossen werden müssen. 00:28:37.920 --> 00:28:43.510 Jens: Die die am Stromzähler oder die am.. Herald: die Leser am Stromzähler, ja 00:28:43.510 --> 00:28:46.920 genau. Jens: Am Stromzähler habe ich noch keine 00:28:46.920 --> 00:28:53.490 gesehen. Das frage ich mich auch. Warum? Wir machen überall Smart Home, machen alle 00:28:53.490 --> 00:28:59.910 Lichtschalter per WLAN, aber ein Zähler, der auf den Zähler aufgesteckt wird und 00:28:59.910 --> 00:29:03.050 dann per WLAN einfach so überträgt, habe ich noch nirgendwo gefunden. 00:29:03.050 --> 00:29:08.440 Herald: Das wäre ja mal ein spannendes Bastelprojekt für die Community, ein WLAN- 00:29:08.440 --> 00:29:17.060 und Akku- Infrarotlesegerät für den Stromzähler. Es kommt noch eine Frage. 00:29:17.060 --> 00:29:22.510 Noch mal die gleiche Geschichte: Ein nettes kleines Modell mit gekoppelten 00:29:22.510 --> 00:29:26.870 Wärmespeicher als Differentialgleichung hätte sehr viel weniger Parameter und die 00:29:26.870 --> 00:29:29.790 Daten müssten nicht erst gemittelt werden. Ich glaube, du hast eine Hausaufgabe 00:29:29.790 --> 00:29:36.200 bekommen. Gut, mal schauen. Dann sehen wir vielleicht nächstes Jahr mit einem 00:29:36.200 --> 00:29:39.200 kleineren Modell. Jens: Mal gucken. Wenn ich wenn ich das in 00:29:39.200 --> 00:29:41.420 einem Jahr hinkriege, dann melde ich mich für nächstes Jahr. 00:29:41.420 --> 00:29:45.740 Herald: Gut. Genau dann würde ich sagen: Vielen Dank an alle Zuschauer*innen da 00:29:45.740 --> 00:29:50.910 draußen. Ich hoffe es hat euch gefallen. Auch nochmal vielen Dank an Jens und ich 00:29:50.910 --> 00:29:54.540 würde dir noch das letzte Wort lassen und dann sind wir soweit fertig. 00:29:54.540 --> 00:29:59.130 Jens: Ja, vielen Dank euch auch fürs Organisieren. Und dann bis demnächst. 00:29:59.130 --> 00:30:02.760 Tschüss! 00:30:02.760 --> 00:30:08.040 RC3-Abspann-Musik 00:30:08.040 --> 00:30:13.669 Untertitel erstellt von c3subtitles.de im Jahr 2022. Mach mit und hilf uns!