Drucken
Hausautomatisierung & Smart Home
Zugriffe: 15353

Eigentlich hatte ich vor meine Heizung zu modernisieren. Um jedoch herauszufinden wie der aktuelle Verbrauch, mögliche Einsparungen etc. sein könnten, muss man natürlich erst mal wissen: Wie viel verbrauche ich denn eigentlich jetzt ?

jetzt mussten Verbrauchsmessgeräte her und zwar für elektrische Energie, kaltes und warmes Wasser sowie Gas. Nun da mir die Elektronik und Elektrik näher liegt habe ich mit der Erfassung des Stromverbrauchs angefangen.

Erste Recherche im Internet ergab, es gibt zwar einzelne Versuche mittels Reflexlichtschranken Zähler abzulesen, aber die taugten nach Meinung vieler im Web eigentlich nichts. Aus diesem Grunde habe

ich eine eigene Schaltung und Verfahren entwickelt was das ermöglichen sollte. Vorweg, es klappt einwandfrei.

Ich hatte zwar kurzzeitig den Gedanken einen elektronischen Zähler quasi hinter den offiziellen Zähler zu schalten, aber das gleich wieder verworfen. Warum ? Nun, die elektrischen Zähler verbrauchen selbst auch wieder ein paar 10 Watt, die ich natürlich auch selbst bezahlen muss; und das sah ich irgendwie nicht ein - vom Preis ganz zu schweigen (200-300 Euro).

Also muss ein Sensor her der die Umdrehungen des Zählerrads erfasst, also zählt und damit den Stromverbrauch misst. Und das ohne den Zähler zu manipulieren, zu ändern und gleichzeitig auch einem Ableser noch das Ablesen des Zählerstands zu ermöglichen. Ich hatte mir zwar die üblichen Sensoren von Vishay CNY70 angesehen und ausprobiert, doch leider fokussieren die nur auf einen festen Abstand. Soll heißen - funktionierte nicht und wenn - nur sehr unzuverlässig.

Also hatte ich mich für diskrete IR Sende-Dioden und Fotodioden entschieden (SHF309FA sowie SFH409, oder die Alternativtypen), wobei die Sendedioden einen sehr breiten Austrittswinkel haben sollten, wegen der Größe der beleuchteten Fläche. Auch sollten die IR-Empfindlichkeitskurven zueinander passen.

Die Schaltung enthält einen richtigen(!) Diskriminator vom Typ LM311D. Die drei Trimmpotis - von denen nur eins bestückt wird - waren nur wegen der unterschiedlichen Bauformen vorgesehen. Mit einem Zehngang-Trimmer kann man recht gut die Schaltschwelle einstellen, am besten geht das natürlich mit einem Oszilloskop oder Multimeter um die Spannungsänderungen am Eingang bei Auftreten eines Impuls zu messen.

Der Ausgang des Operationsverstärkers liefert ein schönes Rechtecksignal bei jeder Umdrehung des Zählrades. Der Transistor und die LED dienen nur der optischen Kontrolle bei der Justierung und ob es überhaupt noch funktioniert. Zum Test einfach das Poti durchdrehen und sehen wann denn die LED angeht , dann ein bischen zurückdrehen bis sie wieder ausgeht. Das ist der optimale Schaltpegel.

Die Sendediode kann über einen Transistor separat ein und ausgeschaltet werden, um die Schaltung möglichst stromsparend aufzubauen. Dieser Schalteingang wird später von einem Mikrocontroller alle 250ms kurz eingeschaltet um zu sehen "ob denn gerade wohl die rote Markierung vorbeikommt".

Das Ganze findet auf einer eigenen Leiterplatte Platz die nur von der Lötseite bestückt wird. Mit der (freien) Bestückungsseite wird die Platine einfach mit Klebeband passend auf die Glasscheibe des Zählers geklebt. Ja - der Ableser war auch da und fand das ganze recht originell.

Hier noch ein paar Fotos wie die Sensorplatinen an den verschiedenen Messgeräten befestigt ist.

Man sieht auch sehr schön die Montage der Sende- und Empfangsdioden beim Elektrozähler. Die schauen durch ein Loch in der Platine auf die Drehscheibe.

Das Board wird über einen einreihigen Pfostensteckverbinder angeschlossen und mit einem dem eigentlichen Verbrauchsdaten-Interface-Board verbunden. Dies erfasst dann auch gleich die Daten der anderen "Verbrauchsgüter". Dazu später mehr.

Zur Erfassung des Wasserverbrauchs habe ich zwei Wasserzähler mit Impulsausgang von Elster nachträglich jeweils in die Warmwasser und Kaltwasserleitung eingebaut. Diese Zähler gibts ab etwa 45 Euro. Die Zähler haben eine Auflösung von 1 Liter, d.h. je Liter geben die einen Schaltimpuls ab (also Reedkotakt mit zwei potentialfreien Signalen). Dies ist ausreichend für die grobe Erfassung des Wasserverbrauchs. Man sieht noch zwei zusätzliche Kugelhahnventile vor und hinter der Uhr damit ich die auch einfach tauschen kann wenns notwendig wird.

Beim Gaszähler ist es zumeist einfacher. Wer einen neueren Gaszähler der Frma Kromschröder hat, kann sich vom Werkskundendienst einen Reedkontakt zum nachrüsten beschaffen. Dieser wird in eine Mulde an der Unterseite eingesetzt. Auch dieser liefert je 0.01 Kubikmeter einen Schaltimpuls. Achtung einfache Reedkontakte scheinen nicht zuverlässig zu funktionieren, da die Position doch recht kritisch ist. Auch ist durch den vorgesehenen Reedkontakt keinerlei Eingriff am Zähler erforderlich, und es ist ein Orginalteil, keine Bastellösung. Kostenpunkt ca. 25 Euro.

Verbrauchszähler Interface

Jetzt gibts also 4 digitale Signale für die einzelnen Verbrauche die je Einheit einen Impuls erzeugen. Zur Auswertung der Impulse und auch zur unabhängigen Zählung habe ich eine kleine Mikrocontroller-Platine entwickelt die die Impulse zählt, zwischenspeichert und per USB insgesamt oder jeweils auf Anfrage ausgibt. Der USB-Anschluss war erforderlich, weil ich den Controller an einen zentralen Linux Steuerrechner anschließen wollte. Dieser kann jederzeit den aktuellen Gesamtzählerstand oder den Stand seit letztem "Nachfragen" abfragen.

Das Bild oben zeigt die Platine mit den Sensoranschlüssen auf der linken Seite und dem USB Mini Anschluss auf der rechten Seite. Die Bestückungsseite ist leer bis auf die Buchsen, so spart man sich eine zweiseitige Platine. Oben links sieht man die 4 SMD Leuchtdioden, die für jede Verbrauchsart bei jedem Impuls einmal aufblinken. Dies dient als Funktionskontrolle beim Anschluss.

Verwendet wird ein Atmel Microcontroller ATMEGA 644 (AU) sowie ein USB UART Chip von FTDI. Programmiert ist die Firmware in C mit Eclipse und den WinAVR Bibliotheken. Parametrieren - also Einstellen von Einheit pro Impuls etc. - kann man den Controller einfach mit Hyperterminal über ein kleines Text-Menü, so braucht man nicht immer ein Programmiergerät. Alle 60 Minuten werden die aktuellen Verbrauchswerte im Eprom abgelegt, das sind ca. 85000 Epromzugriffe in 10 Jahren, um auch nach Stromausfall die Verbrauchswerte nicht zu verlieren.

Ist aber mittlerweile egal, da ich sowieso nur die "delta" Impulse und damit den Verbrauch seit letzter Anfrage benötige. Der Rest ist ja dann in der MYSQL-Datenbank.

MYSQL Verbrauch mitschreiben...

Der Verbrauch wird alle 5 Minuten in Form von Integralwerten/Zeiteinheit in eine MySQL-Datenbank geschrieben.

Die Datenbank kann man per phpmyadmin oder über die Kommandozeile und mysql> wie folgt anlegen:

CREATE DATABASE `usage`;
CREATE TABLE `raw_counts` (`gs` int( 11 ) NOT NULL ,
`hw` int( 11 ) NOT NULL ,
`cw` int( 11 ) NOT NULL ,
`ee` int( 11 ) NOT NULL ,
`eef` double NOT NULL ,
`time` datetime NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = latin1;

am besten auf der Linux Kommandozeile mysql -uroot -p eingeben und die obigen Queries enfach mit copy & paste einfügen.

Wenn die Datenbank angelegt ist kann mit einem kleinen Pythonprogramm alle 5 Minuten der Verbrauch dort mitgeloggt werden. Das Python Script ist recht einfach aufgebaut. Über die serielle Schnittstelle wird der AVR Controller abgefragt und die Werte dann in die Datenbank geschrieben. Das Programm öffnet hierzu ein USB-Device und sendet ein CR. Als Antwort sendet der Controller die aktuellen Zählersummen, sowie die aufgelaufene Verbrauchsmenge seit letzter Anfrage. Das kleine Pythonprogramm wird per CRON-Job zyklisch aufgerufen.

Hier ist das Programm zum Download:

Zur Anzeige dient eine Webseite die den aktuellen Verbrauch über einen Zeitraum von etwas über einer Woche entsprechend grafisch darstellt.

Ich kann jetzt genau sagen wann denn gebügelt wurde oder die Spülmaschine lief. Jetzt bekommt man zum ersten Mal ein Gefühl für die Verbrauchsgewohnheiten, dennoch lohnt sich die Anschaffung eines separaten Verbrauchsmessers um Stromfresser aufzuspüren. Bei meinem Test der diversen Verbraucher hatte dabei eine Kaffeemaschine von De Longhi mit Zeitschaltuhr den Vogel abgeschossen. Sie hatte ganze 27W Dauerleistungsaufnahme - wenn sie ausgeschaltet war wohlgemerkt. Damit kann man fast 2 * 15W Energiesparlampen oder 5 LED Glühlampen den ganzen Tag leuchten lassen.

Die Grafik habe ich übrigens mit jpgraph erstellt, was auch recht einfach ist. Es gibt jede Menge Beispiele auf der Website wie man solche Grafiken erzeugt. Neuere Plots erstelle ich jedoch mit dygraphs.

Hier jetzt noch die Schaltpläne und das PCB-Layout für die Elektronik der Pulseerfassung. Orginal Eagle Files auf Anfrage: