Wireless M-Bus für CUL

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

Vorheriges Thema - Nächstes Thema

bm7777

Könntet ihr mir eine Hinweis geben was ich jetzt machen muss. Kann ich das HAS define selber setzen ? Gibt es eine Anleitung ? Oder muss ich eine neuere Firmware aufspielen ?
Raspberry Pi Mod. B
CUL-Stick V3.4

kossmann

#31
Firmware wirst du selbst neu aufspielen müssen, vorher entsprechend kompilieren - aber wie das HAS-Zeug genau gesetzt wird, kann ich dir auch nicht sagen. Irgendwie in der entsprechenden board.h (CUL_VER_161/Devices/SCC/board.h).

Ich habe das Logging mal per FHEM abgefangen (irgendwas stimmt da aber noch nicht bei set MyCUL raw brs), sieht heute Nacht wie folgt aus:

2014.07.29 21:44:43.345 4: CUL_Parse: MyCUL b2C446532029470584107016A7A12000000046D2F14DD1701FD0C053263896CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 00:51:07.797 4: CUL_Parse: MyCUL b374465B2118222001604DDD67A13000000046D220DDE1701FD0C0632B2DB6CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014.07.30 00:53:39.874 4: CUL_Parse: MyCUL b2C4465320194705841077E977A13000000046D3617DD1701FD0C0532D3E46CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 01:21:51.312 4: CUL_Parse: MyCUL b2C446532029470584107016A7A13000000046D1900DE1701FD0C053220106CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 04:28:43.614 4: CUL_Parse: MyCUL b374465B2118222001604DDD67A14000000046D0B11DE1701FD0C063226E16CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014.07.30 04:58:08.858 4: CUL_Parse: MyCUL b2C4465320194705841077E977A14000000046D3B03DE1701FD0C05323E716CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 04:58:11.309 4: CUL_Parse: MyCUL b2C446532029470584107016A7A14000000046D0104DE1701FD0C0532A0DE6CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 08:26:02.466 4: CUL_Parse: MyCUL b374465B2118222001604DDD67A15000000046D0915DE1701FD0C063269C66CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014.07.30 08:57:50.287 4: CUL_Parse: MyCUL b2C446532029470584107016A7A15000000046D0108DE1701FD0C053269086CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 09:17:38.841 4: CUL_Parse: MyCUL b2C4465320194705841077E977A15000000046D1208DE1701FD0C053203356CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 12:24:09.364 4: CUL_Parse: MyCUL b374465B2118222001604DDD67A16000000046D0701DF1701FD0C0632AABD6CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014.07.30 12:54:33.257 4: CUL_Parse: MyCUL b2C446532029470584107016A7A16000000046D390BDE1701FD0C053285706CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014.07.30 13:35:48.833 4: CUL_Parse: MyCUL b2C4465320194705841077E977A16000000046D250CDE1701FD0C0532CFA56CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6

kaihs

Die langen Pakete sind von einem Wärmezähler.

Hier mal ein paar Quellen zu (Wireless) M-Bus:

M-Bus http://www.m-bus.com/files/MBDOC48.PDF
Wireless M-Bus http://oms-group.org/download4all/
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

kaihs

Zitat von: bm7777 am 30 Juli 2014, 08:42:18
Könntet ihr mir eine Hinweis geben was ich jetzt machen muss. Kann ich das HAS define selber setzen ? Gibt es eine Anleitung ? Oder muss ich eine neuere Firmware aufspielen ?

Mit dem define alleine ist es nicht getan, da müssen auch noch ein paar Zeilen Code hinzugefügt werden.
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

kaihs

Zitat von: kaihs am 30 Juli 2014, 18:43:16
Mit dem define alleine ist es nicht getan, da müssen auch noch ein paar Zeilen Code hinzugefügt werden.

Ich habe gerade (Revision 441) die notwendigen Anpassungen für das rpiaddon in das culfw Repository eingecheckt.

Davon sollten sich die notwendigen Anpassungen für SCC ableiten lassen.
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

kossmann

Zitat von: kaihs am 30 Juli 2014, 18:42:17
Die langen Pakete sind von einem Wärmezähler

Sehr gut, zufällig ein Qundis mit SN 00228211 mit einem Stand von 9537 kWh (Stichtag 01.01., Stand 8456 kWh) dabei?

Wie weit bist du denn mit dem FHEM-Modul? Fängst du da gerade erst an oder ist schon eine Beta verfügbar?

kaihs

Ja, es ist ein Paket von genau dem Wärmezähler.

Das Modul ist noch nicht so weit, habe leider nicht so viel Zeit dafür. Aber bis zum Beginn der Heizperiode soll es wohl was werden  ;)
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

kossmann

Wenn ich die Pakete jetzt noch dekodieren könnte, hätte ich was zur Überbrückung bis zum Beta-Status. Hast du da eventuell einen PHP-Codeblock, welcher aus den Meldungen die Seriennummer und den aktuellen Zählerstand extrahieren kann? Das würde mir "unendlich" helfen ::)

Mit den Dokus befasse ich mich morgen mal.

kaihs

Wenn es denn so dringend ist, anbei mein erstes Testskript, ist allerdings in perl.

Momentan kann das nur den Header dekodieren, Zählerstand ist gerade kaputt.

Das Paket (ohne b) muss du in die Zeile mit my $msg = '...'; einsetzen.

Dann das Skript mit perl -f unpack.pl starten.
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

kossmann

Danke, gucke ich mir morgen auch mal an - sobald du eine Idee hast, wie man (wieder) an den Zählerstand kommt, halte mich/uns hier auf dem Laufenden.

Brauchst du noch weitere Zeilen? Die würde ich dann liefern.

kossmann

Was mich wundert: Mein Kaltwasserzähler (SN 58709401) hat sich in den letzten 36 Stunden 9 mal gemeldet, der Warmwasserzähler (SN 58709292) kein einziges mal, dafür aber der Wasserzähler (auch Kaltwasser?) eines Nachbarn (SN 58709402) 8 mal. Wärmemengenzähler empfange ich nur meinen eigenen (SN 228211) - 9 mal.

Von außen sehen die Funkmodule des Kalt- und Warmwasserzählers identisch aus (Qunids WFZ166.MO). Liegt hier ggf. noch ein Problem in der Firmware?

kossmann

Ich habe mir mal einen neuen CUL868 bestellt, damit dieser exklusiv bei mir für M-Bus zur Verfügung steht. Wenn es bei dir ´was neues gibt, bitte melden ;)

kaihs

Die gute Nachricht: Eine erste Version des WMBus Moduls ist fertig.
Das kann die Beispieldaten aus des Spezifikation sowie die Daten einer EnergyCam fehlerfrei dekodieren und unterstützt auch die Entschlüsselung.
Beispielausgabe für einen Wärmemengenmesser:

Manufacturer 2324 HYD
IdentNumber 12345678
Version 42
Type 4 Heat
1. StorageNo 0 VIF_ELECTRIC_ENERGY 2850427000 Wh
2. StorageNo 0 VIF_VOLUME 703.476 m³
3. StorageNo 1 VIF_ELECTRIC_ENERGY 1445419000 Wh
4. StorageNo 1 VIF_TIME_POINT_DATE 2007-12-31
5. StorageNo 0 VIF_VOLUME_FLOW 0.127 m³/h
6. StorageNo 0 VIF_ELECTRIC_POWER 329.7 W
7. StorageNo 0 VIF_FLOW_TEMP 44.3 °C
8. StorageNo 0 VIF_RETURN_TEMP 25.1 °C
9. StorageNo 0 VIF_ERROR_FLAGS 0



Die schlechte Nachricht: Die Daten deiner Uhren lassen sich nicht vernünftig auswerten, da kommt dann sowas raus:

Manufacturer b265 lSE
IdentNumber 228211
Version 22
Type 4 Heat
1. StorageNo 0 VIF_TIME_POINT_DATE_TIME 2014-7-29 00:31
2. StorageNo 0 VIF_MODEL_VERSION 6
3. StorageNo 0 VIF_TIME_POINT_DATE invalid
4 MANUFACTURER SPECIFIC


D.h. außer den Daten aus dem Header und dem Zeitstempel ist nichts vernünftiges dabei, die wichtigen Daten sind scheinbar herstellerspezifisch codiert.
Ein Übertragungsfehler liegt nicht vor, die Checksummen passen alle.
Vielleicht habe ich da noch was nicht richtig verstanden, aber ich habe die Daten auch noch mal manuell dekodiert, kommt das selbe bei raus.

Anbei das Modul sowie ein Testprogramm.

Das Modul benötigt die perl Module Digest::CRC, Crypt:CBC und Crypt::OpenSSL::AES, die müssen mglw. vorher erst installiert werden, z. B. per cpan.

Der nächste Schritt ist jetzt das fhem Modul das das WMBus.pm verwendet.

Gruß,

Kai
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

kossmann

Das hört sich ja leider (für mich) nur "mittel-gut" an. Ich kann Qundis ja morgen mal anschreiben, ob sie sich bei ihrem "Q walk-by" an den "wireless M-Bus" Standard halten oder ob da sonst irgendwas "codiert" wird. Ich befürchte jedoch, dass die Antwort spärlich ausfallen wird.

Ich danke auf jeden Fall für deine Mühen, warte auf meinen CUL868 und hoffe auf andere User mit Qundis-Zählern, die vielleicht Licht in´s Dunkle bringen.

kaihs

Ich werde Qundis auch kontaktieren, vielleicht verraten die einem 'Entwickler' was.

Ich habe auch einen Wärmemengenzähler von Qundis, aber noch ohne Funk. Das es aber Nachrüstmodule für Q-WalkBy gibt besteht evtl. Hoffnung das ich den mal eingebunden bekomme.

Gruß,

Kai
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