NEWS
Stromzähler auslesen, per S0, IR Adapter, IOBroker
-
Hallo zusammen
ich habe bei mir einen Pi4 mit IOBroker aufgesetzt und auch erfolgreich geschaft den Stromverbrauch einiger Shellys in influxdb zu loggen. Nachdem ich seit Jahren einen viel zu hohen Stromverbrauch (weit über 10k kWh) habe, mnöcht ich diesem auch auf den Grund gehen und vor allem einen zeitlichen Verlauf des Haus-Stromzählers erfassen. Hier habe ich mir einen Weidmann USB IR-Kopf bestellt und versucht mit dem Testtool generell den smarten Stromzähler zum kommunizieren zu bekommen. Leider scheint dies nicht zu funktionieren, da meine E-Werke hier wirklich einen Sonderling verbaut haben:
Echolon 833332-3IAAD
M-Bus MEP T10264Ebenfalls habe ich versucht ihm mit der Software LorusFree irgendwleche Informationen zu entlocken, leider gescheitert.
Der Zähler verfügt aber auch noch über einen optischen S0 Impulsausgang (1000 imp/kW) den ich nun abgreifen möchte. Ich habe mich hierzu bereits mit dem Smartmeter Adapter für IOBroker beschäftigt, aber dieser unterstützt kein S0 sondern nur D0 ? Besteht die Möglichkeit den Impulsausgang auch mit dem USB IR Kopf zu erfassen? Welche Software verwende ich hierfür am besten?Danke euch
-
@rennsau_by S0 ist meist eine elektrische Schnittstelle des Zählers, die in der Regel für den Kunden (dich) vom Energieversorger extra vom verplombten Bereich herausgeführt werden muss. D0 hingegen ist das gleiche, nur in optischer Form, was meistens vom Kunden selbst über z.B. einen Lichtsensor direkt abgegriffen werden kann.
Mein Stromzähler hat leider nur eine LED, die 500 Impulse/kWh bringt.
Hier habe ich über einen Lichtsensor mit Digital-Ausgang die Impulse abgegriffen und das Signal in meinen ioBroker eingebunden. Die Zählung der Impulse übernimmt bei mir der Statistics-Adapter (Option Count beim entsprechenden State). Zur Berechnung der Verbrauchswerte nutze ich dann ein kurzes JavaScript, da dies im Statistics-Adapter nie zuverlässig funktionieren wollte. Hier das Script dazu:/* * Umrechnung der Zählimpulse vom Stromzähler in kWh. * Hintergrund: SumCount vom Statistics Adapter funktioniert nicht?! */ const KWH_PRO_IMP = 0.002; // 500 Imp/kWh // 15 Minuten Werte on({id: 'statistics.0.temp.count.i2c.0.0x24.0.15Min', change: 'any'}, (obj) => { const val = Math.round(obj.state.val * KWH_PRO_IMP * 10000) / 10000; setStateAsync('0_userdata.0.statistics.stromzaehler_15m_aktuell', val, true); }); on({id: 'statistics.0.save.count.i2c.0.0x24.0.15Min', change: 'any'}, (obj) => { const val = Math.round(obj.state.val * KWH_PRO_IMP * 10000) / 10000; setStateAsync('0_userdata.0.statistics.stromzaehler_15m_letzte', val, true); }); // Tages Werte on({id: 'statistics.0.temp.count.i2c.0.0x24.0.day', change: 'any'}, (obj) => { const val = Math.round(obj.state.val * KWH_PRO_IMP * 10000) / 10000; setStateAsync('0_userdata.0.statistics.stromzaehler_24h_aktuell', val, true); }); on({id: 'statistics.0.save.count.i2c.0.0x24.0.day', change: 'any'}, (obj) => { const val = Math.round(obj.state.val * KWH_PRO_IMP * 10000) / 10000; setStateAsync('0_userdata.0.statistics.stromzaehler_24h_gestern', val, true); });
Das Script reagiert auf Änderungen der aktuellen und letzten 15min- bzw. Tagessummen des Statistics-Adapters, berechnet daraus die kWh und schreibt das in eigene States unter
0_userdata.0.statistics....
. Diese eigenen States musst du vorher anlegen und natürlich alle States nach deinem Bedarf anpassen.
Auf meinen0_userdata.0.statistics.stromzaehler_15m_letzte
State habe ich dann die History mit Influxdb aktiviert, wodurch ich dann eine gute Zeitreihe mit den Verbräuchen je 15min erhalte. -
@crycode sagte in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
S0 ist meist eine elektrische Schnittstelle des Zählers, die in der Regel für den Kunden (dich) vom Energieversorger extra vom verplombten Bereich herausgeführt werden muss. D0 hingegen ist das gleiche, nur in optischer Form, was meistens vom Kunden selbst über z.B. einen Lichtsensor direkt abgegriffen werden kann.
das stimmt so nicht.
S0 ist ein Impulsausgang, spezifiziert für elektrischen Anschluss. Der optische Impulsausgang ist dementsprechend.
D0 ist ein Format einer Datenschnittstelle, über die mehrere Daten ausgegeben werden.Der Rest passt! Die Frage von @Rennsau_by , ob der Impulsausgang mit dem Lesekopf ausgelesen werden kann, kann ich nicht beantworten.
rein theoretisch könnte es gehen, aber eine einfache ir "Lese"Diode müsste reichen
edit: wobei diese Diode wahrscheinlich nicht mal IR sein muss. -
@rennsau_by sagte in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Echolon 833332-3IAAD
Hat sich hier in irgendeiner weise ein Tippfehler eingeschlichen?
Kann mir fast nicht vorstellen das Google so ziemlich nichts findet.
-
@homoran said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
eine einfache ir "Lese"Diode müsste reichen
Ganz korrekt, hierbei handelt es sich um einen Artikel im cent Bereich. Kombiniert mit einem ESP und fertig ist die Laube.
Hier steht wahrscheinlich alles was du dafüe brauchst.
-
@rennsau_by
bzgl. der optischen Schnittstelle. Hast Du mal beim Versorger angefragt, was damit ist. Bekommst Du gar keine Daten da raus? Es kommt vor, dass die Schnittstelle gesperrt ist und man vom Versorger einen Freischaltcode bekommen kann. -
@wendy2702 said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Echolon 833332-3IAAD
Hat sich hier in irgendeiner weise ein Tippfehler eingeschlichen?
ja, die vierte 3 ist eine zuviel....
@dieter_p said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Es kommt vor, dass die Schnittstelle gesperrt ist
Der optische Ausgang? Habe ich ja noch nie gehört/gesehen. Normal sieht man das schon mit dem bloßen Auge das da was "funkt"...
S0 (defacto ein switch der auf und zu geht) ist allerdings tatsächlich nicht immer "erreichbar"...
-
@opensourcenomad sagte in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
ja, die vierte 3 ist eine zuviel....
Dann findet ja Google auch was
@Rennsau_by https://volkszaehler-dev.volkszaehler.narkive.com/335bHBxB/vz-dev-echelon-smart-meter
https://demo.volkszaehler.org/pipermail/volkszaehler-users/2013-February/001696.html
Vielleicht mal hier schauen
-
Erstmal vielen Dank für die ganzen Infos. Hab mir einige Tage in Google die Finger wundgesucht aber kaum was gefunden.
Anbei der Zähler:
Habe nun ebenfalls mit dem USB IR Kopf und hterm versucht den Zähler zur Kommunikation zu bekommen, bekomme aber aktuell nur ein Echo. Werde morgen mal bei den Stadtwerken anrufen.
@crycode said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Statistics
Hast du diese Fotodiode-Platine direkt über GPIO an einen Pi angeschlossen? Mache aktuell noch die ersten Schritte im iobroker, aber habe bislang nichts gefunden: Kann ich GPIOs direkt im IOBroker abfragen?Danke euch
-
@rennsau_by Dreh den lesekopf mal um 180 Grad
-
@rennsau_by sagte in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
aktuell nur ein Echo
wo kommt denn das her ? Da scheint aber was falsch zu sein in der Config.
-
@rennsau_by sagte in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Hast du diese Fotodiode-Platine direkt über GPIO an einen Pi angeschlossen? Mache aktuell noch die ersten Schritte im iobroker, aber habe bislang nichts gefunden: Kann ich GPIOs direkt im IOBroker abfragen?
Ich habe die Platine bei mir über einen I²C Portexpander angeschlossen. Direkt an die GPIOs vom Raspi geht aber auch. Wichtig dabei: Nur die 3,3 V vom Raspi nehmen und nicht die 5 V. Sonst können die GPIOs beschädigt werden.
Für die GPIOs (und andere Infos vom Raspi) in ioBroker gibt es den RPi-Monitor Adapter. -
dieser wird benutzt : Weidmann USB IR-Kopf
drin ist wohl IC: FTDI FT232R / FT230X USB-to-UART Serial Converter.
Zu GPIO,
das geht nur nach Filter Ausgang IR Dioden und vor FTDI Kabel anlöten an TXDas muss so per hterm gehen, dann bekommt der Kopf ( an Usb ) kein Signal oder
hterm ist falsch eingestellt.
Beispiel hier -
Mittlerweile habe ich neue Erkenntnisse:
Den IR Kopf habe ich bislang nicht zum laufen bekommen, bzw. der IR Kopf funktioniert, der Stromzähler antwortet nicht.Alternativ habe ich nun per Fotodiode das Impulssignal abgreifen können und steuert momentan einen Pi mit Volkszähler an. Der Verbrauch im Volkszähler ist zu hoch, es sind auch deutliche Spikes in der Ganglinie erkennbar.
Endziel soll ja sein dass ich alles mal im IOBroker habe. Muss noch gucken ob ich dann einen Pi an den Zähler hänge mit IOBroker zusätzlich oder nur eine Lösung wie ESP8266 die dann per MQTT kommuniziert. Aber erstmal klein anfangen: Fotodiode an Pi mit Iobroker: Ist meine Annahme richtig, dass es keinen fertigen Adapter für das Zählen des S0 Impulses gibt sondern ich das per Javascript löse? Das heisst RPI Monitor Adapter installieren und dann die Impulse abgreifen und per JS eine Zählerlogik implementieren?
Danke euch
-
@rennsau_by said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Ist meine Annahme richtig, dass es keinen fertigen Adapter für das Zählen des S0 Impulses gibt
@opensourcenomad said in Stromzähler auslesen, per S0, IR Adapter, IOBroker:
Ganz korrekt, hierbei handelt es sich um einen Artikel im cent Bereich. Kombiniert mit einem ESP und fertig ist die Laube.
Hier steht wahrscheinlich alles was du dafüe brauchst. -
Mittlerweile habe ich es geschafft per Fotodiode die Impuls direkt mit einem eigenen Pi mit Iobroker und RPI-Monitor zu bekommen. Zusätzlich einige JS-Skripte geschrieben um eine influxdb zu füllen. Bislang funktioniert es bereits ganz gut. Jetzt muss ich mir nur noch überlegen ob ich den Pi am Zähler lasse und IOBroker auf Multihost umstelle oder mit einem ESP8266 die Daten übers Netz zum Haupt-IOBroker schicke.
Neben dem smarten Stromzähler der Stadtwerke habe ich noch zwei private Ferraris-Zähler verbaut, die ich nun ebenfalls gerne über das Diodenmodul (TCRT5000 ) auslesen würde. Allerdings bislang absolut erfolglos, gibt es hierfür noch Tricks wie man die Reflektion des roten Strichs besser erkennen kann?