Siemens TD-3511 auslesen

  • Hallo.


    Ich würde gerne meinen Stromzähler Siemens TD-3511 über IR auslesen.


    IR Kopf habe ich mir von Udo bestellt und fertig zusammen gebaut. Mein Problem nun ist das meine ersten Tests mit einem Notebook und dem IR Kopf nicht das erwartete Ergebnis liefern.


    Was funktioniert:
    Habe die Settings (Baud: 300, Data: 7, Stop: 1, Parity: Even) von folgendem Link übernommen (http://wiki.volkszaehler.org/h…er/edl-ehz/siemens_td3511) und wenn ich ein "/?!" sende meldet sich der Zähler mit der SN zurück. Mehr aber auch nicht


    Ich habe dann den Netzbetreiber angeschrieben und ein Dokument erhalten welche die genaue Spec beschreibt:


    Zitat

    2.2.2. Suchmodus
    Der AMIS-Zähler führt im 1-min-Takt eine Suchabfrage (SND_NKE auf die
    Primäradresse „240“) nach einem geeigneten Endgerät durch. Dieser muss das
    Telegramm mit einem Acknowledgement („E5h“) quittieren.





    Mit Umstellung der Bautrate auf 9600 bekomme auch die Suchabfrage "SND_NKE" angezeigt welche ich mit einem "E5h" quittieren soll (in 0,5 Sekunden). Ein Autosend von "E5h" oder "E5" (h steht für HEx oder?) in einer Schleife bewegt den Zähler aber nicht dazu einen Wert zu liefern.


    Was ich nun glaube...
    So einfach mit hterm wie bei anderen Zähler erhalte ich keine Werte da sich das Auslese Gerät als "M-Bus-Slave" anmelden muss und das geht über hterm nicht so einfach weil ein bestimmtes Protokoll eingehalten werden muss.


    Wie genau sendet man jetzt an einen MBus Master das ACK Signal?


    Grüße,
    Christian

  • Hallo.

    Zitat von Schnello_AT

    sende meldet sich der Zähler mit der SN zurück. Mehr aber auch nicht


    Guck' dir mal http://wiki.volkszaehler.org/h…wer/edl-ehz/elster_as1440 an, du musst den Zähler dann auffordern, mehr zu senden (und ggf. die Baudrate zu ändern). Manche Zähler senden ohne Aufforderung dann einfach alles bei 300Bd weiter, andere eben nicht..


    Der Zähler versteht scheinbar auch MBus zusätzlich zu Mode C... aber das wäre eine andere Baustelle.


    Ciao
    Michael

  • Hallo.


    Danke für deine Antwort. Leider ohne Erfolg.Ich hätte versucht wie beschrieben nach dem "Hallo" die B Rate umzustellen und dann einen Befehl zu senden. Juckt den nicht. Das einzige was ich einmal bekommen habe war ein ... ER0001 was ich als Error deute.


    Also weiter lesen und testen :)



    Nachtrag:
    Ich glaube auch nicht das die Daten so einfach ausgespuckt werden. Immerhin werden diese Verschlüsselt lt. Spec per AES 128 bit


    Grüße

  • Hallo.


    Eine Erfolgsmeldung:
    1040F03016


    wurde erfolgreich mit einem Autosend mit E5 (mit einer Pause von 0,4 Sekunden) bestätigt.
    Der Zähler hat nun folgende Nachricht gesendet:


    68 5F 5F 68 73 F0 5B 00 00 00 00 2D 4C 01 0E 00 00 50 05 1E 68 B1 D1 6E 87 0D AA 09 72 96 2D 60 2C F4 4F 6A 9E C6 FE 78 09 71 CD 49 D9 1B 9E 36 9F 7B 45 AF FB 57 E4 CF 98 DF 04 26 F9 B0 10 B0 BF B0 BE 01 CF 4C 6F F4 DC 65 BF 3B 6A 53 7A C7 CF 35 B5 00 53 E4 7E 33 4F 23 63 31 7F 42 BD 80 36 1A 52 41 16


    Was auch dem entspricht was in der Spec beschrieben wurde.




    Nur wie kommt man jetzt an die Daten aus dem verschlüsselten Payload?


    2.4.2.5. Verschlüsselung
    Die Daten auf der M-Bus-Draht-Verbindung werden mit symmetrischer
    Verschlüsselung (nach OMS, AES-128, „encryption mode 5“) gesichert [2].


    Hab nen Key bekommen aber noch keine Ahnung was ich damit tun soll :)


    Grüße

  • Hallo,


    ok, du bist ja schon weiter gekommen.
    Also die Baudrate sollte 9600bd sein.
    Das Frameformat sollte lt.M-Bus 8E1 sein.
    Der Zähler sendet, solange noch kein 'Endgerät' geantwortet hat, jede Minute die Anfrage: '10 40 F0 30 16' in hex.
    Das Endgerät muss einmal innerhalb von 0,5 sec auf diese Anfrage mit 'E5' in hex antworten.
    Daraufhin sendet der Zähler die verschlüsselten Daten. Dieser Datensatz beginnt mit '68'hex und Endet mit '16'hex.
    Dieser Datensatz muss wiederum innerhalb von 0,5 sec mit 'E5' in hex bestätigt werden.
    Daraufhin sendet der Zähler den nächsten Datensatz, der wiederum mit 'E5' in hex bestätigt werden muss.
    usw., usw....


    Wenn du Hterm die Daten in eine Datei schreiben lässt (also mehrere Datensätze) und mir deinen Key zukommen lässt (per PN)kann ich versuchen ein Programm zu schreiben um die Daten zu entschlüsseln.
    Dazu brauche ich dann noch die Zählerstände aus dem Zeitraum (ablesen vom Zähler).


    Gruß
    Udo

  • Hallo.


    Meine ersten Versuche mit openssl waren erfolglos. :)


    Zitat

    Wenn du Hterm die Daten in eine Datei schreiben lässt (also mehrere Datensätze) und mir deinen Key zukommen lässt (per PN)kann ich versuchen ein Programm zu schreiben um die Daten zu entschlüsseln.
    Dazu brauche ich dann noch die Zählerstände aus dem Zeitraum (ablesen vom Zähler).


    Hallo Udo. Danke für das Angebot einen Blick darauf zu werfen.


    Hab ein Log erstellt und beim letzten Datensatz war der Zählerstand 895,568 kWh. Wäre es hilfreich wenn ich ein Log erstellen würde wenn keine Leistung verbraucht wird? Key kommt dann per PN


    Grüße,
    Christian

    Dateien

    • LOG.txt

      (9,92 kB, 149 Mal heruntergeladen, zuletzt: )
  • Das ist ja auch nicht SSL verschlüsselt:
    "Die Daten auf der M-Bus-Draht-Verbindung werden mit symmetrischer Verschlüsselung (nach OMS, AES-128, „encryption mode 5“) gesichert"


    Gruß
    Udo

  • Hallo.


    Hmm. openssl würde aber aes-128-cbc können. Aber mehr als das bekomme ich nicht.:

    Code
    1. 32167:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:323:


    Weil es mich interessiert ob ich das ganze überhaupt richtig verstanden habe:


    Die Nachricht:

    Code
    1. 6853F05B000000002D4C010E240050050EE5D1105D5C02D807D3951749ED286EA4163BF7238946BBD1C2DCB3A570591532BD065632AD91C8926C66178E1114F9C0D35A96F7203DDAE2C35D49E204799ECF58DCBC88AFDCB60ACEBE362BCABE125216


    Wird aufgeschlüsselt in:


    verschlüsselter Payload:

    Code
    1. 0EE5D1105D5C02D807D3951749ED286EA4163BF7238946BBD1C2DCB3A570591532BD065632AD91C8926C66178E1114F9C0D35A96F7203DDAE2C35D49E204799ECF58DCBC88AFDCB60ACEBE362BCABE12


    der iv Key:

    Code
    1. 000000002D4C010E2424242424242424


    Stimmt das soweit?



    Grüße

  • Hallo.


    Ich hab gestern noch lange lange gesucht und ein online Tool gefunden (http://aes.online-domain-tools.com/)


    Gebe ich die Daten dort ein bekomme ich es entschlüsselt und die Daten sind meiner Meinung nach valid:


    Code
    1. 02 63 06 6d 4b 69 ee f5 16 19 04 03 3b bc 0d 00
    2. 04 83 3c 00 00 00 00 84 10 fb 82 73 f1 2b 00 00
    3. 84 10 fb 82 f3 3c a7 d2 01 00 04 2b 82 01 00 00
    4. 04 ab 3c 00 00 00 00 04 fb 14 00 00 00 00 04 fb
    5. 94 3c 9e 00 00 00 04 83 ff 04 00 00 00 00 2f 2f


    Einen Schritt weiter... wie ich das ganze über die shell machen kann... da stehen noch 1000 x ?


    Grüße