bis gestern hatte ich ein SmartMeter vom Netzbetreiber, konkret ein Sagemcom T210-D-r. Dessen Kundenschnittstelle liefert einen Ausgang als Open Collector, serielles Signal und basiert auf dem niederländischen Standard DSMR 5.0.2. Durch die Schnittstelle ist eine Spannungsversorgung von 5V mit 250mA möglich. Die Schnittstelle ist
gegen Überlast und Kurzschluss geschützt.
Mit einem einfachen Pullup konnte ich damit ein RS232-kompatibles Signal erzeugen (0..5V) welches noch dazu schon entsprechend invertiert ist (also wirklich RS232 und nicht UART). Dahinter eine Waveshare RS232-to-Ethernet wandler, der mit den Signalen wunderbar stabil über viele Jahre zurechtgekommen ist.
Leider kam gestern der "Herr SmartMeter" und hat mir wegen Problemen mit der Konnektivität in meiner Siedlung ein neues SmartMeter verpasst, diesmal ein Landis & Gyr E450. Das Ding hat zwar auch eine Kundenschnittstelle, aber leider diesmal mit M-Bus :-(
Das SmartMeter spielt M-Bus-Master, und macht reinen Datenpush, ich muss also nur passiv "mitlesen" und muss nichts senden.
die M-Bus-Signale sind bereits potentialfrei, ich brauch keine Optokoppler
ich habe allerdings nur die 2 M-Bus Leitungen, keine Spannungsversorgung wie beim alten SmartMeter
Die Datenpegel sind wie folgt beschrieben:
Space: L ≥12 V
Mark: H Space Spannung + ≥10V aber <42V
Im Leerlauf messe ich ziemlich genau 26 Volt, Space dürfte also bei etwa 16 Volt liegen (Oszi-Vermessung steht noch aus)
Was ich nun suche ist eine möglichst einfache (temporäre) Lösung, wie ich aus diesen Pegeln wieder etwas machen kann, was mein RS232-Konverter als gültiges RS232 annimmt. Möglichst mit Bauteilen aus der Wühlkiste.
Ob ich invertieren muss, bin ich mir auch noch nicht sicher... ich fürchte aber ja
um mit dem L&G E450 zu "sprechen". Was sich mit deinem neuen Smartmeter auch ändert sind die Daten die da gepusht werden. Wenn du also "selbst" decodest musst du dich leider auf Zusatzarbeit einstellen.
Danke! beide hatte ich schon halb auf dem radar... Nachteil: beide brauchen eine Spannungsversorgung, und die hab ich im Schaltschrank derzeit nicht...
Der TSS721A bietet auch einen 3V3 Ausgang, die Spannung wird direkt vom M-Bus erzeugt. Dahinter dann ein X-Beliebiger 3V3 tauglicher RS232 Converter und du bist durch mit deinem Vorhaben.
Spannungsversorgung hast du ja prinzipiell schon. Sowohl Mark als auch Space liefern dir Spannung. Also simple Spannungsmodulation auf der Versorgung könnte man sagen. Frage ist nur, wie stark belastbar die ist.
Ich hab mir schon mal vor längerer Zeit einen Decoder für sowas gebaut. War aber einfach für mich, weil ich mit extrem energiesparenden Geräten welche ebenfalls über Spannungsmodulation auf der Versorgung betrieben wurden, genügend Erfahrung habe. Also mit sparsamen Prozessoren und rückwirkungsarmer Stromversorgung. Man will ja nicht durch die Stromversorgung die Modulation killen.
Du könntest versuchen über z.B. Diode und in Serie sehr hochohmig die Leitung abgreifen. Und dann erst zu einem Kondensator von dem du dann deine Versorgungsspannung generierst. Also z.B. Diode, 30kR, 10uF nur so als Idee.
Andere Möglichkeit ist über eine Konstantstromquelle, z.B. 0,5mA einen C laden, welcher mit z.B. einer 8V2 Z-Diode gegen Hochlauf auf die 8V2 begrenzt wird. Und von da eine Schaltung versorgen. Ev. kannst sogar mit mehr als 1mA belasten. Müßte man messen. Obwohl ich mich erinnern kann, dass die max. Last bei meinem Zähler sogar spezifiziert war.
Obwohl ich mich erinnern kann,
dass die max. Last bei meinem Zähler sogar spezifiziert war.
genau an eine Versorgung aus dem M-Bus habe ich auch gedacht.
Die Doku vom Netzbetreiber sagt dazu:
Übermittlung vom Slave
MARK L=0 mA bis 1,5 mA
SPACE H=(11 mA bis 20mA + MARK-Strom)
was insofern verwirrend ist, als es keine Übermittlung vom Slave gibt.
Aber wenn ich das richtig interpretiere, darf ich 1mA ziehen, ohne was zu stören. Und das sollte für eine simple Invertierung mit Transistor reichen.
Meine Idee wäre eine sehr simple Schaltung: Spannungsteiler, Z-Diode, Transistor in Emitterschaltung als Inverter.
Ich muss von den Pegeln einmal nach 0V kommen, und einmal irgendwas zwischen 3? 5? Volt und 25V, das sollte von meinem RS232-Receiver sauber erkannt werden.
Der kann ja auch wM-Bus, das könntest du z.B. mit einem STM32WL33 drahtlos empfangen ;-) Oder mit einem fertigen wM-Bus Empfänger oder existierendem Open-Source-Projekt: https://github.com/alex-icesoft/esp32_cc1101_wmbus
Leider kam gestern der "Herr SmartMeter" und hat mir wegen Problemen mit
der Konnektivität in meiner Siedlung ein neues SmartMeter verpasst,
diesmal ein Landis & Gyr E450. Das Ding hat zwar auch eine
Kundenschnittstelle, aber leider diesmal mit M-Bus :-(
Landis & Gyr hat das Herstellerkürzel LZG, aus der Schweiz.
Ich bekam vor einem Jahr meine eHZ Zähler wegen Umstieg auf iMSYS getauscht mit LZG Zähler. Nach 12 Tagen wurden die wieder gewechselt. Einen Tag später wurde wieder, dieses Mal nur einer, gewechselt. Am 14.08.2025 erfolgte der 4. Wechsel.
Die LZG Zähler waren wohl nicht kompatibel. Ich bekam dann Zähler mit Kürzel ISK. Die kommen wohl aus Slowenien. Die ISK Zähler laufen wohl. Leider hat Westnetz den einzelnen Zähler vergessen zu buchen, so daß ich bis heute nicht meine Daten selber bei Medaco einsehen kann. Typisch Westnetz. Da gibt es jede Menge Theater. Man schaue mal im Photovoltaik - Forum nach.
mfg Klaus
Mit einem einfachen Pullup konnte ich damit ein RS232-kompatibles Signal
erzeugen (0..5V)
0..5V ist nicht RS-232 kompatibel.
Ack.
... the signal shall be considered in the marking condition when the voltage .. measured at the interface point, is more negative than -3 volts..... The signal shall be considered in the spacing condition when the voltage .... is more positive than +3 volts ... The region between +-3 volts is defined as the transition region. The signal state is undefined when the voltage is in this transistion region.
Ich sehe da keinen Diskussionsspielraum. Entweder unter -3V, oder über +3V. Und zwar deutlich drunter & drüber um auch eine Reserve für Störer zu haben.
Wenn man sich seine eigene proprietäre Schnittstelle baut, mit seinen eigenen definierten Umgebungsbedingungen (Belastungen, Temperatur, Störfestigkeit, Schutzbeschaltungen, Kabellängen, ...) kann man machen was man will. Nur sollte man es dann auch so bezeichnen - proprietäre Schnittstelle. Nicht fälschlicherweise nach internationalen Standards benennen. Vor allem wenn man diese bewußt mißachtet. Man kann nicht erwarten, dass Mitmenschen einem verstehen, wenn man mit falschen Worten diskutiert.
Danke! beide hatte ich schon halb auf dem radar... Nachteil: beide
brauchen eine Spannungsversorgung, und die hab ich im Schaltschrank
derzeit nicht...
Und wie versorgst du dann dort deinen Waveshare RS232-to-Ethernet Wandler?
Na dann schraub ihn auf und löte dir ein Kabel von irgendeiner internen Spannung zu Pin 9 vom RS232-Sub-D. Dann kannst du extern darüber deinen Pegelwandler versorgen.
Ich hab mich dem Thema jetzt monatelang konsequent verweigert / es ignoriert, aber jetzt hatte ich eine Idee:
Der M-Bus-Ausgang ist garantiert potentialfrei (hab ich auch nachgemessen) => die Invertierung kann ich einfach durch Vertauschen der Leitungen (oder Wechsel des Bezugspunktes) machen. nebenbei ist mein Waveshare ja auch potentialfrei.
Ich hab das Singal mit dem Oszi vermessen (siehe Anhang)
Ruhepegel 26 Volt (High / Idle)
Signal: 14 Volt, also ~12 Volt weniger
Ein "Paket" dauert etwa 1700 ms
Es kommt alle 10 Sekunden so ein Paket.
Die kürzesten Pulse sind ungefähr 0,4 ms breit => deutet sehr klar auf 2400 Baud hin (steht auch so in diversen Dokumentationen)
Die Idee ist jetzt: mit einer Zenerdiode ~15 Volt und einem Serienwiderstand (~22 kOhm) bekomme ich folgende Pegel:
26 V - 15 V = ca. 11 V
14 V - 15 V = ca. 0 V (Zener sperrt)
Durch den vertauschten Bezugspunkt sollte ich damit am Eingang also ungefähr 0 V / 11 V mit der gewünschten Polarität erhalten.
Der Strom bei 26 V läge mit 22 kΩ bei rund
(26 V - 15 V) / 22 kΩ = 0,5 mA.
Mein Waveshare-RS232-Eingang kommt nachweislich bereits mit UART-Pegeln (0/5 V) problemlos zurecht, daher sollten 0/11 V erst recht reichen.
Übersehe ich dabei etwas, oder müsste sich der Empfänger tatsächlich auf eine Zenerdiode + einen Widerstand reduzieren lassen?
SmartMeter läuft seit 2 Stunden wieder problemlos :-)
Ich hätte auch die Hoffnung, dass du das SmartMeter nicht ruiniert hast mit deinem Gebastel.
Die Frage war doch eher, was dein über die Diode abgegriffenes Signal nach dem RS232 Empfang liefert, sicher andere Datentelegramme als früher und damit inkompatibel.
Ich hätte auch die Hoffnung, dass du das SmartMeter nicht ruiniert hast
mit deinem Gebastel.
Ja, die Angst hatte ich auch, aber ich gehe davon aus dass diese Kundenschnittstelle einigermaßen "abgesichert" ist (kurzschlussfest usw)
Die Frage war doch eher, was dein über die Diode abgegriffenes Signal
nach dem RS232 Empfang liefert, sicher andere Datentelegramme als früher
und damit inkompatibel.
Ja, ich musste noch etwas nacharbeiten (HDLC-Frames zerlegen, OBIS binär statt Klartext) aber das war Kleinvieh...