Wireless M-Bus für CUL

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

Vorheriges Thema - Nächstes Thema

kossmann

Ich habe mich heute auch mal ernsthaft ´ran gesetzt und mache bei DIF/VIF erst mal Pause bis morgen. Aber ich finde, die Excel-Tabelle sieht schon mal ganz gut aus (oder soll ich hier lieber auf OpenOffice gehen) 8)

kaihs

Excel kann ich auch lesen, aber vielleicht wäre was wie Google Docs noch eine Idee, dann könnte man gemeinsam daran arbeiten.

Ich habe das Modul gerade so erweitert, dass es auch bei unbekannten/manufacturer specific Daten diese ausgibt.
Bei manufacturer specific als hex String.

Das sollte euch helfen, weil ihr dann genau diese Daten gezielt loggen und analysieren könnt.
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

mdewendt

Hallo.

Nach meinem letzten Update von Fhem heute morgen passt die Uhrzeit jetzt :-)
2014-08-22_10:05:56 WMBUS_LSE_60807772_24_8 1:value: 2014-08-22 09:08
Wie überall beschrieben als Winterzeit.

Was ist der Unterschied zwischen VIF_TIME_POINT_DATE_TIME (die passt jetzt bei mir siehe oben) und VIF_TIME_POINT_DATE (da steht bei mir immer invalid)

Das mit dem hex dump für MANUFACTURER SPECIFIC ist eine gute Idee. Das wird aber sicherlich erst morgen im Update mit drin sein. Ich hole die updates nicht direkt aus dem svn sondern ganz "normal" via update.

Ich warte im Moment noch auf einen zweiten CUL868. Ich empfange mit dem CUL433 doch nicht alle Zähler. Vor allem habe ich die 4 Wasserzähler noch nicht empfangen die etwas weiter weg auch in der Wand sitzen.
Oder senden die nur auf Anfrage?
Ich frage mich eh warum die Heizungszähler ständig ihre Werte in die Welt senden? Auf Nachfrage würde doch reichen oder?
Hier im Haus gibt es kein ständiges Gateway sondern der Ableser steht einmal im Jahr vor dem Haus.

Martin

kossmann

#93
Für alle ohne Qundis-Zähler (dafür aber mit Zeit und Lust) werde ich heute, tagsüber, während sich die Zählerstände nicht ändern, mal ein paar Daten liefern...

Wärmemengenzähler

Typ Qundis WFZ166.OK
SN 00228211


  • Stand 9538 kWh
  • Stand zum 1. Januar: 8456 kWh
2014.08.22 08:02:23.900 5: WMBUS raw msg b374465B2118222001604DDD67A9F000000046D2E14D61801FD0C0632EC716CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014-08-22_08:02:23 Zaehler_Heizung 4:value: 0c0008553000010613080bfffc02fd1700000c7896145559
2014.08.22 12:15:48.740 5: WMBUS raw msg b374465B2118222001604DDD67AA0000000046D3B00D71801FD0C0632F0496CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014-08-22_12:15:48 Zaehler_Heizung 4:value: 0c0008553000010613080bfffc02fd1700000c7896145559
2014.08.22 16:27:19.579 5: WMBUS raw msg b374465B2118222001604DDD67AA1000000046D0B05D71801FD0C063239426CFFFF0DFF5F0C0008553000010613089CAE0BFFFC02FD1700000C7896145559112A
2014-08-22_16:27:19 Zaehler_Heizung 4:value: 0c0008553000010613080bfffc02fd1700000c7896145559


Wasserzähler kalt

Typ Qundis WFZ166.MO
SN 58709401


  • Stand 214,840 m³
2014.08.22 09:32:21.075 5: WMBUS raw msg b2C4465320194705841077E977A9F000000046D2108D61801FD0C0532D4D46CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_09:32:21 Zaehler_WasserKalt 4:value: 0c0008553000010613080bfffc
2014.08.22 13:02:05.877 5: WMBUS raw msg b2C4465320194705841077E977AA0000000046D030CD61801FD0C0532915C6CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_13:02:05 Zaehler_WasserKalt 4:value: 0c0008553000010613080bfffc
2014.08.22 16:34:19.053 5: WMBUS raw msg b2C4465320194705841077E977AA1000000046D230FD61801FD0C0532D5E86CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_16:34:19 Zaehler_WasserKalt 4:value: 0c0008553000010613080bfffc


Wasserzähler warm

Typ Qundis WFZ166.MO
SN 58709292


  • Stand 114,969 m³
2014.08.22 07:49:47.359 5: WMBUS raw msg b2C4465329292705841073A8A7A9F000000046D3606D61801FD0C053276C06CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_07:49:47 Zaehler_WasserWarm 4:value: 0c0008553000010613080bfffc
2014.08.22 12:09:59.325 5: WMBUS raw msg b2C4465329292705841073A8A7AA0000000046D0E0BD61801FD0C0532AD716CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_12:09:59 Zaehler_WasserWarm 4:value: 0c0008553000010613080bfffc
2014.08.22 16:32:01.307 5: WMBUS raw msg b2C4465329292705841073A8A7AA1000000046D240FD61801FD0C053260776CFFFF0DFF5F0C0008553000010613089CAE0BFFFC97C6
2014-08-22_16:32:01 Zaehler_WasserWarm 4:value: 0c0008553000010613080bfffc

kossmann

Zitat von: mdewendt am 22 August 2014, 11:15:33Das mit dem hex dump für MANUFACTURER SPECIFIC ist eine gute Idee. Das wird aber sicherlich erst morgen im Update mit drin sein. Ich hole die updates nicht direkt aus dem svn sondern ganz "normal" via update.

Per update erst morgen, ansonsten die beiden Dateien einfach manuell aus dem SVN ziehen, im FHEM-Ordner ersetzen und FHEM neu starten.

Zitat von: mdewendt am 22 August 2014, 11:15:33Ich warte im Moment noch auf einen zweiten CUL868. Ich empfange mit dem CUL433 doch nicht alle Zähler. Vor allem habe ich die 4 Wasserzähler noch nicht empfangen die etwas weiter weg auch in der Wand sitzen.
Oder senden die nur auf Anfrage?
Ich frage mich eh warum die Heizungszähler ständig ihre Werte in die Welt senden? Auf Nachfrage würde doch reichen oder?
Hier im Haus gibt es kein ständiges Gateway sondern der Ableser steht einmal im Jahr vor dem Haus.

Das ist bei mir auch so, es wird einmal im Jahr abgelesen (Daten gesammelt). Mit dem 433er habe ich auch nur einen Bruchteil dessen empfangen, was ich mit dem 868er nun empfange (beide mit 15cm Antenne). Die werden wahrscheinlich auch - wie bei mir - alle 3-4 Stunden ein Signal senden. Für "auf Nachfrage" müsste man wohl ein Empfangsmodul permanent mit Strom versorgen, das ist wahrscheinlich mit der kleinen Batterie nicht machbar.

mdewendt

Hallo kossmann.


Komischerweise ist bei dir die value bei allen Zählern gleich im manuf spec field??

0c0008553000010613080bfffc

Ansonsten wäre DIF 0x0C ja 8bit BCD. Nur die 0x00 passt nicht - da müsste ja die Einheit stehen (zB VIF 0x06 als kWh oder 0x3B flow l/h).


Martin

kossmann

#96
Dann bin ich mal gespannt, wie das bei dir aussehen wird. Komisch ist es aber wohl.

Zu meiner Excel-Tabelle: Ich wollte diese eigentlich dynamisch gestalten, daher die vielen Funktionen. Durch die variable (in DIF bestimmte) Länge der Value-Bytes ist dies aber wohl unmöglich. Ich habe nun mal manuell ein Datenpaket dekodiert... und komme auch auf "Manufacturer Specific". Zumindest bin ich jetzt mal auf dem Stand, dass die Arbeit los gehen kann - die Frage ist dann leider nur wie.

Ich hänge die Excel-Tabelle noch mal ´ran. Vielleicht kann sich das ja mal jemand ansehen und mir zumindest sagen, dass ich bis dahin alles verstanden habe oder wo ich noch Fehler ´drin habe.

kaihs

Zitat von: kossmann am 22 August 2014, 12:20:47
Ich hänge die Excel-Tabelle noch mal ´ran. Vielleicht kann sich das ja mal jemand ansehen und mir zumindest sagen, dass ich bis dahin alles verstanden habe oder wo ich noch Fehler ´drin habe.

Da hast noch die weiteren CRCs vergessen, die alle 16 Bytes kommen.
Dadurch ist deine Interpretation des vorletzten Blocks falsch. Byte 27 als DIF 0x32 ist zwar noch richtig, aber der steht für einen 16 Bit Int und nicht 24 Bit.

Wie gesagt, ich denke ihr könnt euch auf die Daten im Manufacturer Specific Bereich konzentrieren.
Da wäre es dann interessant zu analysieren, wie die sich ändern, wenn sich der Zählerwert ändert.

Man kann auch schon mal versuchen den aktuellen Zählerwert dort zu finden, in dem man ihn in allen möglichen Arten (Binär, BCD, ...) kodiert und versucht ihn zu lokalisieren. Wird durch eine mögliche Skalierung des Wert noch etwas erschwert.
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: mdewendt am 22 August 2014, 11:15:33
Was ist der Unterschied zwischen VIF_TIME_POINT_DATE_TIME (die passt jetzt bei mir siehe oben) und VIF_TIME_POINT_DATE (da steht bei mir immer invalid)

Das erste ist ein Zeitstempel (Datum inkl. Uhrzeit), das zweite nur ein Datum. Der Wert ist allerdings 0xffff, und das ist kein gültiges Datum, daher invalid.

Zitat
Oder senden die nur auf Anfrage?
Ich frage mich eh warum die Heizungszähler ständig ihre Werte in die Welt senden? Auf Nachfrage würde doch reichen oder?
Hier im Haus gibt es kein ständiges Gateway sondern der Ableser steht einmal im Jahr vor dem Haus.

Die Zähler lauschen aus Energiespargründen nicht die ganze Zeit auf Anfragen, sondern senden nur zyklisch und legen sich dann wieder schlafen. Die Batterien müssen für die ganze Lebenszeit des Zählers (5 Jahre) halten.

Deswegen sind die auch oft so konfiguriert, dass sie nur während der Arbeitszeit (Mo-Fr 8-18 Uhr) senden, wenn ein Ableser da sein könnte.
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: kossmann am 22 August 2014, 11:19:45
Für alle ohne Qundis-Zähler (dafür aber mit Zeit und Lust) werde ich heute, tagsüber, während sich die Zählerstände nicht ändern, mal ein paar Daten liefern...

Kann es sein, dass du da was durcheinander gebracht hast? Für mich sieht das so aus, dass beide Wasserzähler ein und der selbe mit der Seriennummer 58709401 sind.
Das würde auch erklären, warum die die indentischen manuf. spec. Daten haben.
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

Jein, ich hatte intern wirklich warm und kalt vertauscht (und nun korrigiert, auch oben). Wenn ich die RAW-Messages allerdings durch dein Test-Skript jage, kommen unterschiedliche Seriennummern raus.

kossmann

Ich habe jetzt auch noch mal in der FHEM-Weboberfläche nachgesehen. Beide Devices haben zu unterschiedlichen Zeiten (16:32 und 16:34) je ein value gesetzt bekommen. Diese habe ich per Copy+Paste in ein Diff-Tool gesetzt (die Augen täuschen einen ja gerne mal)... Ergebnis: Zwei verschiedene Wasseruhren senden definitiv denselben ManufactureSpecific-Teil.

Jetzt wird es spannend, was Martin´s Uhren senden - ggf. sogar den identischen Wert. Ich würde in diesem Fall befürchten, dass dies eine Art "Es ist nicht Januar, es wird nicht abgelesen, ihr könnt mich mal"-String ist... wobei dann die Frage offen bleibt, warum der Wärmemengen-Zähler etwas anderes "übrig lässt".

Wenn über´s Wochenende bei euch keine neuen Erkenntnisse kommen, definiere ich mir die Uhren der Nachbarn auch mal im System und vergleiche deren ManufactureSpecific-Teil.

Martin, welche Modelle von Qundis hast du? Auch die WFZ166.MO als Wasseruhren? Dies wäre für einen Vergleich natürlich nicht ganz uninteressant.

kaihs

Auch bei deinem Wärmezähler entspricht der erste Teil des manuf. spec dem was die Wasseruhren senden.

Vielleicht ist das aber auch eine Aufforderung der Zähler 'wenn du mir innerhalb von x Sekunden richtig antwortest schicke ich dir den Zählerwert'.

So eine Kommunikation ist im Prinzip im Standard definiert, allerdings für einen anderen Wert im C-Field.

Ich habe auch einen Qundis Wärmemengenzähler, allerdings ohne Funkmodul. In der Anleitung ist aber beschrieben, wie man die Sendeparameter bzgl. Funkmodus und Aussendungsintervall konfiguriert.
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

mdewendt

Hallo.

Wenn mein CUL868 endlich da ist kann ich hoffentlich auch Werte für die Wasserzähler liefern. Diese haben ein Funkmodul mit der Bezeichnung WFZ166.AL
Und mein Haus ist voll von diesem "teuren" Zeugs ;-)
Wäre aber auch komisch wenn die Zähler nur eine Bake senden und man die Zählerstände dann nur auf Nachfrage nach der Bake bekommen würde - das wiederspricht ja etwas dem Stromsparkonzept da der Empfänger dann noch einige Zeit an bleiben müsste.
Für die Datensicherheit wäre ja eigentlich die AES Verschlüsselung zuständig - wenn man sie denn aktiviert hätte.


Martin

mdewendt

Hallo.

Also mein MANUFACTURER SPECIFIC sieht ziemlich ähnlich aus:
0c0008493000010613080bfffc

bei kossmann steht statt der 49 eine 55

Also scheint der aktuelle Zählerstand wirklich nur nach Aufforderung gesendet zu werden.
Ist mbus senden eigentlich überhaupt im CUL implementiert?


Martin