Volkszähler und S0 über W&T Web-IO 2x Digital Input

Ich bin entzückt. Aus alten Bastelzeiten hatte ich noch 2 alte Web-IO von Wiesemann & Theis rumliegen. Erste Hürde war, ohne Windows Betriebssystem einen Firmware-Update hinzubekommen.
Ich wollte die S0 Zählersignale von Strom Zwischenzählern an die Eingänge legen, damit einen Alarm verknüpfen und über TCP-Kommandos direkt an die Middleware des Volkszählers weiterleiten.

Dank geduldiger Hilfe des Produktmanagers von Wiesemann und Theis ist mir das nach ungezählten Stunden gelungen. Meine Fehler habe ich hier aufgeschrieben.

Wiesemann & Theis Web-IO mit digitalen Ein- und Ausgängen.
Das Web-IO Digital 2*In und 2*Out
Erste Balkendiagramme im Volkszähler
Die allerersten Impulse direkt im Volkszähler Frontend
die beiden Eltako Zwischenzähler mit S0 Ausgängen
Die Elektrikerin hat die Signalleitungen hinter der Abdeckung verdrahtet
Eltako Zähler oben rechts. Signalleitung nach links in alten Zähler, dann runter in Uponor-Schrank
Detail S0 am Drehstromzähler für das ganze Stockwerk
Detail S0 Anschlüsse am Zwischenzähler für die Pelletsheizung
Ein Wiesemann & Theis Web-IO2x digital #57637 nimmt die Impulse entgegen
Verdrahtung im Detail

Am Web-IO liegt auf Vdd eine Spannung von 24V an. Diese wird an den Zwischenzähler zum S0+ geführt. Vom S0- kommt der Impuls, den legen wir auf Input0 oder Input1

zwischen Vdd+ und Input0 oder Input1 können kurz 24V gemessen werden.
Die Counter zählen die ankommenden Impulse an.

Am Wiesemann & Theis Web-IO digital müssen die Inputs und die Alarme konfiguriert werden. Der Alarm gibt dann eine TCP-Meldung an den Raspberry weiter. Dort fängt die middleware.php des Volkszählers diese Meldung ab und verarbeitet diese in einem S0-Zähler Kanal.

Zuerst konfiguriert ihr das Netzwerk für den Web-IO. Bei mir hängt es nach einer OPNSense Firewall, die die Leases per DHCP vergibt.

Netzwerkeinstellung am Web-IO

Dann stellt ihr am Web-IO noch den Output-Mode auf HTTP ein. Ich habe die internen 24V aktiviert:

Oputput-Mode auf HTTP stellen

Die Inputs werden ganz einfach konfiguriert. Die Eltako Zwischenzähler senden S0-Signale die nicht zeitkritisch sind. Es sind somit keine besonderen Aktionen anzuwählen:

Die einfache Input-Konfiguration
Zur Kontrolle lasse ich die Counter mitlaufen und auf positive Polarität reagieren.

Die Alarme reagieren auf Input0 oder Input1 als Trigger. Sonst keine Einstellungen. Unten wähle ich als Output TCP-Client:

Ausgabe über TCP-Client anwählen und das E bei Interval ist wichtig

Tricky ist die Kommunikation vom Wiesemann & Theis Web-IO mit der Volkszähler middleware.php.
Dazu braucht ihr auf jeden Fall die IP des Raspberry auf dem der Volkszähler läuft. Dort müsst ihr schon einen Kanal vorbereitet haben und dessen UUID kennen. Diese wird in die TCP-Meldung mit eingegeben:

Die TCP-Alarmeinstellungen sind wichtig.

Lange hat es nicht geklappt, dass die Alarmmeldungen am Raspberry TCP-Server angekommen sind. Da war ja der kleine Fehler mit dem 12V Netzteil. Das Web-IO digital möche gerne 24V-48V haben. Das habe ich korrigiert, es lief zuverlässiger, aber die Meldungen kamen immer noch nicht an.
Eine Handbuch-Recherche hat dann einen wichtigen Hinweis gegeben:

Fällt eine Alarmbedingung zurück in den Normalzustand, bevor das Web-IO die Alarmmeldung senden konnte, wird nur die Alarmclear-Meldung gesendet

Die S0-Impulsdauer ist so kurz, dass es natürlich nicht reicht, in der Zeit die TCP-Meldung abzusetzen. Erst als ich den Aufbau für die TCP-Meldung dann in das Alarm-Clear-Text Feld eingetragen hat, sind die Meldungen zuverlässig am Raspberry angekommen !

Am Schluss stellt ihr den Kanal noch richtig ein. Dazu müsst ihr wissen, wieviele Impulse pro kW euer Zwischenzähler schickt. Dies tragt ihr in die Auflösung mit ein (ohne Einheit).

Kanal-Details für den S0-Zähler

Soweit so gut. Da ich zuerst im Labor die Funktionalität geprüft habe, hatte ich den Web-IO per PoE mit Strom versorgt und über die Outputs eine Selbstbefriedigungs-Situation erstellt.
Die Outputs waren mit den Inputs verdrahtet. Über ein Skript habe ich random-mässig die Outputs ein/ausgschaltet und so die Zähler simuliert.
Nachdem alles ging habe ich mit dem Elektriker einen Termin vereinbart und die Signale vom echten Zähler geholt. Dabei habe ich dann ein 12V-Netzteil an das Web-IO angeschlossen. Die Spezifikation sagt aber: 24V (vierundzwanzig).Das Web-IO ist auch mit den 12V hochgefahren, allerdings haben die Alarme nur sehr sporadisch reagiert.
Michael hat mich im Kommentar gefragt, wann es mehr Details gibt. Die wollte ich ihm zusammenstellen und dabei bin ich nochmal alles durchgegangen. So habe ich jetzt gerade den Fauxpas festgestellt.
Inzwischen habe ich ein 48V-Netzteil drangehängt und alles läuft wie geschmiert. Ich hatte mich schon gewundert, warum das Web-IO die Index-Seite nicht immer vollständig aufbaut….

Hier die Darstellung im Volkszähler.org:

Kurz mal den Backofen im Gartenstudio eingeschaltet
Schnell mal die Pelletheizung zünden lassen.

Jetzt läuft die Erfassung der Verbräuche mit den beiden Zwischenzählern. Die nächsten Wochen werde ich das beobachten. Das Objekt des Monitorings ist ja eine Ferienwohnung, ein Studio, das wir über Airbnb vermarkten.
Nachhaltigkeit liegt mir am Herzen, vielleicht hänge ich noch einen Monitor rein, an dem der Gast seinen Verbrauch live sehen kann. Nur wer informiert ist, kann auch gegensteuern. Wenn ich 1*/Jahr oder 1*/Monat eine Abrechnung bekomme, kann ich den Einspareffekt einzelner Maßnahmen ja kaum sehen. Mit diesem Monitoring kann der Gast erkennen, wie unterschiedlich die Kosten für eine Kanne Tee vom Herd oder aus dem Wasserkocher sind.

Untenstehend, nochmal erklärt, worum es mir geht.
Das ist der Stromverbrauch des ganzen Gebäudes. Ab 16:00 Uhr wurde ein Elektroauto geladen und gegen 19:00 Uhr wurde zusätzlich noch gekocht. Diese ungünstige Kombination verbraucht erstmal über 6kW in den Spitzen und kostet natürlich auch Geld.
Rechts unten ist zu sehen, dass die Tageskosten bei fast 11,- Euro liegen. Man kann aber auch sehen, dass der Standby-Verbrauch nachts bei 173 Watt lag. Insgesamt wurden 39kWh verbraucht. Das ist viel. Würde jeder Tag so laufen, wären das >4.000,- Euro Energiekosten / Jahr.

Hinterlasst einen Kommentar, falls ihr mehr Details braucht. Ich habe mich Monate damit beschäftigt und kann euch gerne helfen.

5 Kommentare zu „Volkszähler und S0 über W&T Web-IO 2x Digital Input

  1. Hallo Michael,
    hier der Update des Blogs. Es funktioniert inzwischen hervorragend. Ich hoffe du kommst mit der Beschreibung zurecht.

  2. geht das über die Aktion HTTP(S)-Request ? wenn mann das nach festen Zählerwerten verschickt ? Gibt es die Möglichkeit den Timestamp mitzuschicken ? Bringt das was im Volkszähler ?

    • Michael,
      ich bin an den Alarmen verzweifelt. Als ich die Infos für dich zusammengesucht habe, habe ich dann entdeckt, dass ich das WebI/O nur mit 12V statt mit 24V versorgt habe. Es hat prinzipiell funktioniert. Im Laborversuch habe ich es mit PoE versorgt, da ging alles.
      Ich werde mal sehen, ob ich dann mehr Erfolg habe mit 24v.
      Auf jeden Fall verbindest du Vdd+ mit dem S0+ und den S0- bringst du auf Input0 oder Input1. Dort kommen die Impulse an.
      Die Inputs lösen (sollen) Alarme aus. Auf der Input Seite ist nichts angehakt, Pulse polarity ist positve.
      Alarme musst du so konfigurieren: Input Trigger Input0 ON und TCP-Client enable.
      Im TCP-Client gibst du die IP und den Port des Volkszählers an. Port ist bei mir 80.
      Im TCP Text-Feld gibst du ein:
      GET /middleware.php/data/xxxxxUUIDxxxxx.json?operation=add&value=1 HTTP/1.1
      Host: 192.168.200.207

      Host ist die IP deines Volkszählers und nach data/ gibst du die UUID des Channels an, an dem die Daten ankommen sollen.
      Im Kanal wählst du „El. Energie (S0-Impulse)“ und gibst die Auflösung an. Zum Beispiel 100/kWh
      Zeitstempel brauchst du nicht, du schickst das ja direkt an die middleware und die berechnet die Zeit zwischen den Impulsen selber.
      Es gibt keine Zählerwerte, nur den Zeitunterschied zwischen den Impulsen. Das reicht dem Volkszähler um den Verbrauch zu errechnen.
      Soweit erstmal die schnelle Info.
      Wenn alles läuft mach ich die Doku mit den Bildern.

    • Ich schreibe die nächsten Tage was dazu. Im Labor hat alles geklappt, real life ist anders.
      Ich bekomme die Signale am Input richtig, auch gezählt.
      Allerdings reagiert der Alarm nicht zuverlässig und somit scheitert die Weitergabe per TCP an den Volkszähler.
      Du kannst aber sehen, wie die I/O Box angeschlossen werden muss.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.