Forum: Haus & Smart Home Ideen für stabile Verbindung zum Smartmeter


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Guten Tag zusammen!

Ich suche nach Ideen, mit welcher Technologie ich eine stabile 
Verbindung zwischen meinem Homeserver und einem SML-Lesekopf an einem 
abgesetzen Smartmeter hinbekomme.

Derzeit sitzt am Smartmeter ein Kopf mit IR-Empfänger und 
CP2102N-USB-Wandler. Das USB-Signal wird dann über einen (passiven) 
Adapter auf ein CAT7-Kabel gegeben. Nach rund 20m sitzt dann im 
Serverschrank das Gegenstück des Adapters und die USB-Leitung zum 
Server.

Es gibt auf dieser Verbindung häufige CRC-Fehler und mehrfach täglich 
komplette Hänger des CP2102N, die nur mit einem USB-Reset gelöst werden 
können. Die Ursache ist offensichtlich: USB 1.1 sollte halt nicht mit 
über 20m Kabel betrieben werden, auch wenn CAT7 sicherlich gut geschirmt 
ist.

Das SML-Protokoll wird mit 9600 Baud betrieben. Das ist eine 
Geschwindigkeit, die vor 25 Jahren problemlos mit einem Modem 
kilometerlang über einfache Kupferdoppeladern gejagt werden konnte.

Daher meine Frage: kennt Ihr Technologien, die es erlauben würden, das 
Signal der IR-Diode an einem Ende auf einen USB-Anschluss am anderen 
Ende unter Nutzung eines CAT7-Kabels zu bringen?

Ich sollte noch einschränken: es gibt am Smartmeter keinen für mich 
zugänglichen Stromanschluss - ein lokaler Arduino etc. scheidet also 
aus.

Für Tipps wäre ich dankbar!

Viele Grüße
Michael

von Kilo S. (kilo_s)


Bewertung
1 lesenswert
nicht lesenswert
Michael K. schrieb:
> Ich sollte noch einschränken: es gibt am Smartmeter keinen für mich
> zugänglichen Stromanschluss - ein lokaler Arduino etc. scheidet also
> aus.

POE....

Nimm das Netzwerkkabel, versorge die Schaltung der diode mit Strom und 
benutze zwei Adern für RS323, im serverschrank dann die Umsetzung 
RS232->USB.

Da sind genug adernpaare im kabel, da kannst du doch locker Strom und 
Daten übertragen.
USB Ohne aktiven Hub dazwischen ist bis 5m spezifiziert, da kannst du 
glücklich sein das es überhaupt Funktioniert. Wenn auch mit 
Unterbrechungen.

: Bearbeitet durch User
von Stefan B. (stefan_b278)


Bewertung
3 lesenswert
nicht lesenswert
IR-Empfänger umbauen zum RS485-Sender, dafür brauchst du ein Adernpaar 
im Cat7. Dann brauchst du noch 1 Adernpaar für + und - und an die 
restlichen zwei Paare könntest du noch zwei andere Stromzähler 
dranhängen.
Am Computer brauchst du nur einen RS485-USB Konverter oder auf Seriell 
und dann USB und zusätzlich die Stromversorgung (z.B. vom USB Port 5 
Volt).
Bei den RS485 Bausteinen kannst du die Senderichtungen fest verdrahten 
oder welche mit AutoDirection nehmen.

Was auch gehen würde ist eine kleine Schaltung für die IR-Diode (oder 
Transistor) die das Lichtsignal per Transistor wie eine S0-Schnittstelle 
direkt auf die Ader überträgt und du es mit einer Schaltung am Computer 
auf seriell umsetzt.

von USB-5 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael K. schrieb:
> Es gibt auf dieser Verbindung häufige CRC-Fehler und mehrfach täglich
> komplette Hänger des CP2102N, die nur mit einem USB-Reset gelöst werden
> können. Die Ursache ist offensichtlich: USB 1.1 sollte halt nicht mit
> über 20m Kabel betrieben werden, auch wenn CAT7 sicherlich gut geschirmt
> ist.

Schau mal auf die Versorgungsspannung oder die Stromspitzen. Das könnte 
schon knapp werden.

Wurde Vbus und GND auf die 6 Leitungen gut verteilt?

Bei USB 2.0 HS mit aktiven Adapter sind 20m kein Problem.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

danke für die Ideen!

Ich sortiere mal. Wenn ich das richtig verstehe, ist die optische 
Schnittstelle des Smartmeters doch eine UART-Schnittstelle, die mit dem 
CP2102N zu USB umgesetzt wird.

Kilo S. schrieb:
> Nimm das Netzwerkkabel, versorge die Schaltung der diode mit Strom und
> benutze zwei Adern für RS323, im serverschrank dann die Umsetzung
> RS232->USB.

Ich gebe zu, ich tue mir schwer, den Unterschied zwischen UART, TTL und 
RS232 zu finden - außer offensichtlich anderen Pegeln?


Stefan B. schrieb:
> Was auch gehen würde ist eine kleine Schaltung für die IR-Diode (oder
> Transistor) die das Lichtsignal per Transistor wie eine S0-Schnittstelle
> direkt auf die Ader überträgt und du es mit einer Schaltung am Computer
> auf seriell umsetzt.

1)
Das würde doch eigentlich nichts anderes sein, als die lange 
Kabelstrecke zwischen IR-Transistor (und Verstärker-Transistor) und den 
CP2102N zu legen. Sprich: meinen derzeitgen USB-IEC-Kopf von ELV etwas 
modifizieren, das Signal abgreifen, über das CAT7-Kabel jagen und dann 
durch einen CP2102N direkt am Server zu jagen. Hab ich das richtig 
verstanden? Risiko ist natürlich, dass hier Störungen auf der 
TTL-Strecke reinkommen, aber das kritische USB-Timing wäre kein Thema 
mehr.

Stefan B. schrieb:
> IR-Empfänger umbauen zum RS485-Sender, dafür brauchst du ein
> Adernpaar
> im Cat7. Dann brauchst du noch 1 Adernpaar für + und - und an die
> restlichen zwei Paare könntest du noch zwei andere Stromzähler
> dranhängen.
> Am Computer brauchst du nur einen RS485-USB Konverter oder auf Seriell
> und dann USB und zusätzlich die Stromversorgung (z.B. vom USB Port 5
> Volt).
> Bei den RS485 Bausteinen kannst du die Senderichtungen fest verdrahten
> oder welche mit AutoDirection nehmen.


2)
RS485 klingt noch besser. Hier würde ich dann ebenso den Kopf umbauen, 
so dass ich das TTL-Signal abgreife, es durch einen 
3,3V-TTL-to-RS485-Wandler jage (z.B. 
https://www.makershop.de/module/kommunikation-module/ttl-rs485-adapter/ 
), der aus dem CAT7-Kabel eben die 5V über einen Spannungswandler kriegt 
(die Elemente im jetzigen Kopf sind auf 3,3V ausgelegt), und am anderen 
Ende einen RS485-USB-Wandler.

3)
Neben dem Serverschrank steht eh schon ein RS485-Bussystem von Eltako. 
Allerdings möchte ich da keine Non-Eltako-Komponenten in den Bus 
sprechen lassen. Um den Zähler darüber auszulesen, müsste ich einen 
Sub-Bus über das CAT7-Kabel anlegen und dort ein FSDG14 von Eltako mit 
IR-Zähler von Eltako kombinieren (beides leider sauteuer, dazu auf 
beiden Seiten Eltako-Busankoppler). Für das Geld kann ich aber 
vermutlich direkt einen Eltako-Stromzähler in die Verteilung einbauen 
lassen und das Smartmeter ab sofort gepflegt ignorieren.

USB-5 schrieb:
> Schau mal auf die Versorgungsspannung oder die Stromspitzen. Das könnte
> schon knapp werden.
>
> Wurde Vbus und GND auf die 6 Leitungen gut verteilt?
>
> Bei USB 2.0 HS mit aktiven Adapter sind 20m kein Problem.

Da habe ich auch schon drüber nachgedacht. Ich habe allerdings keine 
aktiven Adapter verwendet - am Smartmeter habe ich ja keine 
Stromversorgung. Eher sowas hier: https://www.amazon.de/dp/B001TOG6MM/

Dieses Problem könnte ja vermutlich besser werden, wenn ich dem Lesekopf 
am Smartmeter noch einen Elko spendiere - ab Werk sind da nur 4,7uF.

von Sebastian L. (sebastian_l72)


Bewertung
0 lesenswert
nicht lesenswert
Kann der Zähler kein M-bus, BACnet oder ModBus?
Impulse zählen ist ein wenig 90er Jahre.

wie schon erwähnt, ist eine so lange Strecke mit USB nicht möglich.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nein, es werden keine Impulse gezählt! Es ist eine IR-Schnittstelle mit 
SML, über die verschiedene OBIS-Werte übertragen werden.

von Udo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es gibt aktive USB-Verlängerungen. Hast du es damit schonmal probiert?

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Udo schrieb:
> Es gibt aktive USB-Verlängerungen. Hast du es damit schonmal probiert?

nein, habe ich noch nicht. Mich hat sowohl der Preis (ab 45 €) als auch 
die Tatsache, dass ich dann ein weiteres Netzteil im Serverschrank 
liegen habe, geschreckt.

Michael K. schrieb:
> Ich gebe zu, ich tue mir schwer, den Unterschied zwischen UART, TTL und
> RS232 zu finden - außer offensichtlich anderen Pegeln?

Ich habe aber langsam die Pegelunterscheide für mich rausgearbeitet, 
und denke, das Experiment mit 3,3 V-TTL über das Kabel spare ich mir 
besser (oben unter 1) genannt).

Damit stehe ich jetzt eigentlich vor den beiden Alternativen, das 
TTL-Signal der IR-Diode per RS232 oder per RS485 durchs CAT7-Kabel zu 
jagen.

Da ich definitiv keine eigenen Platinen ätzen oder SMD löten kann, suche 
ich schon nach geeigneten IR-Leseköpfen mit TTL-Ausgang, sowie 
geeigneten Boards für die Adapter. Mal sehen, wo ich lande...

DANKE!

von Flip B. (frickelfreak)


Bewertung
0 lesenswert
nicht lesenswert
Ich decodiere direkt am Zähler mit einem ESP und funke das an meine 
Datenbank über WIfi. Klappt sogar hinter der Blechtür des Zähleschranks. 
RS485 wäre die richtige methode für Kabelgebundenen Transfer, das geht 
über Kilometer.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Ja, das wäre in der Tat schön. Aber hier liegen 6 Betondecken 
dazwischen, und im Zählerschrank habe ich keine Stromversorgung. Sprich: 
ich muss über das CAT7-Kabel.

von Joachim B. (jar)


Bewertung
1 lesenswert
nicht lesenswert
Michael K. schrieb:
> Sprich:
> ich muss über das CAT7-Kabel.

hat genug Adern für Power und 100 Mbit oder RS232

von Sven L. (sven_rvbg)


Bewertung
0 lesenswert
nicht lesenswert
RR485 gibt es sogar schon fertig.

https://www.german-metering.de/auslesekopf-op-410.html

Keine Ahnung was es kostet.

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
USB kan nie mehr wie 5m, aber RS232 kann es. Und der Wandler ist ein 
Serial auf USB Wandler...

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

danke für die zahlreichen Tipps.

Ich habe mir einen IR-Lesekopf mit TTL-Pegel bestellt (SMD-Löten am 
jetzigen ist nicht meins). Wenn der eingetroffen ist, werde ich es 
zunächst mal ganz naiv mit TTL-Pegeln probieren.

Wenn das nicht funktioniert (wovon ich ausgehe), probiere ich es weiter 
mit zwei RS485-Halbduplex-Wandlern dazwischen.

Ich werde berichten.

Den USB-Verlängerer habe ich mir mal von innen angeschaut: der hat zwar 
keine eigene Speisung (ist damit nicht wirklich aktiv), scheint aber 
trotzdem eine Pegelerhöhung durchzuführen. Und da das ja schon nicht so 
stabil geklappt hat, werde ich auf RS232 verzichten.

Danke Euch!

von Pandur S. (jetztnicht)


Bewertung
3 lesenswert
nicht lesenswert
Das Reichweitenproblem bei USB basiert nicht den Pegeln, sondern auf der 
Verzoegerung.

von Joachim B. (jar)


Bewertung
1 lesenswert
nicht lesenswert
Pandur S. schrieb:
> Das Reichweitenproblem bei USB basiert nicht den Pegeln, sondern auf der
> Verzoegerung.

Ich meine mich zu erinnern das es eine Längenbegrenzung von 5m bei USB 
Kabel gibt.
Ich hatte vor sehr langer Zeit eine USB Cam die aber an einer passiven 
USB Verlängerung funktionierte, aber nicht an einer aktiven 
Verlängerung.
Mein wUSB und mein LAN USB kann aber nicht alle Arduino mit 115k im 
neuen Bootloader immer programmieren, deswegen habe ich den neuen 
Bootloader Optiboot runtergesetzt auf 57k6. Der Vorteil mehr flash 
bleibt, der Nachteil schnelleres flashen wird ersetzt zu längerer 
Flashzeit, dafür aber sicherer.

Aber wie immer es gibt unendlich viele Qualitäten und manchmal auch 
fehlerhafte Teile. Fast niemand hat von jedem problematischem Teil 
mehrere 100 Stück um statistisch belastbare Fakten zu generieren. 
Entweder das funktioniert oder nicht, das kann einem mit jedem gekauften 
Teil treffen fast immer ohne eine Aussage zu erhalten Einzelschicksal 
oder Systemmangel.
Manchmal funktionieren auch Teile die nach Spezifikation NICHT 
funktionieren sollten.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

am Smartmeter hängt jetzt ein IR-Lesekopf mit TTL-Pegeln, und 20m 
CAT7-Leitung weiter ein TTL->USB-Adapter im Serverschrank. Derzeit gibt 
es eine sehr überschaubare Zahl an CRC-Fehlern - etwa 1-2 pro Stunde, 
was bei 720 Messungen/Stunde durchaus okay ist.

Nichtsdestotrotz würde ich gerne RS485 ausprobieren. Nach etwas Lektüre 
stolpere ich sehr oft über Fragen zum Potential, GND-Verbindung etc.
Sehe ich richtig: das kann mir in meinem Fall egal sein, da ich ja 
GND/+5V neben den beiden Datenleitungen über das CAT7-Kabel schicke, 
also kein lokales Potential am Smartmeter vorhanden ist?

Gibt es Empfehlungen für UART->485-Wandler (bzw. die Gegenrichtung)? 
Irgendwie scheint es nur Aliexpress oder Direktimport aus China zu 
geben?

von Sven L. (sven_rvbg)


Bewertung
1 lesenswert
nicht lesenswert
Michael K. schrieb:
> Nichtsdestotrotz würde ich gerne RS485 ausprobieren. Nach etwas Lektüre
> stolpere ich sehr oft über Fragen zum Potential, GND-Verbindung etc.
> Sehe ich richtig: das kann mir in meinem Fall egal sein, da ich ja
> GND/+5V neben den beiden Datenleitungen über das CAT7-Kabel schicke,
> also kein lokales Potential am Smartmeter vorhanden ist?
Das ist ein heiß diskutiertes Thema, da Du Stromversorgung und Daten 
über die Leitung schickst, hast Du da aber eher sowieso keine Probleme.

Ich kenne aber auch Systeme, da werden nur Daten geschickt und es 
besteht keine Verbindung der GND-Potentiale miteinander!

In deinem Fall ist es eher RS422, da wird eine Strecke mit 2 Adern zum 
senden und eine mit 2 Adern zum empfangen der Daten genutzt. Zwei 
weitere Adern für die Stromversorgung! Würdest Du RS485 benutzen, dann 
wäre es Halbdublex und Du müsstest die Daten zwischenspeichern!

>
> Gibt es Empfehlungen für UART->485-Wandler (bzw. die Gegenrichtung)?
> Irgendwie scheint es nur Aliexpress oder Direktimport aus China zu
> geben?

Für die PC-Seite am besten etwas mit FTDI-Chipsatz, auf der anderen 
Seite die üblichen Konverter auf die TTL-Pegel.

Beispiele findet man da im Netz hinreichend, auch gut erklärt.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Danke!

Ich habe jetzt erstmal zwei RS485-Wandler mit DE/DI/RE/RO-Eingang 
bestellt. Ich benötige ja nur Simplex: vom Smartmeter zum Server.
Idee derzeit: Ein Standardboard mit CH340G an den Server hängen, den Tx 
des CH340G an das RO des einen Wandlers. Am anderen Ende des Buses dann 
den DI-Pin an den Rx des Lesekopfs. Den DE-Pin dauernd auf High, damit 
der Lesekopf Senderecht hat. Und natürlich die Stromversorgung komplett 
durchreichen.

Ich bin gespannt und werde berichten...

: Bearbeitet durch User
von Sven L. (sven_rvbg)


Bewertung
1 lesenswert
nicht lesenswert
Michael K. schrieb:
> Ich habe jetzt erstmal zwei RS485-Wandler mit DE/DI/RE/RO-Eingang
> bestellt. Ich benötige ja nur Simplex: vom Smartmeter zum Server.
Ach so, klar, der gibt ja nur SML aus.

> Idee derzeit: Ein Standardboard mit CH340G an den Server hängen, den Tx
> des CH340G an das RO des einen Wandlers.
Das scheint ja sowas ähnliches zu sein, wie die FTDI Teile, die ich 
meinete.

> Am anderen Ende des Buses dann den DI-Pin an den Rx des Lesekopfs. Den DE-Pin 
dauernd auf High, damit
> der Lesekopf Senderecht hat. Und natürlich die Stromversorgung komplett
> durchreichen.
Ja klar die Datenrichtungen richtig einstellen, dann wird das schon 
laufen!

Stromversorgung würde ich bei längeren Strecken aus dem Bauch raus eher 
mit höherer Spannung machen und dann einen entsprechenden Stepdown 
Wandler setzen.

Ok, meine RS485-Basteleien waren immer Relaiskarten, die habe ich 
sowieso mit 12V angefahren.
>
> Ich bin gespannt und werde berichten
ich auch!

von Sven L. (sven_rvbg)


Bewertung
1 lesenswert
nicht lesenswert
Ach so, eventuell wird Terminierung auf beiden Seiten des Busses 
wichtig!

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

so, seit 6 Stunden werkeln zwei RS485-Konverter auf der Strecke.

Aufbau ist damit:
IR-Lesekopf mit TTL-Pegeln => RS485-Adapter, nur sendend => CAT7-Kabel 
=> RS485-Adapter nur empfangend => UART-USB-Konverter

Funktion ist okay, allerdings keine Verbesserung gegenüber der direkten 
Übertragung per TTL (also ohne die beiden RS485-Adapter): in den 
vergangenen 6 Stunden gab es 7 CRC-Fehler. Was total verschmerzbar ist!

Ich werde noch zwei schöne Gehäuse besorgen und dann das Thema als 
erledigt abhaken.

Danke allen für die Tipps in die richtige Richtung!

von Flip B. (frickelfreak)


Bewertung
0 lesenswert
nicht lesenswert
ttl rs485 converter können nicht richtig auf senden umschalten.

von Michael K. (mkrebs)


Bewertung
0 lesenswert
nicht lesenswert
Flip B. schrieb:
> ttl rs485 converter können nicht richtig auf senden umschalten.

Ich habe den Adapter dauerhaft auf Senden (DE auf high, RE_inv ebenfalls 
auf high). Es ist kein UART->RS485-Adapter, der automatisch versucht, 
umzuschalten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.