Der EnergyCounter basiert auf dem bewährten Adafruit HUZZAH ESP8266 Modul und beinhaltet einen schnellen RISC-Prozessor und einen WLAN-Chip. Es werden fünf der GPIO-Pins für die Erfassung von S0-Zählerimpulsen verwendet. Jeder Eingang erhält einen Tiefpassfilter, um mechanische Impulsgeber (Reedkontakte, Durchflussmesser) zu entprellen. Jede Level-Änderung an den Eingängen löst im Prozessor einen eigenen Interrupt aus, welcher die zugehörige Zählervariable im ESP8266 erhöht. Zu regelmässigen Zeitpunkten werden die aufsummierten Impulse an OpenHAB per WLAN übertragen.

 

Schaltplan

Schaltplan EnergyCounter

Der Steckverbinder K4 dient der Zuführung der Versorgungsspannung aus einem externen Gleichspannungs-Steckernetzteil 5V. Alternativ kann auch ein 12V-Netzteil verwendet werden, dies führt jedoch zu höheren Energieverlusten. Die Kondensatoren C2 und C14 stabilisieren die Versorgungsspannung. Auf dem ESP8266-Breakout ist ein Spannungsregler untergebracht, welcher aus der Eingangsspannung geregelte 3,3V erzeugt, welche für die Peripherie mitverwendet wird. Dort stabilisieren C12 und C3 die 3.3V zusätzlich. Um den EnergieCounter steuern zu können, wird der Taster S6 verwendet. Dieser besteht aus einem Spannungsteiler, um die 3,3V auf die für den Analogeingang 'A' benötigten 1,0V zu reduzieren. Auf Grund der Pin-Knappheit wird der Analogeingang des ESP8266 zur Erkennung des Tastendrucks eingesetzt. Dieser Taster ist unbedingt erforderlich.

Der GPIO-Pin #2 wird an einen dreipoligen Steckverbinder K5 geführt, welche den Anschluß externer Temperatursensoren DS18B20 erlaubt. Diese Schaltung wird beim EnergyCounter nicht verwendet, wird aber für das baugleiche SolarTherm-Modul benötigt, um Temperaturen zu erfassen. Die Platine wurde so entwickelt, dass sie für mehrere Module eingesetzt werden kann.

Die Eingänge bestehen aus einem Pullup-Widerstand R3 mit 1,2kOhm, um die S0-Ausgänge der Zähler zu versorgen. R4 (18kOhm) und C16 (100nF Keramik) bilden einen Tiefpass, welcher Prellimpulse bis 20msec unterdrückt. Fehlte dieses Glied, würden bei jedem S0-Impuls mehrere Interrupts ausgelöst und Fehlzählungen wären die Folge. Die Taster S1 bis S5 müssen nicht bestückt werden, sind aber bei der Softwareentwicklung und Fehlersuche sehr hilfreich, um S0-Impulse zu simulieren. Alle fünf Eingangskanäle sind identisch aufgebaut (siehe Schaltplan für die Bauteilnummern). An einem 10-poligen Steckverbinder K3 sind die fünf Kanäle mit jeweils Ground herausgeführt. Die Zähler können damit mit zwei Drähten einfach angeschlossen werden. Bei elektronischen Open Collector Ausgängen ist auf die Polung zu achten, bei Reedkontakten spielt dies keine Rolle.

Die PSK-Steckverbinder sind preiswert und verpolungssicher. Durch Abstecken der drei Steckverbinder vom EnergyCounter kann dieser sehr schnell ausgetauscht werden. Die in früheren Versionen verwendeten Schraubklemmen waren wesentlich wartungsintensiver (man musste nach dem Modultausch jedesmal alle Drähte neu verkabeln) und auch teurer.

Es empfiehlt sich, den IC1 ESP8266 über zwei Sockelstreifen auf die Platine zu stecken und nicht direkt einzulöten, damit ein Austausch schneller erfolgen kann.

 

Stückliste

Für den EnergyCounter werden nachfolgende Bauteile benötigt (Stand Okt. 2015):

Pos. Stück Bauteil E-Preis G-Preis Lieferant
LP1 1 Leiterplatte EnergyCounter/Streifenlochraster      
IC1 1 Adafruit Huzzah ESP8266 Breakout 10,95€ 10,95€ EXP-Tech
IC1 2 Sockelstreifen je 10-polig, 5mm hoch, RM2,54 0,60€ 1,20€ Reichelt
IC1 1 36pol. Stiftleiste, gewinkelt, RM 2,54 0,32€ 0,32€ Reichelt
C1 1 Elko 100uF/25V/RM2,54 0,04€ 0,04€ Reichelt 
C5 1 Elko 22uF/63V/RM2,54 0,04€ 0,04€ Reichelt
C2, C3, C4, C6, C7, C8, C9 7 Keramikkondensator 100nF/RM2,54 0.05€ 0,35€ Reichelt
R1, R3, R8, R9, R13 5 Widerstand Metallfilm 1,2K/1%/0,25W 0,08€ 0,40€ Reichelt
R7 1 Widerstand Metallfilm 3,3K/1%/0,25W 0,08€ 0,08€ Reichelt
R5 1 Widerstand Metallfilm 8,2K/1%/0,25W 0,08€ 0,08€ Reichelt
R2, R4, R10, R11, R12 5 Widerstand Metallfilm 18,0K/1%/0,25W 0,08€ 0,40€ Reichelt
K2 1 PSS254/2W, 2-polig, gewinkelt 0,05€ 0,05€ Reichelt
K1 1 PSS254/3W, 3-polig, gewinkelt 0,05€ 0,05€ Reichelt
K3 1 PSS254/10W, 10-polig, gewinkelt 0,09€ 0,09€ Reichelt
K2 1 PSK254/2W 2-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K1 1 PSK254/3W 3-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K3 1 PSK254/10W 10-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K1, K2, K3 20 PSK-Crimpkontakte 0,27€ 0,27€ Reichelt
S1, S2, S3, S4, S5, S6 6 Drucktaster (Schließer), 4-polig 0,17€ 1,02€ Conrad
  1 Steckernetzteil 5V 2,95€ 2,95€ Pollin
G1 1 Sensorengehäuse PP42WS 2,14€ 2,14€ Darusius
    Summe:   20,58€  

Wenn Ihr keine eigene Platine erstellen wollt, nehmt eine Streifen-Lochrasterplatine. Damit kann man die Schaltung auch aufbauen.

 

Aufgebaute Platine

Die Platine ist eingetroffen und wurde bestückt:

EnergyCounter

Der Gehäusedeckel wurde ausgefräst, um Platz für die Steckverbinder zu schaffen:

EnergyCounter

Im geschlossenen Zustand hat man jetzt ein hübsches , kleines Gerät:

EnergyCounter 

 

Test und Ergebnisse

Der Test lief über 10 Tage. Die in OpenHAB aufgelaufenen Impulse wurden mit den abgelesenen Zählerwerten verglichen:

Datenquelle Ablesung OpenHAB Delta Bemerkung
Solarzähler 0,5Wh/I (1%) 88,8 kWh 88,852 kWh +0,6% Zähler hat nur eine Nachkommastelle
Wasserzähler 1L/I (1%) 1853 L 1885 L +1,7%  
Gaszähler 100L/I (1%) 756 L 700 L -7,5% Zähler zählt nur in 100L-Schritten
EMU-Zähler Import (1%) 796,8 kWh 797,0 kWh +0,2%  
EMU-Zähler Export (1%) 24,9 kWh 24,9 kWh 0%  

Die Abweichung beim Gaszähler ist erklärlich: es wird immer nur ein Impuls pro 100 Liter abgegeben. Die 56 Liter wären beim nächsten Impuls enthalten gewesen. Lediglich der Wasserzähler gibt Rätsel auf: Sein Rollenzählwerk zeigt Liter an, die OpenHAB-Anzeige weicht aber um 1,7% ab. Es könnte sein, dass die Entprellung hier nicht ausreicht (Reed-Kontakt). Das werde ich noch separat untersuchen.