Wireless M-Bus für CUL

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

Vorheriges Thema - Nächstes Thema

chbla

@kaihs, gibt es das Modul für meine Testzwecke auch irgendwo zum Download?
Will meine momentane FHEM installation nicht aendern, wuerde aber gerne im Buero die Daten testen.

Mihca

ZitatSorry, ist jetzt gefixed. Morgen dann per update erhältlich.

Danke, EnergyCam funktioniert jetzt wieder!

Grüße
Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

kaihs

Zitat von: chbla am 24 April 2019, 08:49:53
@kaihs, gibt es das Modul für meine Testzwecke auch irgendwo zum Download?
Will meine momentane FHEM installation nicht aendern, wuerde aber gerne im Buero die Daten testen.

Ja, das ist im svn wie alle anderen Module auch: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/WMBus.pm
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

zwehn

#753
Hallo,
spiele gerade ein backup zurück und hänge am Wmbus für meinen kamstrup multical fest.

beim Nachinstallieren von crypt mode ctr für aes key, hat cpan ein memory problem mit dem tar file:
39227 -rw-r--r-- 1 root root 1602823 Apr 30 22:37 CryptX-0.063.tar.gz

memory Probleme sind bei cpan wohl nicht ganz unbekannt. cpanm soll eine alternative sein, kenne mich aber nicht aus.

Würde mich über eine Hilfestellung freuen.

debian@beaglebone:~$ sudo cpan -i Crypt::Mode::CTR
[sudo] password for debian:
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 30 Apr 2019 20:17:03 GMT
Running install for module 'Crypt::Mode::CTR'
Checksum for /root/.cpan/sources/authors/id/M/MI/MIK/CryptX-0.063.tar.gz ok
Uncompressed /root/.cpan/sources/authors/id/M/MI/MIK/CryptX-0.063.tar.gz successfully
Using Tar:/bin/tar xf "CryptX-0.063.tar":
Couldn't untar CryptX-0.063.tar: 'Cannot allocate memory'
'YAML' not installed, will not store persistent state
  MIK/CryptX-0.063.tar.gz
  Had problems unarchiving. Please build manually
debian@beaglebone:~$ Couldn't untar CryptX-0.063.tar: 'Cannot allocate memory'

debian@beaglebone:~$ free
              total        used        free      shared  buff/cache   available
Mem:         494876      139288      177488        6648      178100      337812
Swap:             0           0           0
debian@beaglebone:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              220008       0    220008   0% /dev
tmpfs              49488    6392     43096  13% /run
/dev/mmcblk1p1   3607276 2451028    953292  72% /
tmpfs             247436       0    247436   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             247436       0    247436   0% /sys/fs/cgroup
tmpfs              49484       0     49484   0% /run/user/1000
debian@beaglebone:~$

Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

kaihs

Zitat von: zwehn am 30 April 2019, 23:23:51
Hallo,
spiele gerade ein backup zurück und hänge am Wmbus für meinen kamstrup multical fest.

beim Nachinstallieren von crypt mode ctr für aes key, hat cpan ein memory problem mit dem tar file:
39227 -rw-r--r-- 1 root root 1602823 Apr 30 22:37 CryptX-0.063.tar.gz

memory Probleme sind bei cpan wohl nicht ganz unbekannt. cpanm soll eine alternative sein, kenne mich aber nicht aus.

Würde mich über eine Hilfestellung freuen.

Das hat nicht direkt was mit WMBus zu tun, wahrscheinlich bekommst du in einem anderen Unterforum mehr Hilfe.
Dein Beaglebone hat nur 512MB RAM, richtig?

Du könntest versuchen während der Installation unnötige Prozesse zu stoppen und zusätzlich swap zu aktivieren.
Dadurch wird es wahrscheinlich um einiges langsamer aber die Installation läuft vielleicht durch.
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

chbla

Noch eine Folgefrage, ich bin zwar schon etwas weiter, wundere mich gerade wie ich mit dem oben geposteten Key von:

29442423850721581115A2310700131A275D4861B0BEF97ECD4A50AFE74F16A014FF1F8FB9308DD9E26F
auf
29442423850721581115a2310700134b89bb060095ac0600612401010101778506006123d75f06006122

komme - ist das nicht einfach AES CBC verschluesselt?
Was verwende ich da fuer einen IV, zb bei http://aes.online-domain-tools.com/ ?

Danke fuer eure Hilfe!

kaihs

Zitat von: chbla am 10 Mai 2019, 09:43:47
Noch eine Folgefrage, ich bin zwar schon etwas weiter, wundere mich gerade wie ich mit dem oben geposteten Key von:

29442423850721581115A2310700131A275D4861B0BEF97ECD4A50AFE74F16A014FF1F8FB9308DD9E26F
auf
29442423850721581115a2310700134b89bb060095ac0600612401010101778506006123d75f06006122

komme - ist das nicht einfach AES CBC verschluesselt?
Was verwende ich da fuer einen IV, zb bei http://aes.online-domain-tools.com/ ?

Danke fuer eure Hilfe!

Es sind nicht alle Daten verschlüsselt, nur der Application Layer, der Link Layer am Anfang nicht.

Wie der IV aufgebaut ist hängt vom Encryption Mode ab. Der gebräuchlichste ist wohl Mode 5, dafür steht das auf Seite 26 in OMS-Spec_Vol2_Primary_v301.pdf
Eine Implementierung findest du in sub decrypt in WMBus.pm
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

chbla

#757
Zitat von: kaihs am 11 Mai 2019, 20:26:49
Es sind nicht alle Daten verschlüsselt, nur der Application Layer, der Link Layer am Anfang nicht.

Wie der IV aufgebaut ist hängt vom Encryption Mode ab. Der gebräuchlichste ist wohl Mode 5, dafür steht das auf Seite 26 in OMS-Spec_Vol2_Primary_v301.pdf
Eine Implementierung findest du in sub decrypt in WMBus.pm

Die Daten oben habe ich falsch kopiert, richtig ist das Telegramm:
19442423850747321215A2214900139DFA2186B456C843AF6ACC

Habs bisher noch nicht hin bekommen - blaxbox meinte ja oben bei diesen Daten handelt es sich um aeltere Telegramme
bevor es OMS gab.

Er entschluesselt das so:
https://gist.github.com/solars/dd3b37c34789ab1c39ba3a4b3d2fb5cd

Meine Perl Kenntnisse sind aber zu Bescheiden (ich teste das in Elixir/Erlang) um das zu deuten.
Wenn ich nach WMBus.pl gehe waere der IV: 2423850721581115
Und da wird dann Padding verwendet - bin nicht sicher wie ich das bei den Online Decryption Tools testen kann..

thomasg

Moin. Bei uns im außenliegenden Wasserschacht wurde ein Digitaler funkbasierter Wasserzähler installiert - nun würde ich den Zählerstand gerne auslesen, oder immer nach draußen in den Schacht zu müssen. Kann ich das mit dem CUL machen? Nach meinem Verständnis werden die Zählerdaten ab und zu (zumindest täglich einmal?) gesendet aber verschlüsselt - und ich muss den Schlüssel irgendwie rausbekommen.

Hier die Zählerdaten:

Diehl Metering
Hydrus
Type 171A
868, OMS
R160
MAP 16
class 2
T30, IP68

Gibt es bei dem Modell die Chance, den Schlüssel rauszubekommen?

Danke


blaxbox

Zitat von: kaihs am 21 April 2019, 15:13:14
Du scheinst dich mit WMBus ja sehr gut auszukennen und hast ja auch herstellerspezifische Informationen. Hast du beruflich damit zu tun?

Leider ist es ja so, dass viele Hersteller sich eine eigene Kodierung ausdenken. Ich möchte die zwar prinzipiell im WMBus Modul unterstützen, allerdings wird der Code durch die ganzen Sonderfälle schnell (noch) unübersichtlicher.
Die herstellerspezifischen Teile würde ich daher gerne von der Implementierung des Standards trennen. Lohn sich aber nur, wenn ein paar Hersteller zusammenkommen.
Bisher ist das hauptsächlich Kamstrup und mit deinen Informationen vielleicht Hydrometer.
Hast du noch Informationen zu anderen herstellerspezifischen Protokollen?

Hy,
ja habe beruflich auch damit zu tun. In unserem Umfeld sind es halt ziemlich viele Zähler, welche aus dem ehemaligen Hydrometer (jetzt Diehl) Umfeld stammen. Das sind zum größten Teil Wasser (Kalt+Warm), Wärme und Gaszähler. Die Gaszähler laufen dann halt unter der Kennung "ELS", benutzen aber dasselbe Encoding wie die anderen Zähler. Die Wasser+Heizungszähler sind in der älteren Generation noch mit HYD als Herstellerkennung unterwegs. Die "neuen" dann unter DME (Diehlmetering). Der Unterschied ist, dass die mit der Kennung HYD mit den "Standard Radio Telegram" und dem "Real Data Radiotelegram" senden. Die mit der Kennung "DME" entsprechen eigentlich schon dem OMS-Standard mit dem Encrytionmode 5 - der (meistens) verwendete (Einheits-)Schlüssel, welcher halt quasi zur Hälfte der AES Schlüssel ist (für den AES Schlüssel wurde "alte" Schlüssel einfach verdoppelt, sprich hinten nocheinmal angehängt), macht die Notwendigkeit der Encryption halt schon fraglich. Aber egal, sie existiert. Bis jetzt kenne ich auch nur einige wenige Zähler mit Einzelverschlüsselungen, wobei diese (scheinbar), wenn man eine ganze Serie ansieht, auch wieder nachrechenbar sind....

Wegen weiterer herstellerspezifischer Dinge: Zur Zeit bin ich noch an den Techem (Kennung TCH) Heizkostenverteilern dran, da hier auch einige tausende im Einsatz sind. Leider scheinen die aber ein vollkommen eigenes Telegrammformat zu verwenden, hinter das ich bis jetzt nur zum Teil gekommen bin. Ich kann dich diesbezüglich aber am Stand halten.

lg

kaihs

Für die Techem WZ gibt es schon ein entsprechendes Modul von hermannj. Kannst da ja mal reinschauen um was über das encoding zu erfahren.
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

herrmannj

Zitat von: blaxbox am 24 Mai 2019, 11:09:15
... Zur Zeit bin ich noch an den Techem (Kennung TCH) Heizkostenverteilern dran, da hier auch einige tausende im Einsatz sind.
Techem hat ca 28% Marktanteil, etwas über "einige tausende" device ;) HKV, Volumenzähler und in Teilen die SD werden bereits unterstützt.

maestron

Guten Tag miteinander

Mein erstes Post hier, cool das es dieses Forum gibt - Danke an alle...

Mein Vorhaben: Letrika Solarwechselrichter auslesen. Von meinen vier Panel performt eines nicht; nur welches? Habe mir dafür einen nanocul zusammengelötet und mittels eigenem hex sowie diesen aus Post 695 und 698 geflasht. Ich bekomme mit keiner Version ein RAW rein, bin mir aber nicht sicher ob mein nanocul wirklich funktionier. Hier mal mein List:

Internals:
   CMDS       BbCeFfGKlMRTtVWXx
   Clients    :WMBUS:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:STACKABLE:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 0000
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   FD         12
   FHTID      0000
   FUUID      5cf7537a-f33f-793a-b4ca-3357b3db39aa10b3
   NAME       nanoCUL
   NR         70
   PARTIAL   
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.67 nanoCUL868
   initString X21
brs
   MatchList:
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     J:WMBUS    ^b.*
     M:TSSTACKED ^\*
     N:STACKABLE ^\*
   READINGS:
     2019-06-05 07:49:45   ccconf          freq:868.300MHz bWidth:270KHz rAmpl:36dB sens:12dB
     2019-06-05 07:34:40   cmds             B b C e F f G K l M R T t V W X x
     2019-06-05 07:34:40   state           Initialized
Attributes:
   rfmode     WMBus_S



Meine Fragen:
Um den nanocul im 868 mhz Bereich zu testen, kann ein homematic enable hex erstellt werden und mit irgendwelchen triggern (z.b. Funkschalter) getestet werden?
Die Letrika Wechselrichter benötigen ja einen Anstups (aus Post 707)
set nanoCUL868_WM raw bss105BB4B0986300000102DD72510C7900000000768080
Wie kann diese auf meine Wechselrichter umcodiert werden?

Bin gespannt auf die Rückmeldung(en), Danke

OnkelTom27

#763
Zitat von: blaxbox am 18 April 2019, 12:16:46
Hy,

naja, den bekommt man schon heraus - habs ja durchlaufen lassen u. den Schlüssel dann erhalten. Wollte ihn nur hier nicht posten, da ich nicht weiß wie hier diverse Hersteller/Betreiber darauf reagieren, da dies offenbar ein häufig verwendeter Schlüssel ist (ich habe das mit etlichen in diesem Forum geposteten Telegrammen versucht u. habe sie entschlüsseln können).

Nach einer Suche in diesem Forum musste ich feststellen, dass dies scheinbar schon wer gemacht hat (nur halt für den AES-KEY bei Encryptionmode 5):

https://forum.fhem.de/index.php/topic,33068.msg737335.html#msg737335

Da ein "standard radio telegram" und "real data radio telegram" nur mit 64 Bit u. nicht mit 128 Bit "verschlüsselt" sind ist der in diesem Beitrag angegebene Schlüssel einfach nur die "Hälfte" (bei dem in diesem Beitrag angegebene Schlüssel sind die ersten 64 Bit (offensichtlich) einfach nochmals eingefügt worden, damit der Schlüssel 128 Bit hat).

Die Entschlüsselung funktioniert allerdings nicht mit dem WMBus.pm, da dies ja wie gesagt (scheinbar) ein wenig Herstellerspezifisch ist u. einige Dinge (wie die Seriennummer + version + medium) verdreht drinnen sind.
Ich habe das gestern schnell ein kleines perl-script geschrieben, mit welchem Du den Schlüssel ausprobieren kannst (geht aber nur für "standard radio telegram", also alles was im CI-Feld 0xA0 - 0xA7 stehen hat, für "real data radio telegramm" (CI=0x7A) sieht das einwenig anders aus).

Einfach mit "-s <TELEGRAM> -k <KEY>" aufrufen.


@BlaxBox: Wie kann ich beim DIEHL Wasserzähler (Hydrus Type 171A) den AES-Key errechnen? Ist das machbar? Der Wasserverband will den Key aus "rechtlichen" Gründen nicht rausrücken  :(.

Zählerstand: 16,163 m³
b4E44A5116257306470072A227AE70040056A554BE99667BB2D6C065059114E8C4AEE580403C01FD0D9B3947B9A4694DA8CA441D812E63804296C74014B39CF6D96BEC9C3585673F8B32F7D2F7E3F2C46C7A194497AC415F1620A7988

b 4E44 A5 11 62573064 70 07 2A 22 7A A9 00 40 05FA399BE1
   1  2   3   4  5  6  7  8   9  10 11 12 13 14 15 16

Byte 4-3: 11A5 = Diehl (DME)
Byte 8-5: Zählernummer (64305762)
Byte 13: 0x7A    CI-Field ?

Besten Dank!


HarryHase

kann man irgeendwie dir Raw readings lesen und dann weiter verarbeiten, z.B. auf einen mqtt puschen?

Hat da jemand eine Idee oder Ansatz wo ich mich da einlesen kann?
Grüße hh

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