Stromzählerwerte angepasst

Wie zu erwarten war, gab es noch ein paar Dinge, die sich einspielen mussten. Konsequent in UTC zu arbeiten und erst am Ende auf Localtime umzustellen ist schon ganz gut, R kommt damit auch super klar.

Was ich auch gemerkt habe: der Stromverbrauch eines Tages ist ja total simpel an der Dateigrösse des CSV für den Tag abzulesen — eine Zeile pro Wh. Nur die zeitliche Verteilung am Tag ist ja schon noch wichtig.

Auch schlau: wenn man schon Blink-Timestamps des Stromzählers in Millisekunden loggt, sollte man die Millisekunden nicht bei der Weiterbearbeitung wegwerfen, sonst kriegt man ja wieder diskrete Werte und Sprünge in der Leistungskurve.

Der Fototransistor wurde nochmal neu verkabelt, nachdem die professionelle Lösung vom letzten Mal nicht ganz so robust war wie gedacht. Hab’s zum Glück heute morgen gemerkt, dass meine Kontroll-LED am Raspi nicht mehr so blinkte wie die am Stromzähler.

An den Grafiken hab ich auch noch weiter herumgebastelt, und der Code ist jetzt so aufgeräumt und dokumentiert, dass das Github-Repo https://github.com/datacyclist/measurements mal public ist 🙂 Ich mach’s ja nicht für andere, ich mach das für mich selbst in zwei Jahren oder so. Und ja, das Google-Sheet ist momentan noch public lesbar, d.h. jeder kann meine manuell aufgeschriebenen Verbrauchswerte abholen.

Die Leistungskurve von gestern sieht für mich als Bewohner plausibel aus. Bei den kurzen Dellen/Hügeln von 0-5 Uhr hatte ich mich zuerst gewundert, aber dann fiel mir ein, dass das der Kühlschrank sein muss. Regelmässige Peaks bis knapp unter 2kW kommen vom Quooker, morgens gegen 07:30 Uhr lief die Kaffeemaschine, ab etwa 14:30 auch, abends ab etwa 20 Uhr sind es HiFi/Beamer etc. bis etwa 22:30, ein langes Plateau.

Wenn das jetzt eine Weile stabil läuft, werde ich parallel manuelle Ablesungen machen und die automatischen Werte dazu berechnen und vergleichen. Irgendwann gibt’s dann nur noch 1x im Monat die manuelle Ablesung. Auf die Kameras für Gas- und Wasserzähler warte ich noch. Es scheint auch die Möglichkeit zu geben, das Magnetfeld der rotierenden Zählerscheiben auszuwerten, anders machen es die montierten Smartmeter-Aufsätze ja auch nicht, nur dass ich da eben nicht dran komme und mit weniger Signalstärke leben müsste.

Github mit SSH-Keys ist schick 😀

Elektrischer Datendurchstich

Nach monatelanger Bastelarbeit ist jetzt der erste Teil des Smartmeter-Datenabgriffs in Produktion gegangen. Aber von vorne…

Ich habe im Keller bereits Smartmeter für Gas/Wasser/Strom, was aber eigentlich nur bedeutet, dass mein Netzbetreiber (TB Wil) an diese Daten rankommt, ich aber nicht. Die Daten gehen von Gas/Wasser via diverse Encoder-Geräte und M-Bus in den Stromzähler, von dort inklusive der Stromzählerdaten an den Netzbetreiber. Wie häufig? Keine Ahnung. Es kam ein offizielles Schreiben, dass die Lösung der TB Wil zum Bezug der eigenen (!) Daten nicht mehr bereitgestellt würde, weil der externe Dienstleister das Adobe-Flash-basierte Tool abstellt. Haha. Einmal mit Profis arbeiten*. Vielleicht gibt’s im Sommer was Neues.

(*im Bereich Strom, Wasser, Gas und insbesondere Glasfaser sind die TB Wil natürlich Profis, nur Daten sind halt nicht ihr Kerngeschäft 🙂 )

Bis dahin muss aber eine andere Lösung her. Die bisherige besteht darin, jeden Morgen in den Keller zu steigen (vorher Schnee schaufeln) und die drei Zählerwerte abzulesen. Damit hab ich auch erst Ende Dezember angefangen. Das hat etliche Nachteile, ist aber schon besser als nur einmal im Quartal die Werte auf der Rechnung zu bekommen. Dann kann man nämlich schon solche Sachen wie das hier machen:

In den letzten Tagen hatte ich die Heizung schon komplett abgestellt. Das gibt zwar morgens dann frische 15°C überall im Haus, aber bis ich von der Velorunde wieder daheim bin, hat die Sonne (Südseite) die relevanten Zimmer aufgewärmt. Man kann dann natürlich auch nicht nur die Mengen ausrechnen, sondern auch die Kosten, was eigentlich noch interessanter ist:

Die Kosten teilen sich in Grundkosten (pro Monat, eine Art Zählergebühr) und variable/verbrauchsabhängige Kosten auf. Bei Strom gibt’s Hochtarif und Niedertarif plus eine nicht unwichtige Netzkomponente. Was man sieht: das Abstellen der Heizung spart so etwa 2 Fr. Gas am Tag. Wasser ist preislich eher vernachlässigbar, Strom relativ konstant bei 6-7kWh am Tag.

Wer gern in Monaten denkt, auch das noch:

Februar ist noch nicht fertig. Die Heizungsisolation hab ich Anfang Januar gemacht, daher hab ich kaum Vergleichswerte zu vorher. Üblicherweise hat aber der November bei Heizkostenabrechnungen etwa denselben Kostenanteil wie der Februar, wenn man Mietverträge anschaut. Dann ist aber noch zu berücksichtigen, dass ich erst am 09.11. einzogen bin, d.h. der November hat etwa 85 Fr. Gas in 20 Tagen gekostet, der Februar 55 Fr. in 24 Tagen, d.h die Heizkosten sind von 4.25 Fr./Tag auf 2.29 Fr./Tag gesunken — viele andere Faktoren wie z.B. Aussentemperaturen spielen da hinein, aber die Richtung stimmt.

Aber jetzt bin ich ja tendenziell faul und möchte die Zählerablesung automatisieren. An die echten Daten komme ich noch nicht ran, also gibt’s für die Gas-/Wasserzähler Kamera mit Bilderkennung (bestellt, noch nicht da) und für den Stromzähler kann ich die vorhandene blinkende LED nehmen, die 1 Impuls pro Wh ausgibt. Die muss man nur auslesen.

Mit dem passenden Fototransistor, bei mir jetzt ein LPT80A, geht das gut (mit dem BPW17N auf dem Bild geht’s nicht, LPT80A hab ich noch vier Stück da). Bei Interesse hier eine lange Liste von Transistoren, die Wellenlänge muss natürlich passen zu einer roten LED, und auch die Blinkdauer ist ziemlich kurz. Das Ganze wird professionell (TM) verdrahtet und verklebt und sieht dann so aus:

Die Daten laufen wie üblich in einen der Raspberrys hinein — ich muss ja praktischerweise nur einen Timestamp loggen, nichts weiter. Was mir aber anfangs nicht gefallen hat, waren die sehr diskret aussehenden Leistungswerte (letzte Spalte) — was aber logisch ist, wenn man nur sekundengenau loggt und nicht millisekundengenau. Da gibt’s dann oben nur Stufen von 1200, 1800 oder 3600W bei der errechneten Leistung. Tadaa, wenn man ein .%f mit reinschreibt in den format-String, gibt’s Millisekunden und das sieht doch viel (un)runder aus in der letzten Spalte rechts unten.

Das kann man jetzt wiederum in Dateien schreiben und auswerten, zum Beispiel erstmal alles in einer Grafik verwursten:

Am Anfang sieht man noch wunderschön die diskreten Leistungswerte. Gegen 14 Uhr hab ich den Raspi von UTC auf Localtime umgestellt, da fehlt eine Stunde 🙂 Die regelmässigen Peaks sind die kurzen Nachheizzeiten des Quookers.

Scripts sind diesmal auch im Github: https://github.com/datacyclist/measurements (private repo)

Und natürlich wurde der Keller noch mit LAN verkabelt. Kabel und Dosen waren eh da, Platz fürs Kabel vom Wohnzimmer in den Keller auch, nachdem das jetzt überflüssige Koaxkabel raus war. Einfach nicht die Glasfaser dabei kaputtmachen 🙂