Stromzähler mit S0-Impulsausgang an Raspberry Pi mit Volkszähler auswerten

Ich nutze seit geraumer Zeit das freies Smart Meter von Volkszähler, um meinen Stromverbrauch am Stromzähler grafisch zu erfassen. Ich habe als Stromzähler eine “moderne Messeinrichtung”, also einen Stromzähler mit SML Datenschnittstelle. Aber um diesen Zähler soll es heute gar nicht gehen. Interessieren soll uns heute ein einfach Wechselstromzähler mit einem Impulsausgang.

Der Impulsausgang wird in diesem Fall “S0”-Schnittstelle genannt und ist nicht mit der gleichnamigen S0-Schnittstelle von ISDN zu verwechseln. Im Prinzip handelt es sich um einen potentialfreien Schaltkontakt, der oft über einen Optokoppler ausgeführt ist, so auch in meinem Beispiel bei dem Wechselstromzähler Typ DDS5188. Dieser gibt wür jede “verbrauchte” Kilowattstunde 2000 Impulse aus, sprich einen Impuls pro 0,5 Wattstunden. Die Anbindung an Volkszähler, genauer gesagt den VZLogger hat mir einiges an grauen Haaren bereitet, denn ich wollte nicht die Impulse aufsummiert dargestellt haben, sondern live die verbrauchte Leistung darstellen.

Hardware-Setup

In den meisten Fällen haben die Zähler einen “S0+”- und einen “S0-“-Anschluss. Ich habe den “S0-“-Anschluss direkt auf Masse gelegt, wenn der Zähler einen Impuls ausgibt, wird der “S0+”-Anschluss also gegen Masse gezogen. Damit dieser sonst nicht in der Luft hängt, kann man am GPIO den Pullup-Widerstand aktivieren, oder man baut einen ein, wie im Schaltplan dargestellt. Wichtig: Die GPIO des Raspberry Pi sind nicht 5V-tolerant, man muss den Pullup also auf 3,3V legen!

Wechselstromzähler mit S0 Impulsausgang am Raspberry Pi Zero

Bei jedem Impuls des Zählers, also bei jeder “verbrauchten” halben Wattstunde bekommt der Raspberry Pi an GPIO 18 (Pin 12) nun also einen negativen Impuls von einigem Millisekunden. Nun gilt es, den vzlogger dafür zu konfigurieren.

Konfiguration des vzloggers

Die Konfiguration des vzloggers befindet sich in der Datei /etc/vzlogger.conf und muss mit root rechten bearbeitet werden. Es folgt eine erläuterte Beispiel-Konfiguration für den Zähler:

{
  "retry": 0,
  "verbosity": 3, //die SD-karte nicht zu sehr belasten...
  "log": "/var/log/vzlogger.log",
  "local": {  //Ich möchte auf lokal auf die Daten zugreifen, ohne push
    "enabled": true,
    "port": 8084,
    "index": true,
    "timeout": 0,
    "buffer": 0
  },
  "meters": [
  {
    "enabled": true,
    "allowskip": false,
    "aggtime": 0, //Die Daten werden nicht zusammengefasst
    "aggfixedinterval": false,
    "aggmode": "sum",
    "protocol": "s0", //S0-Impulse
    "gpio": 18, //Broadcom-Pin an dem der Impulsausgang hängt
    "mmap": "",
    "gpio_dir": -1,
    "configureGPIO": true, //vzlogger soll die GPIO für mich konfigurieren
    "resolution": 1, //hier könnte man die 2000 Impulse pro kWh eintragen
    "send_zero": false, //keine Nullen übertragen
    "channels": [
        {
          "uuid": "4307f540-dcb4-11eb-b124-5da08f82312d",
          "identifier": "Power", //DAS ist die wichtigste Stelle! Wer hier "Impulse" einträgt bekommt nicht die aktuelle Leistung
          "api": "volkszaehler",
          "middleware": "http://localhost/middleware.php",
          "timeout" : 10,
          "duplicates": 30
        }
    ]
  }
  ]
}

Das Ganze kann dann so aussehen:

Leistung dargestellt über die Zeit

Möchte man mehrere Zähler mit einem Raspberry Pi auslesen, so müssen mehrere “meters” in geschweiften Klammern angelegt werden. Leider auch dann, wenn man pro Phase einen S0-Ausgang hat.

Als kleinen Tipp am Ende kann ich noch die fertigen Images für den Raspberry Pi von Volkszähler empfehlen: https://wiki.volkszaehler.org/howto/raspberry_pi_image

IR-Code der Wamsler-Pelletofen-Fernbedienung

Ich besitze einen Pelletofen der Firma Wamsler, genauer gesagt einen Westminster Quattro 6. Dieser Ofen kann über eine IR-Fernbedienung “programmiert” werden, sprich es können Parameter wie Solltemperatur, Timer, Lüftergeschwindigkeit usw. eingestellt werden und zuguterletzt der Ofen natürlich ein- und ausgeschaltet werden. Ich möchte diese Funktionen jedoch aus der Ferne steuern können – beispielsweise den Ofen von der Arbeit aus vorheizen.

Dafür bietet die Firma Wamsler zwar ein WiFi-Modul mit Cloudanbindung an, aber dieses kann ich nicht nur nicht in meine private Hausautomatisierung integrieren, es weist auch einige weitere gravierende Nachteile auf, die mich bewogen haben, das Gerät nicht einzusetzen. Zu den eben erwähnten Gründen zählt unter anderem, dass die Identifikation nur über eine numerische Hardware-ID erfolgt, ohne Passwortschutz. Finde ich die Hardware-ID eines anderen WiFi-Moduls heraus, kann ich diesen steuern – ein eklatanter Sicherheitsmangen. Abgesehen davon sind rund 150€ für ein ESP-Modul auf einer Platine mit 3 LEDs in einem Gehäuse ohne CE-Kennzeichnung eine Fars.

Daher habe ich mich entschlossen, mit das Übermittlungsprotokoll der Fernbedienung genauer anzusehen und bin über die Variation alles einstellbaren Parameter zu folgender Liste gekommen:

areaexplenationcalculationunit
bit 0 to 1currently unknown
bit 2timer “auto”1 = true, 0 = false
bit 3stove on / off1 = on, 0 = off
bit 4“turbo” mode on / off1 = on, 0 = off
bit 5 to 7blower level1 + binToDec; 6 = AUTO
bit 8“econo” mode on / off1 = on, 0 = off
bit 9currently unknown
bit 10 to 15temperature7 + binToDec°C
bit 16 to 20timer 1 ON hourbinToDechours
bit 21 to 23timer 1 ON minutebinToDec * 10minutes
bit 24 to 28timer 1 OFF hourbinToDechours
bit 29 to 31timer 1 OFF minutebinToDec * 10minutes
bit 32 to 36timer 2 ON hourbinToDechours
bit 37 to 39timer 2 ON minutebinToDec * 10minutes
bit 40 to 44timer 2 OFF hourbinToDechours
bit 45 to 47timer 2 OFF minutebinToDec * 10minutes
bit 48 to 49currently unknown, maybe part of 50..55
bit 50 to 55hour of daybinToDechours
bit 56 to 57currently unknown, maybe part of 59..64
bit 59 to 63minute of daybinToDecminutes
bit 64timer 1 ON active1 = true, 0 = false
bit 65timer 1 OFF active1 = true, 0 = false
bit 66timer 2 ON active1 = true, 0 = false
bit 67timer 1 OFF active1 = true, 0 = false
bit 68 to 71custom checksumsee below
Wamsler-IR-Fernbedienungsprotokoll, siehe hier

Um nun eigene Telegramme zu erstellen habe ich eine C++-Klasse geschrieben, über die alle Parameter festgelegt werden können und am Ende ein valides Telegramm auswerfen kann.

#pragma once
#include <string>
#include <iostream>

class telegram
{
public:
	//Variablen
	int OnOff = 0;	
	int AUTOTimer = 0;
	int Turbo = 0;
	int Econo = 0;
	int timer1onActive = 0;
	int timer1offActive = 0;
	int timer2onActive = 0;
	int timer2offActive = 0;

	//Funktionen, Set
	bool setBlowerLevel(int level = 0);
	bool setTemperature(int temperature = 20);
	bool setTimer1on(int hour = 0, int minute = 0);
	bool setTimer1off(int hour = 0, int minute = 0);
	bool setTimer2on(int hour = 0, int minute = 0);
	bool setTimer2off(int hour = 0, int minute = 0);
	bool setTime(int hour = 0, int minute = 0);

	//Funktionen, Output
	std::string toString();
	

private:
	bool data[72] = { 0 };	
	bool calcTelegram();
	bool calcPruefsumme();
};

Der entsprechende Programmcode und ein Beispiel ist auch schon auf Github zu finden. Nächster Schritt wird nun, einen Arduino-kompatiblen Mikrocontroller mit RTC als Sender zu programmieren und eine entsprechende Web-Schnittstelle zur Verfügung zu stellen. Wenn es soweit ist, wird dieser Artikel aktualisiert.

VDSL-Ausbau in Neukirchen / Pleiße teilweise abgeschlossen

Nach aktuellen Informationen von Georg von Wagner, dem Pressesprecher der Telekom, wurde der Breitbandausbau in Neukirchen / Pleße teilweise abgeschlossen.

[…] von den zwölf Kabelverzweigern, die in Neukirchen/Pleiße modernisiert werden sollen, sind neun umgestellt. Bei den drei restlichen kommt es zu Verzögerungen, weil wir dort bisher keine Genehmigung erhalten haben. Einer von den drei soll dem Vernehmen nach in den kommenden zwei bis drei Wochen in Betrieb gehen. Für die anderen beiden liegen derzeit keine Fertigstellungstermine vor.

Georg von Wagner, Corporate Communications, Pressesprecher Telekom

Mittlerweile kann ich eine erfolgte Schaltung im Bereich der Gartenstraße (100Mbit/s) und des Carthäuserwegs (ca 75Mbit/s), sowie mehrere weitere erfolgreiche Anträge auf einen Technologiewechsel (100Mbit/s und 50Mbit/s) bestätigen. Die Information die mir leider noch fehlt, ist, wo die drei Bereiche sind, in denen noch kein Ausbau erfolgt ist.

Wie komme ich zu schnellem Internet?

Wer jetzt schon umsteigen möchte, dem empfehle ich bei der Hotline seines Internetanbieters anzurufen um einen “Technologiewechsel” zu beantragen. Wichtig ist aber, sich vorher schlau zu machen, welche Tarife es zu welchem Preis gibt (Info hier), damit einem kein teurerer Vertrag “angedreht” wird. Meine Empfehlung: Ein Angebot per E-Mail zuschicken lassen, dass dann online bestätigt werden muss. Das können heutzutage alle Anbieter.

Je nach dem, wie nah man am Verteilerkasten ist, können nach meiner Recherche bis zu 250 Mbit/s gebucht werden. Für die meisten Haushalte sollte jedoch eine 50 MBit/s Leitung ausreichen. Sind Kinder (auch größere) im Haushalt, oder Homeoffice angesagt, so kann sich ein 100 Mbit/s Anschluss lohnen. Gründe für die 250 Mbits/s oder für die Tarife mit 175 Mbit/s sehe ich derzeit nur für große Haushalte mit mehr als 4 Personen.

Ich würde mich freuen, wenn ihr hier kommentiert, wo Ihr erfolgreich oder nicht erfolgreich einen Technologiewechsel beantragt habt und wann eine Schaltung des neuen Anschlusses mit welcher Geschwindigkeit erfolgt ist!

[Update 27.01.2021]

Mittlerweile ist unsere Leitung seit knapp einer Woche geschaltet und stabil. Bei einer Leitungslängte von rund 480m zur DSL Vermittlungsstelle erreichen wir stabil 88 Mbit/s in Empfangsrichtung und 35 Mbit/s in Senderichtung (gebucht 100 / 40 Mbit/s). Das ist – insbesondere in Anbetracht des Abstands zum Outddor DSLAM – ein sehr guter Wert. Zuerst hatte unsere Leitung nur mit 75 / 33 Mbit/s synchronisiert, nach einem Austausch der Leitung von der “Telefon”-dose zum DSL-Modem gegen ein wesentlich kürzeres konnte die Datenrate nochmal auf die oben genannten 88 / 35 Mbit/s gesteigert werden. Es sei erwähnt, dass dies überdurchschnittlich gut ist bei der Leitungslänge.

Fritz!Box DSL Übersicht
Fritz!Box DSL
Fritz!Box DSL Spektrum

[Update 29.01.2021]

Die Telekom hat ihre Ausbaukarte für Neukirchen aktualisiert. Nun sind die ausgebauten Bereiche endlich markiert.

Screenshot Karte Bretbandausbau telekom.de

Alles südlich der Bahnhofstraße jedoch ist absolut unausgebaut – da dürften die 2 bis 3 unausgebauten Kösten stehen, die Herr von Wagner erwähnt hat.

[UPDATE] VDSL Ausbau in Neukirchen

[Update vom 06.01.2020] Anscheinend gibt es eine Teilfreigabe im nördlichen Dorfteil. So wurde im Telekom-Hilft-Forum eine Freigabe für einige Straßen bereits bestätigt, auch ich konnte bei meinen Internetanbieter O2 bereits einen (kostenlosen) Technologiewechsel auf VDSL 100 beantragen. Die Umstellung soll laut O2 binnen 14 Tagen erfolgen. Sollte dies klappen und ich wirklich meine VDSL-Leitung bekommen, werde ich hier berichten. Es folgt dann auch eine Anleitung, wie man den Technologiewechsel anstößt.

Sehr unglücklich bin ich weiterhin über die Kommunikationspolitik der deutschen Telekom. Wenn man nicht regelmäßig nachbohrt und den Herren und Damen alles aus der Nase zieht, gibt es keine Informationen… Das muss klar besser werden! Vielleicht ist das Geld für echten Kundensupport besser investiert, als in eine virtuelle Realität.

[Ursprünglicher Beitrag] Nach aktuellen Informationen durch freiwillige Helfer der deutschen Telekom wurde der VDSL-Ausbau im Neukirchen/Pleiße erneut verschoben. Der ursprüngliche Termin am 28.12.2020 konnte nicht gehalten werden. Konkrete Gründe dafür konnten nicht genannt werden, neuer Termin wäre wohl Ende Februar 2021, drei Jahre nach der ersten Ankündigung im Jahr 2018. Gerade jetzt im Home-Office hätten viele sicher von dem Ausbau profitiert. Ich werde mich daher erneut an den Pressesprecher der Telekom Georg von Wagner wenden.

Tarifvergleich VDSL in Neukirchen/Pleiße

Bald scheint es soweit zu sein, dass wir hier bei uns im Dorf endlich VDSL haben werden. Da lohnt es sich, einen Blick auf die möglichen Tarife zu werden. Vorangestellt sei jedoch, dass nicht jeder Tarif an jeder Adresse verfügbar ist. Die meisten Anschlüsse sollten jedoch zumindest VDSL mit 50.000 kbit/s erreichen. Alle Preise habe ich mit 19% MwSt ermittelt und “Lockangebote” lediglich in der Bemerkung erwähnt – man bleibt ja kaum nur 24 Monate bei einem Anbieter.

Angemerkt sei auch, dass viele Anbieter Rabatte geben, wenn man beispielsweise DSL und Mobilfunkvertrag bündelt. Je nach Anbieter können so bis zu 15€ im Monat gespart werden. Dies wird hier jedoch nicht beachtet und sollte individuell geprüft werden. Auch Zusatzfunktionen, die eventuell inklusive sind, werden zur Vereinfachung nicht beachtet.

Durchweg preiswert sind die Tarife von o2, welche zumeist 5 € unter der Konkurrenz liegen. Bei jedem Tarif der Anbieter muss noch ein Router hinzugebucht werden, soweit man nicht bereits einen VDSL-fähigen Router besitzt. Die Tarife variiren hierbei von 2,99 € / Monat bis 5,99€ / Monat. Wer sich gegen eine Miete entscheitet, dem empfehle ich die FritzBox 7412 gebraucht zu erwerben. Diese bietet für Anschlüsse bis 100.000 kbit/s ein unschlagbares Preis/Leistungs-Verhältnis. Nur rund 25 € zahlt man für ungenutzte Geräte und bekommt WLAN bis 150mbit/s, einen LAN-Netzwerk-Port und die Möglichkeit ein Telefon anzuschließen. Das reicht für die meisten aus.

Weiterlesen