Wireless M-Bus für CUL

Begonnen von tostmann, 12 Juni 2014, 17:34:32

Vorheriges Thema - Nächstes Thema

kaihs

Manchmal verstehe ich meinen eigenen Code nicht mehr, sorry  :)

Versuche das verbose 5 mal bei dem IODev das die Nachrichten empfängt, also

attr MyCUL verbose 5


Zu dem Zeitpunkt wo die Logmeldung mit den Rohdaten ausgeben wird ist nämlich das WMBUS Device noch gar nicht bekannt.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

HarryHase

okay auf ein neues, da ist wohl jetzt was drin ...


Grüße hh

-----------------------

Icinger

Hi Leute,

leider, die Daten sind kein SML.
Auch nicht, wenn ich davon ausgehe, dass zB der Anfang fehlt (SML beginnt mit 1B1B1B1B01010101 und endet mit 1B1B1B1B gefolgt von einem CRC)

Aber falls mal wirklich SMLDaten wo auftauchen, kann ich für kaihs sicher ne Möglichkeit schaffen, die bei mir einzuschleusen :)

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

kaihs

Zitat von: HarryHase am 30 Oktober 2017, 22:14:05
okay auf ein neues, da ist wohl jetzt was drin ...

Ja, da ist jetzt eine Rohnachricht drin.
Damit komme ich jetzt einen Schritt weiter, scheitere dann aber beim nächsten.
In der neuesten WMBus Spezifikation ist das CI-Field 7f enthalten und bedeutet 'Langer Header, Payload ist im SML Format'.
D.h. die ersten 12 Bytes der bisherigen Payload sind noch Header. Dort steht allerdings drin, dass die Daten verschlüsselt sind, das ist laut Spec bei SML Payload auch erforderlich.
Allerdings ist laut Header der Encryption Mode 9 und dazu kann ich nichts finden. Da steht nur was von Mode 0, 4, 5, 7 und 13.
0 und 5 unterstütze ich, die anderen noch nicht.

Auf dem Zähler steht ja ein Public Key, mglw. ist das ein Hinweis darauf, dass Mode 13 (asymetric encryption) verwendet wird. Im Header steht aber 9?!

Wenn die Entschlüsselung gelänge wäre es gut möglich, dass der Payload dann sinnvolles SML wäre.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

HarryHase

Ich würde ja mal ganz stark auf OMS mode 7 tippen, auch wenn da 9 steht.

http://www.rng.de/cms/bedienungsanleitungen.html?file=tl_files/rng/downloads/Strom/Messstellenbetrieb/Bedienungsanleitung_eHZ-P-BIA-D-1.00.pdf

Zitat
Wireless M-Bus-Datenschnittstelle
Der Zähler verfügt über eine unidirektionale Wireless M-Bus-Datenschnittstelle
gemäß OMS Spec. Vol. 2, primäre Kommunikation, Ausgabe
4.0.2 und EN 13757 mit AES128 Verschlüsselung, Mode 7.
FÜR STROMKUNDEN
13
Über diese Funk-Datenschnittstelle werden in Abständen gemäß
EN 13757-5 entsprechend des eingestellten Nennübertragungsintervalls
die Funktelegramme synchron gemäß EN 13757-4 versendet,
so dass auch batteriebetriebene Wireless M-Bus-Repeater unterstützt
werden.
Diese unidirektionale Funk-Datenschnittstelle sendet je Übertragungsintervall
einen Datensatz (Push Betrieb) z. B. mit folgenden Inhalten im
M-Bus-Format:
• Sekundenindex
• Energiezählwerke
• aktuelle Wirkleistung
Grüße hh

-----------------------

kaihs

Es ist nicht 9, sondern 2, da hatte ich noch einen Fehler.
Aber 2 ist auch nicht spezifiziert.

Angenommen es ist 7, hast du denn einen AES Schlüssel für den Zähler?
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

HarryHase

oh  :-[  ich dachte den hätte ich schon gepostet, es sollte dieser sein e92869af718be31b0f7fff5ea13d7a11
Grüße hh

-----------------------

kaihs

Sorry, die Daten passen nicht zu Mode 7.

Da müsste auf jeden Fall ein sogenannter Extended Link Layer (ELL) vorkommen mit einem CI-Field 8C oder 8D und das ist nicht der Fall.
Ohne diese Daten ist eine Entschlüsselung nicht möglich.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

HarryHase

komisch komisch das ist ein EDL21 Zähler wie ihn eigentlich viel an den Erzeugungsanlagen haben müssten, das gibt es doch gar nicht dass das nicht zu knacken ist ...
Grüße hh

-----------------------

kaihs

Kann gut sein, dass ich da was nicht richtig verstehe.
Die öffentlich verfügbaren Spezifikationen gibt es in unterschiedlichen Versionen und verteilt über viele Dokumente. Da alles zusammen zu suchen ist ziemlich mühsam.

Vielleicht kannst du vom Hersteller noch Informationen bekommen? Hilfreich wäre ein Beispieldatensatz mit der Erklärung des Aufbaus, so wie in diesem Dokument.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

HarryHase

Ich frage mal nach, wenn nicht haue ich einen anderen Zähler rein die Easymeter WMBus funktionieren ja.
Grüße hh

-----------------------

bilbolodz

Sorry for English but I don't spean German. I've read whole topis using google translator. I'm trying to read some information from my water meter (at-wmbus-08) but FHEM is unable to decode it:

2017.11.07 16:13:19 5: CUL/RAW: /b89441486D0F9020003034CCEA019693
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA019693/2000C40001A390F05070B113477B0DC4
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4/E0A0306FF0A394C2A00C7902A009D829
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D829/9EC2A0071AA2B00A29C2D00C7722F001
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001/DD4404930001AAF31006E083200AC583
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583/200D2C35CB429006C092A00030000000
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A00030000000/0378E081F6D900000000020000000000
2017.11.07 16:13:19 5: CUL/RAW: b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A000300000000378E081F6D900000000020000000000/00023000000007C622400000000000

2017.11.07 16:13:19 4: CUL_Parse: nanoCul b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A000300000000378E081F6D90000000002000000000000023000000007C622400000000000
2017.11.07 16:13:19 5: nanoCul: dispatch b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A000300000000378E081F6D90000000002000000000000023000000007C622400000000000
2017.11.07 16:13:19 5: WMBUS raw msg b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A000300000000378E081F6D90000000002000000000000023000000007C622400000000000
2017.11.07 16:13:19 2: WMBUS Error during LinkLayer parse:message too short, expected 156, got 127 bytes
2017.11.07 16:13:19 3: nanoCul: Unknown code b89441486D0F9020003034CCEA0196932000C40001A390F05070B113477B0DC4E0A0306FF0A394C2A00C7902A009D8299EC2A0071AA2B00A29C2D00C7722F001DD4404930001AAF31006E083200AC583200D2C35CB429006C092A000300000000378E081F6D90000000002000000000000023000000007C622400000000000, help me!

kaihs

#462
Zitat von: bilbolodz am 07 November 2017, 16:33:31
Sorry for English but I don't spean German.

No problem.


2017.11.07 16:13:19 2: WMBUS Error during LinkLayer parse:message too short, expected 156, got 127 bytes


This is probably due to a too small receive buffer in culfw.
You can either increase the value for TTY_BUFSIZE and recompile/flash the culfw or you can flash the firmware from this post.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

bilbolodz

Zitat von: kaihs am 07 November 2017, 19:52:49

This is probably due to a too small receive buffer in culfw.
You can either increase the value for TTY_BUFSIZ and recompile/flash the culfw or you can flash the firmware from this post.
Yes. My board.h:


[..]
#define TTY_BUFSIZE             256
#define RCV_BUCKETS            2      //                 RAM: 25b * bucket
#define FULL_CC1100_PA                // PROGMEM:  108b
#define HAS_RAWSEND                   //
//#define HAS_FASTRF                    // PROGMEM:  468b  RAM:  1b
//#define HAS_ASKSIN
/* Intertechno Senden einschalten */
//#define HAS_INTERTECHNO
//#define HAS_TCM97001
/* Intertechno Empfang einschalten */
//#define HAS_IT
//#define HAS_REVOLT
#define HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT
#define HAS_CC1101_PLL_LOCK_CHECK_MSG
#define HAS_CC1101_PLL_LOCK_CHECK_MSG_SW
/* HAS_MBUS requires about 1kB RAM, if you want to use it you
   should consider disabling other unneeded features
   to avoid stack overflows
*/
#define HAS_MBUS

//#define HAS_ASKSIN_FUP
//#define HAS_MORITZ
//#define HAS_RWE
//#define HAS_ESA
//#define HAS_TX3
//#define HAS_UNIROLL
//#define HAS_HOERMANN
//#define HAS_HOERMANN_SEND
//#define HAS_MEMFN
//#define HAS_SOMFY_RTS
//#define HAS_FHT_80b                     // PROGMEM: 1374b, RAM: 90b
//#define HAS_FHT_8v                    // PROGMEM:  586b  RAM: 23b
//#define HAS_FHT_TF
//#define FHTBUF_SIZE          174      //                 RAM: 174b
//#define HAS_KOPP_FC
//#define HAS_ZWAVE   


kaihs

That's too small for your messages.
It must be at least 2*message size+1. So in your case 2*156+1=313
With a safety margin I'd set it to 350.

As the Atmega328 has only 2KB RAM make suure that there is no RAM overflow by disabling unneeded features.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation