Forum: Mikrocontroller und Digitale Elektronik Digitaler Stromzähler DTZ541-ZDBA SML-Protokoll


von Lars (avrmen)


Lesenswert?

Hallo,

mir ist bewusst das es zu diesem Thema bereits eine ganze Menge an 
Beiträgen gibt, aber leider hat mir keiner Wirklich weiter geholfen. 
Daher wollte ich es einfach mal versuchen mein Problem zu formulieren.

Generell würde ich gerne meinen DTZ541-ZDBA über die IR-Schnittstelle 
auslesen.
Hierzu habe ich mir bei Amazon einen IR-Lesekopf bestellt und über einen 
FDTI Adapter an einen Raspberry Pi angeschlossen.

Ich empfange auch Daten (ich denke es sind SML Daten in HEX) kann diese 
aber nicht decodieren.
Wenn ich im Netzt nach der Spezifikation suche kommen ich immer nur die 
Version 1.0 --> (Technische Richtlinie BSI TR-03109-1) ist aber die 
Version 1.0

In dem Handbuch zu meinem digitalen Stromzähler steht das die Version 
1.04 verwendet wird.

Ich würde hier im 1. Schritt ungern den kompletten Datenstrom rein 
kopieren da ich nicht genau weiß was da alles an Daten drin enthalten 
ist. Ich hoffe ihr habt dafür Verständnis.
Ich Empfange aber so etwas

1b1b1b1b1a63....
oder
77070100010802...

scheint also nicht kompletter Müll zu sein. Denke ich zumindest.
Baudrate ist 96008N1

Kann mir jemand helfen?

Danke & Grüße

: Bearbeitet durch User
von Rüdiger B. (rbruns)


Lesenswert?

Sieht doch richtig aus, 1.04 etc ist dort verlinkt:
https://de.wikipedia.org/wiki/Smart_Message_Language

von Lars (avrmen)


Lesenswert?

Vielen Dank! Ich schau mir das einmal an. Ich hoffe falls sich Fragen 
ergeben darf ich mich noch mal hier melden.

Grüße und noch eine schöne Restwoche

von Lars (avrmen)


Lesenswert?

Hallo,

Bei der SML Nachricht in der es um die Zaehler ID geht bekomme ich 
zumindest ab und zu einmal den erwarteten Wert
und die erwartete Struktur der Nachricht. Daher glaube ich das ich 
anhand dieser Nachricht meine ersten Fragen am besten formulieren kann.

76
  01
  01
  07 xx xx xx xx xx xx
  xx xx xx xx xx xx xx xx xx xx xx
  01
  01

1. Die 0x76 Ich meine verstanden zu haben das die 0x76 angibt das eine 
Liste kommt, welche mit 6 Elemente enthält. richtig?
  (Wird dieses Element bereits mitgezählt oder nicht?)

2. Welches Element gibt nun an das dies die Nachricht für die Zähler ID 
ist? Steht das dann in einer anderen Norm/Definition?
3. Mir ist auch nicht wirklich klar wie und wo es steht wie die Daten 
der Nachricht genau zu interpretieren sind,
  also ob es integer8, integer16 oder integer32 sind.

Tatsächlich habe ich diese Nachricht auch nur einmal in dieser Form 
erhalten. Ansonsten bekomme ich ähnliche Nachrichten welche aber gefühlt 
immer Datenfehler/Übertragungsfehler enthalten. Ist das bei euch auch 
so? Als das ca. nur jede 30. Nachricht sauber und ordentlich ist?

Vielen Dank & Gruß

von Sebastian W. (wangnick)


Lesenswert?

Lars schrieb:
> Ich meine verstanden zu haben das die 0x76 angibt das eine
> Liste kommt, welche mit 6 Elemente enthält. richtig?

Richtig.

Lars schrieb:
> Welches Element gibt nun an das dies die Nachricht für die Zähler ID
> ist?

Wenn du aus dem Datenstrom irgendwo einen Ausschnitt herausgreifst, dann 
kannst du den nicht mehr definitiv mit der ASN.1-Grammatik korrelieren. 
Deine 0x76 ist wahrscheinlich der Beginn einer Liste mit 6 Elementen, 
wahrscheinlich eine SML_PublicOpen.Res innerhalb eines SML_MessageBody 
einer SML_Message. Aber die 0x76 könnte auch eine andere Liste sein, zum 
Beispiel die SML_Message selbst, oder sogar Teil der Nutzdaten. Du musst 
immer vom Beginn der Nachricht an das Binary Encoding 
auseinanderpfriemeln, und dabei Schritt für Schritt die Dekodierung der 
Datentypen parallel zur Grammatik durchführen.

Lars schrieb:
> Mir ist auch nicht wirklich klar wie und wo es steht wie die Daten
> der Nachricht genau zu interpretieren sind,
>   also ob es integer8, integer16 oder integer32 sind.

Das gibt schon das TL-Feld an. Siehe 
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03109/TR-03109-1_Anlage_Feinspezifikation_Drahtgebundene_LMN-Schnittstelle_Teilb.pdf?__blob=publicationFile&v=1, 
"Kodierung der Datentypen", 6.2.2.

Lars schrieb:
> Tatsächlich habe ich diese Nachricht auch nur einmal in dieser Form
> erhalten. Ansonsten bekomme ich ähnliche Nachrichten welche aber gefühlt
> immer Datenfehler/Übertragungsfehler enthalten. Ist das bei euch auch
> so? Als das ca. nur jede 30. Nachricht sauber und ordentlich ist?

Nein. Bei mir sind alle Nachrichten sauber.

LG, Sebastian

: Bearbeitet durch User
von Manfred (manfredg)


Angehängte Dateien:

Lesenswert?

Hallo,
zum Auslesen meines digitalen Stomzählers, der mir wegen der PV-Anlage
eingebaut wurde habe ich mir eine kleine Schaltung aufgebaut, mit einem
Atmega8 als Controller und einer Basic-Software, die mir die
im SML-Teleramm codierbaren Daten auf einem 2x16 LCD-Display anzeigt.
Das schaltbild und auch die Software versuche ich mal hier zu posten,
wenns denn klappt..
lg, Manfred

von Manfred (manfredg)


Angehängte Dateien:

Lesenswert?

Hallo,
Meine Software habe ich mit dem Bascom-Compiler geschrieben, das liest 
sich einfach und bedarf wenig Erklärung.
lg, Manfred

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Manfred schrieb:
> Das schaltbild

Wenn das nicht irgendwie versteckt durch Netz-Label passiert, fehlt eine 
Verbindung zwischen VCC und AVCC.
Der Mega8 braucht AVCC, auch wenn der ADC nicht verwendet wird. Ohne die 
Verbindung wird PortC irgendwie undefiniert parasitär versorgt, unschön.

von Georg G. (df2au)


Lesenswert?

Nach meinen Unterlagen beginnt ein Telegramm mit "1B, 1B, 1B, 1B, 1, 1, 
1, 1"  und endet mit "1B, 1B, 1B, 1B, 1A" gefolgt von der CRC16 
Prüfsumme. Wenn du stumpf nach 400 Bytes den Anker wirfst, kann bei 
unpassendem Timing dein Programm in den Wald gehen. Es ist auch 
suboptimal, das Telegramm mit festen Positionen für die Daten 
auszuwerten. Sinnvoller wäre es, das Telegramm von vorn nach hinten 
aufzudröseln und die Message Typen auszuwerten.
Eine schöne ausführliche Definition des SML Protokolls findest du beim 
BSI Technische Richtlinie BSI TR-03109-1
Anlage IV: Feinspezifikation „Drahtgebundene LMN-Schnittstelle“
Teil b: „SML – Smart Message Language“

von Manfred (manfredg)


Lesenswert?

Hallo Ernst, Hallo Georg,
Ja, die vergessene  Drossel ist wohl ein Zeichenfehler, und der Rest 
funktioniert einfach so.
Die Startsequenz geht auch mit allen 8 Bytes ,ich hatte das auch in 
anderen Versionen laufen, im Prinzip ist es ja das Gleiche.
Bislang ist mir noch nicht aufgefallen, dass die Informationen an 
anderen
Speicherstellen erscheinen, aber ich werde das mal beobachten..
Danke fürs kommentieren, man kann ja immer nochmal was lernen ..
vG, Manfred

von Peter R. (peter_r689)


Lesenswert?

Hallo,

hier steht eine ganze Menge über die Auslesung von Stromzählern.
Beitrag "Digitale Stromzähler auslesen und in DB speichern"

Gruß Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.