Energieerfassung

Aus Hobbyelektronik.org

Achtung: Dieser Artikel und das Projekt dahinter ist noch lange nicht fertig. Es kann sich also sowohl an dieser Dokumentation als auch am Projekt selbst noch einiges ändern.

Seit 2005 steht eine Grundwasserwärmepumpe zum Heizen von Brauchwasser und Räumen im Keller. Im Sommer danach kam eine Solaranlage dazu. Dadurch heizen wir vollständig mit regenerativen Energiequellen. Zugegebermaßen: nicht ganz. Der Strom für die Wärmepumpe stammt vermutlich hauptsächlich aus nicht-regenerativen Quellen.

Da vor allem bei der Solaranlage der Energieertrag bzw. die Heizleistung nicht sonderlich gut eingeschätzt werden kann, habe ich mir das Ziel gesetzt, das Verhalten der Anlage(n) etwas und, wie bereits in What's next? erwähnt, den Energieverbrauch bei uns im Haus etwas unter die Lupe zu nehmen.

Eckdaten

Das Herzstück der Angelegenheit wird ein leicht aufgewerteter AVR-Net-IO von Pollin. Dieser soll die Daten erfassen und zunächst live ins Netzwerk stellen.

Später soll er die gesammelten Daten alle paar Stunden per HTTP-Get, -Post oder auch per E-Mail an meinen Webserver schicken, der sie in eine relationale Datenbank speichert und für den User aufbereitet.

Erfasst werden soll:

  • Stromverbrauch des Haushalts
  • Stromverbrauch der Wärmepumpe (2 Tarife)
  • Freigabe- und Betriebszeiten der Wärmepumpe
  • Wasserverbrauch
  • Kesseltemperatur Brauchwasser (wie oft stand ich bibbernd in der Dusche)
  • Kenndaten der Solaranlage
  • Was sich sonst so ergibt

Datenerfassung

Stromzähler

Stromzähler mit aufgesetzter Erfassungseinheit

Zwar wurde hier kürzlich der Stromzähler gewechselt, leider ist es immer noch ein schnöder ohne Taktausgang oder blinkenden LED.

Das Ding, oder besser: die Dinger müssen also auf die altmodische Weise erfasst werden: Die Ferraris-Scheibe bzw. deren Markierung wird optisch gelesen.

Damit ich nicht die ganze Zeit im Keller stehen muss, habe ich mir für den Schaltungsentwurf einen Wechselstromzähler ausgeliehen.

Leider zeigte sich dieser von kleineren Verbrauchern gänzlich unbeeindruckt, die Scheibe bewegte sich keinen Millimeter. Da ich zum Entwickeln der Messschaltung nicht immer Kaffee oder Wasser kochen wollte, wurde die Scheibe auf eine etwas unethische bewegt: ein kleiner Elektromotor sorgt für die nötige Rotation.

Das war zwar laut wie die Hölle und hörte sich nach übelster Dorfdisco an, ließ den roten Strich dafür im Sekundentakt vorbeiflitzen.

Aufgrund des hohen Kontrasts des Strichs zur restlichen Scheibe wählte ich 'superhelle' grüne LEDs, die mit dem Standard-Fototransistor BPW40 erfasst werden soll. Prinzipiell keine schlechte Idee, doch die Fototranse ist auf das gelb-grün doch unempfindlicher als erwartet und das 'superhell' entpuppte sich ziemlich schnell als super Reinfall. Zum Glück lagen noch ein paar halbwegs helle IR-LEDs herum, die auch noch mit 1k-Vorwiderstand fast Löcher in die Kamera meines Handys brennen.

Der Kontrast ist trotz der ähnlichen "Farbe" erstaulich gut. Liegt wohl hauptsächlich daran, dass die rote Markierung deutlich matter als der Rest der Scheibe ist.

Bleibt noch die Frage, wie man die Ausleseeinheit am Zähler befestigt. Ein Holzrahmen wie bei Zabex‘ Lösung scheidet aus. Erstens unpraktisch zu bauen und anzubringen, zweitens inkompatibel zu den Eltern und den Stromablesern des E-Werks.

Klein soll's sein. Eine passende Kunststoffplatte ist schnell gefunden, aber wie befestigen? Am Zähler einhängen ist Mikado, schaut man das Ding einmal schief an oder verrutscht es ganz leicht, war's das mit der Zählerei. Festschrauben geht auch nicht - wo denn auch.

Also kleben - aber so, dass es rückstandsfrei ablösbar ist. Klebeband fällt weg, da es Klebereste hinterlässt und sowieso binnen Tagen abfällt. Epoxid oder jeder andere aushärtende Kleber hinterlässt auch bleibende Spuren und könnte als Manipulationsversuch gewertet werden.

Eine Banane, eisenreich und sehr bekömmlich (cc:by-sa Darkone)

Zum Glück[tm] ist die Werbeindustrie nicht an mir vorbei gegangen. Tesa hat diese ziemlich überteuerten, kaugummiartige Klebestreifen: Powerstrips. Diese sollen sich rückstandsfrei und schnell wieder entfernen lassen.

Erstaunlicherweise stimmt das sogar. Ein Versuch stellte unter Beweis, dass der Kauf eine gute Idee war. Der Plastestreifen hält bombig, lässt sich aber gleichzeitig spielend entfernen.

Zurück zur Technik: Da ich nicht den kompletten Zähler abdecke, hatte ich etwas Zweifel an der Umgebungslichtabhängigkeit - zumal der Fototransistor auch mit der IR-LED am Testzähler keine allzu überzeugende Flanke lieferte. Ein Hochpass im Millihertz-Bereich in Form eines quasi beliebigen Kondensators eliminiert alle längerfristigen Änderungen im Signal. Halbwegs langsame Helligkeitsänderungen wirkten sich gerade mal im Millivoltbereich aus. Auch das Anleuchten mit einer Taschenlampe brachte die Schaltung nicht aus dem Tritt.

Komisch war nur, dass, wenn der Zähler lief, eine leichte Wechselspannung im Signal war. Die Stromversorgung war es nicht, lt. Oszi astrein. Die Ursache: Die glänzende Scheibe ist mit schwarzen Strichen versehen, die von der Schaltung ebenfalls erfasst werden. Das hätte ich bei weitem nicht gedacht. (Ein spätere Test brachte die Gewissheit - unser Backofen beschleunigte das "Grundrauschen" um 7Hz). Zur Eliminierung des Ripples wurde nach dem Hochpass noch ein 100nF-Kondensator als Tiefpass eingesetzt, der zur Tilgung der Störung aber nicht vollständig ausreichte.

Die Leistungsaufnahme lässt sich anhand der Umlaufzeit wie folgt berechnen\[ P=\frac{1}{t}\frac{\textrm{rot}}{\textrm{s}}\cdot \frac{1}{75}\frac{\textrm{kWh}}{\textrm{rot}}\cdot 3600 \frac{\textrm{W}}{\textrm{h}}\cdot 1000\frac{\textrm{W}}{\textrm{kW}} = \frac{1}{t}\frac{\textrm{1}}{\textrm{s}}\cdot \frac{3600\cdot 1000}{75}\textrm{Ws} = \frac{1}{t}\frac{\textrm{1}}{\textrm{s}}\cdot 48000\textrm{Ws} \]

Setzt man die im Screenshot ermittelten 42.6 Sekunden ein, erhält man eine Leistung von ~1127 Watt. Da die Leistung mit der Zeit exponentiell abnimmt, ist bei hohen Leistungsaufnahmen eine relativ hohe Auflösung der Zeit erforderlich.

Da das Signal an dieser Stelle immer noch nicht Mundgerecht für den Mikrocontroller ist, soll es noch durch einen Operationsverstärker aufgearbeitet werden. Komischerweise läuft es bei mir mit OPs eigentlich immer auf einen Komparator hinaus, was aber ziemlich gut funktioniert. Hier der Stromlaufplan:

Links wird der Fototransistor in Sperrrichtung angeschlossen. Der 1µF-Elko und der nachfolgende 100k-Widerstand stellt einen Hochpass mit nicht näher definierter Grenzfrequenz (WolframAlpha sagt 1.592Hz) dar. Die Frequenz ist ist im Hinblick auf wpde:Hochpass:Ordnung, Bauteiletoleranzen und der Zielfrequenz vermutlich nicht einmal ein Richtwert. Der folgende Hochpass hat eine Grenzfrequenz von ca. 16Hz. Hier gilt das gleiche Vertrauen wie in den Tiefpass. Aber alles kein Problem: Die Werte sind weitestgehend unkritisch. Es sind Umläufe im Millihertz-Bereich (also Umlaufdauern in der Größenordnung Sekunden bis Minuten) zu erwarten.

Wären die beiden Stromzähler fast erschlagen. Fast, da einer der beiden zwei "Tachostände" hat. Die Wärmepumpe bekommt in der Nacht günstigeren Strom, dementsprechend soll auch der Zähler ausgewertet werden.

Tarifzähler, rechts das Fähnchen zum Anzeigen des Tarifs

Problem: die Anzeige besteht aus einem kleinen (2x5mm) Fähnchen, das sich je nach Tarif gerade mal um 5mm bewegt. Das wird schon 'ne Ecke schwieriger. Meine Ideen belaufen sich momentan auf Laserpointer oder einer Linse/Lochblende vor der LED. Da wird die Tarifumschaltung evtl. noch ein bisschen warten müssen.

Relais für die Stromfreigabe, mit LED

Einfacher ist hingegen die Erkennung der Stromfreigabe. Da die Wärmepumpe mit ca. 5kW Leistungsaufnahme ein doch recht großer Verbraucher ist, wird ihre Stromversorgung zu Spitzenzeiten (Mittags und Abends) unterbrochen. Da bei uns niemand so genau weiß, wann diese Zeiten sind, man aber sein Dusch- & Badeverhalten zumindest an sonnenarmen Tagen besser danach anpasst (sonst gibt’s eine regelrechte Erfrischung), landen die Schaltzeiten ebenfalls im Protokoll.

Wärmepumpe

Die Kenndaten der Wärmepumpe stehen nicht ohne Grund NICHT in der Liste.

Ich habe es über den Diagnose-Anschluss der Regelung zwar geschafft, dem Teil Messwerte zu entlocken, jetzt kommt das große aber: Man muss die Daten aktiv abfragen. Das wäre soweit nicht schlimm, hinderlich ist nur, dass:

  • der Hersteller (Danfoss) nichts zum Protokoll herausrückt
  • die Schnittstelle ewig langsam ist
  • es anscheinend keine Sicherheitsschichten im Protokoll gibt

Letzteres hört sich zwar harmlos an, ist in Verbindung mit dem relativ unbekannten Protokoll und der Tatsache, dass man Befehle zum Auslesen der Messwerte senden muss, richtig gefährlich.

Über die Diagnoseschnittstelle kann man den Regler deaktivieren und auf manuelle Steuerung gehen. Wenn man daneben steht und den Not-Aus drücken kann, ist das akzeptabel, mir ist der unbeobachtete Betrieb einer solchen Anordnung definitiv zu heiß.

Da verzichte ich lieber zugunsten des längerfristigen Familienfriedens.

Solaranlage

Hier wird es meiner Meinung interessant. Bei der Wärmepumpe kann man in etwa sagen, was an Wärme rein bzw. raus kommt, die Solaranlage hat da weitaus mehr Einflussgrößen. Ok, eigentlich nur die Sonneneinstrahlung, die ist dafür aber auch recht flexibel.

Wie im Artikel VBus-Decoder vorgestellt, habe ich eine Protokollschnittstelle zu Solar-Regelern von Resol geschrieben, zu denen auch unsere Viessmann-Regelung kompatibel ist. Zu Beginn war es eigentlich gedacht, den Decoder direkt auf dem Net-IO laufen zu lassen. Da es im Heizkeller (der örtlich getrennt zum Zählerkasten ist) noch ein paar weitere aufzeichnungswürdige Datenquellen gibt, wird sich dort auf lange Sicht ein zweiter Mikrocontroller einfinden. Der Grund: im Februar 2010 (siehe Blogeintrag) hatten wir einen massiven Druckabfall in der Solaranlage, was zum Komplettausfall derselben führte. Zwar wurde die Störung von der Steuerung vermutlich erkannt und gemeldet, aber was man nicht weiß, macht einen sprichwörtlich nicht heiß.

Deshalb soll hier später der Systemdruck und ggf. auch der Durchfluss auf Wärmemittelseite ermittelt werden. Theoretisch reicht das Messen nur eines Parameters, aber was, wenn das Manometer durch eine Verstopfung oder der Durchflussmesser durch ein Leck (eher unwahrscheinlich) einen falschen Wert liefert?

Der Durchflussmesser und das Manometer könnte zwar auch direkt an die Regelung der Solaranlage angeschlossen werden. Allerdings möchte ich an dieser Stelle nicht mit fremder Hardware experimentieren.

Was mit der Solarregelung lt. Resol-Support ohne Probleme geht, ist das anbringen weiterer Temperatursensoren. Diese werden, sofern nicht anders konfiguriert, von der Regelung ignoriert. Die gemessenen Werte werden aber trotzdem auf dem Display angezeigt und über den VBus übertragen, also perfekt für mein Vorhaben. Das Problem ist nur: Wie kommt man halbwegs günstig an die passenden Temperatursensoren? Beim lokalen Heizungsbauer war Stand 02/2010 nichts Gebrauchtes zu holen, was in Hinblick auf die Temperaturen auch verständlich ist: Wer erneuert im strengen Winter freiwillig seine Zentralheizung? Bei eBay gehen die Preise deutlich auseinander. Im August bin ich auf wirklich günstige PT1000 von einem österreichischen Händler gestoßen: 5 Stück für nicht mal 4 Euro. Im Brief (der nur 3 Tage später in der Post war) waren sage und schreibe 9 Sensoren!

TODO: Bild der Sensoren/Trägerplatine

Auf Trägerplatinen gelötet ging es siegessicher in den Keller. Nur leider ließen die beiden Sensoren die Regelung kalt. Statt auf das Datenblatt des fast baugleichen Resol-Pendanten zu vertrauen hätte ich lieber gemessen, mit welchen Sensoren ich zu tun habe: Das ist neben der fehlenden RS232-Schnittstelle anscheinend die zweite Viessmann-Extrawurst am Regler: keine PT1000.

Also müssen die Sensoren selber ausgelesen werden. Eigentlich kein Problem: Spannungsteiler, Messverstärker, ADC und gut. Laut Suchmaschine nicht ganz. Die gefundenen Schaltungen sehen deutlich aufwändiger aus, über einen Multiplexer direkt hinter dem Spannungsteiler (bzw. der Konstantstromquelle) möchte ich gar nicht nachdenken. Dann doch lieber I²C oder 1-Wire im Heizungskeller.

Günstigste Alternative: Vorerst nichts.

Update 10.10.2010:

Weasel (IRC) ist beim Anblick der Kennlinie der Temperatursensoren in der Anleitung des Vitosolic 200 blitzschnell darauf gekommen, dass es sich um PT500-Elemente handeln müssen, die jedoch nur für sehr teuer Geld erhältlich sind. Mein anfänglicher Scherz vonwegen 2 PT1000 parallel ergibt PT500 hat sich als gar nicht so dumm erwiesen: Idealerweise sind die Widerstände der Sensoren bei gleicher Temperatur ebenfalls gleich, Durch Parallelschaltung zweier PT1000 kann man sie problemlos an der PT1000 betreiben!

Da ich sonst nichts mit meinen 9 Sensoren anzufangen wusste, fristen jetzt 8 dieser als 4 Fühler im Keller ihr dasein: Zwei erfassen die Ein- und Auslasstemperatur an der "Primärseite" der Wärmepumpe, einer sitzt im Warmwasserspeicher in oberster Schicht und der 4. misst (da mir noch nichts besseres einfiel) die Raumtemperatur im Heizkeller, die mangels Isolierung der Rohre deutlich zu hoch ist.

Update-Ende

Was kommt rein?

Auf der Unterseite Energieerfassung/Solarleistung habe ich beschrieben, wie man anhand einiger Parameter die Leistung der Solaranlage berechnen kann

Wasserzähler

Zum Energiehaushalt gehört selbstverständlich auch der Wasserverbrauch. Da der zugehörige Zähler wieder einen Raum weiter und deutlich schlechter als die Stromzähler nachstellbar ist (und ich dadurch zwangsläufig längere Zeit im Holzkeller stehen müsste), habe ich mir über dessen Erfassung noch keine größeren Gedanken gemacht.

Allerdings hatte ich schon ein paar Grundgedanken zum Thema Wasser:

Wärme Extrem

Die Energie, die man in den Boiler mühevoll hineingesteckt hat, will man irgendwann auch wieder herausnehmen. Aber zu welchem Anteil geht sie wohin?

Nicht dass drei Stromzähler schon genug wären – wir verbrauchen die Wärme des Wassers auch auf drei Methoden: Brauchwasser, Wandheizung und in ein paar Räumen liegt zusätzlich eine Fußbodenheizung.

Neben dem Wasserverbrauch wäre es interessant, den Energiebedarf an Wärme genau zu ermitteln. Mit der Formel E=c*m*\deltaT kann man anhand der spezifischen Wärmekapazität (c), der Masse (m) und des Temperaturunterschieds (deltaT) die Energie berechnen. C ist mit 4.19 kJ/(kg*K) bekannt, der Temperaturunterschied kann einfach gemessen werden. Nur wie kommt man an die Masse? Einfacher als man denkt: Mit einem Wasserzähler kann man in Liter bzw. m³ die Menge berechnen, über die Dichte kommt man an die Masse.

Für die Bestimmung der Wärmemenge braucht man also fünf Dinge: Einen Wasserzähler, zwei Temperatursensoren, ein Rechenwerk und einen Installateur, der den Zähler anschließt.

Da ersteres mit digitalem Ausgang zusammen mit letzterem für wenig Geld nicht einfach aufzutreiben ist und meine Eltern dann wahrscheinlich Angst vor der totalen Überwachung bekommen, lasse ich es bei der Idee. Vorerst.

Hardware

Großhirn

In der ersten Ausbaustufe besteht die Hardware hauptsächlich aus einem etwas aufgewerteten AVR-NET-IO von Pollin. Zur Erweiterung wurde das AVR-NET-IO-Shield entwickelt und verwendet. Auf diesem befindet sich die Spannungsregelung (Schaltwandler), die den Stromverbrauch im gegenüber den Linearreglern am „Standard-NET-IO“ deutlich verringern.

Daneben trägt es die Auswerteschaltung für die beiden Stromzähler, die Anschlussmöglichkeit für ein Character-LCD, eine Halterung für Bedienelemente sowie einen Steckplatz für weitere Hardware. Dies war nötig, da ich mir noch keine Gedanken über die Auswertung der Tarife und der Stromfreigabe gemacht habe, aber die bereits vorhandenen Funktion (Stromzähler & Solaranlage) bereits zur Verfügung haben wollte.

Kleinhirn

Wie im Abschnitt Solaranlage beschrieben, soll im Heizkeller später ein weiterer Mikrocontroller sein Zuhause finden. Dies wird vermutlich erst nach der kompletten Fertigstellung des Großhirns erfolgen.

Software

Die Software kann man im Groben in drei Teile untergliedern. Auf der einen Seite die Firmware(s) der Hardware für die Energieerfassung, dann die Software auf dem Webserver und der Clientsoftware.

Die Dreierteilung habe ich gewählt, da es am günstigsten und wahrscheinlich auch am effektivsten ist. Speicher auf dem AVR-NET-IO ist knapp und somit wertvoll. Gleichzeitig ist es für meinen Webhoster ok, dass ein „Robot“ alle paar Stunden auf den Webspace zugreift.

Da der Webserver sowieso 24/7 läuft und sich mit hobbyelektronik.org langweilt, verhält es sich Kosten- und Energieneutraler, wenn er die Datenhaltung übernimmt, anstatt dass ich zuhause einen PC-Server vorhalte (der dann auch die Erfassung der Daten übernehmen könnte). Da das herumliegende Notebook im Idle 20W und das „Großhirn“ lediglich 1,2W benötigt, war die Entscheidung einfach.

Großhirn

Die Firmware des umgebauten NET-IO basiert auf ETH_M32_EX von Ulrich Radig. Zunächst wurde der Code auf das Pollin-Board angepasst.

Display

Da das LC-Display den aktuellen Zustand der Anlage anzeigen soll und der mitgelieferte Quelltext nicht zuverlässig funktionierte, habe ich die LCD-Bibliothek von Peter Fleury übernommen und für die Anwendung erweitert.

Da das 4x16-Character-Display etwas wenig Platz für Infos bietet, sind mehrere Ansichten implementiert, die u. a. Details zu den Stromzählern, der Solaranlage oder Debuginformationen anzeigt.

Energie-Zähler

Für die Messung des Strom- und Wasserbedarfs werden zwei Timer verwendet. Der 8-Bit-Timer im AVR übernimmt das Sampling der Eingänge, die mit ca. 60Hz abgefragt werden. Um Störungen zu unterdrücken, werden die Messwerte durch eine 8-Bit-Variable geschoben. Sind die ersten 4 Bit 0 und die restlichen 1, wird dies als Umlauf gewertet.

Optimaler wäre hier, den Hamming-Abstand zwischen den eingelesenen Daten und dem Bitmuster 00001111b zu ermitteln und den Umlauf beim Abstand 1-2 zu werten. Dadurch können weitere unbeabsichtigte Fehlmessungen unterdrückt werden.

Der zweite Timer, der als allgemeiner Zeitgeber verwendet wird, soll auch die Umlaufzeiten der Stromzähler messen. Da die Auflösung von einer Sekunde gerade bei hohen Stromaufnahmen zu sehr ungenauen Werten führt, habe ich den Intervall auf 0.1 Sekunden erhöht. Damit der Tag nicht in nur knapp zweieinhalb Stunden dauert, verringert ein Software-Prescaler die Ticks um den Faktor 10.

Solaranlage

Die Solaranlage wird über den VBus-Decoder erfasst. Um immer gültige Datensätze zu haben, gibt es zwei Variablen zur Datenhaltung: Das temporäre Struct wird fortwährend vom Decoder gefüllt. Sind gültige Daten vorhanden, werden die Werte mit memcpy übertragen.

Bereitstellung der Daten

Exemplarischer JSON-Datensatz

Um den Verlauf des Energiebedarfs zu verfolgen, werden die Messwerte auch historisch gespeichert. Im internen RAM des AVRs passen insgesamt 15 Datensätze. Um ein ausgewogenes Verhältnis zwischen Speicherdauer, historischer Genauigkeit und dem Speicherplatzbedarf in der Datenbank zu halten, habe ich ein Zeitraster von 15 Minuten gewählt. Dadurch können Daten von 3.5 Stunden vorgehalten werden. Der aktuellste Datensatz ist aufgrund der laufenden Erfassung immer ungültig und ist damit außen vor.

Zum Datenaustausch habe ich das schlanke JSON-Format gewählt. Im Gegensatz zu XML hat es nur wenig Overhead und kann mit JavaScript extrem schnell verarbeitet werden (da es im Prinzip JavaScript ist). Zum Umwandeln habe ich ein paar einfache Funktionen geschrieben, um Texte und Variablen in den Ausgabepuffer des Stacks zu schreiben. Der JSON-Datenstrom wird mit einfachen Zeichenverkettungen erzeugt. Das ist zwar nicht unbedingt übersichtlich, dafür aber halbwegs performant und platzsparend.

Auf diese Weise werden zwei „Dateien“ bereitgestellt: current.json und history.json. Erstere enthält aktuelle Messdaten, wogegen history.json die letzten 15 erfassten Datensätze enthält.

Der Einfachheit halber werden die Daten direkt per HTTP bereitgestellt. Dadurch können sie direkt vom Webbrowser oder vom Webserver abgerufen werden.

Server-Software

Da bei Hetzner (und den meisten anderen Anbietern) CronJobs nicht inklusive sind, müssen die Daten vom NET-IO zum Webspace übertragen werden. Leider ist es mit dem verwendeten Netzwerkstack etwas umständlich, HTTP-Requests mit Daten im Schlepptau abzusetzen. Deshalb wird das Pferd von hinten aufgezäumt: Der AVR-NET-IO sendet eine leere HTTP-Anfrage an den Webserver. Hinter dem aufgerufenen URL befindet sich ein Script, das dann die history.json vom „Großhirn“ lädt, verarbeitet und in die Datenbank schreibt.

Gleichzeitig prüft das Script, ob aus den Daten Probleme in der Anlage ersichtlich sind und meldet diese per E-Mail an uns. (noch nicht implementiert)

Weiter befindet sich auf dem Server (noch k)ein Script zur Auswertung und Bereitstellung der historischen Daten, das vom Client ausgelesen und präsentiert wird.

Client

Der Client ist keine Software, die lokal auf dem Computer installiert wird. Es handelt sich streng genommen um eine Internetseite. Da sie jedoch durch JavaScript wesentlich mehr Intelligenz als „normale“ HTML-Dokument enthält, spreche ich hier gerne vom Client.

Dieser existiert (aus Ermangelung der vollständigen Serversoftware) momentan nur in einer Live-Version, die die aktuellen Messwerte sowie die historischen Daten direkt aus dem „Großhirn“ anzeigt und nicht weiter auswertet.

Downloads

Aktuelle Firmware, EAGLE-Dateien des Shields (ohne V-Bus-Pegelwandler):

Datei:Energieerfassung Firmware.zip

Nerviges/Todo

  • Die interne Uhr hat eine sehr hohe Gangabweichung. Macht sich trotz kurzer NTP-Refresh-Intervallen bemerkbar
  • Der Speicher für die historischen Daten ist sehr klein. Bei Ausfall der Internetverbindung/Server/Cronjob gibt es zu schnell Lücken
  • Erfassung des Wasserzählers
  • Erfassung Außentemperatur

Trivia

Fehler & Probleme

Sind wir ehrlich: ein Nagel in der Wand ist ein Nagel in der Wand und kein Projekt ;)

Warum ich das schreibe: ein Nagel ist schnell paar Zentimeter in den Putz geklopft, bei einem Projekt kann wesentlich mehr schiefgehen als abgeplatzter oder eingedellter Putz:

  • Zu blöd für den Schaltungsaufbau: „Eine Schlange würde…“
  • Großer Knoten im Hirn wegen der Erzeugung/Bereitstellung der JSON-Datan
  • Fehlerhaftes Package des LCDs am Großhirn
  • Kurzschluss der Stromzähler-LEDs am Großhirn (Pads der LEDs zu groß und Widerstände gegen GND geschaltet)
  • Die PT1000-Temperaturfühler funktionieren zwar an RESOL-Regelungen und nicht an denen von Viessmann
  • LM358 ungleich LM358: Plötzlich habe ich keine Daten mehr von der Solaranlage empfangen – jetzt zumindest Cat5 im Heizkeller
  • Alte LCD-Lib im Großhirn-Projekt gelassen, es einen halben Nachmittag nicht gemerkt und gewundert, warum die Änderungen auf dem AVR nicht ankommen

Weblinks/Siehe auch