Wireless M-Bus für CUL

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

Vorheriges Thema - Nächstes Thema

kaihs

Wenn du das Senden jetzt über fhem machst könntest du da selber eine Lösung erstellen, z. B. mit zwei userReadings.

Z. B. etwas in der Art
1. Sendeart in einem dummy Merken
2. passendes Kommando per set raw senden
3. im Code vom userReading die Sendeart Abfragen und nur bei passender Sendeart das 1. Userreading aktualisieren
4. andere Sendeart in einem dummy Merken
5. passendes Kommando per set raw senden
6. im Code vom userReading die Sendeart Abfragen und nur bei passender Sendeart das  2. Userreading aktualisieren

Aktuell tendiere ich dazu so etwas nicht in das Modul aufzunehmen weil es doch sehr speziell für die Letrika Wechselrichter ist.
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

Miriel

#706
Klingt toll, bitte schreibt eine Nachricht wenn ihr mal ein Modul erstellen solltet. Da ich bis jetzt mit 2. Rechner via SUN-Stick auch meine beiden Letrika Umformer antriggere. Damit FHEM mittels CUL die Werte loggt.

Leider bin ich zwar ein Fortgeschrittener User, jedoch den Vorschlag im letzten Post umzusetzen nicht in der Lage.


Gesendet von iPad mit Tapatalk Pro

Miriel

Zitat von: kaihs am 10 März 2019, 15:44:18
Ich habe gerade mal Senden und Empfangen getestet.
Es geht, wenn man es richtig macht  ;)

1. In der culfw muss HAS_MBUS definiert sein und MBUS_NO_TX darf nicht defriniert sein.
2. Das korrekte Kommando zum senden lautet bss oder bst zum Senden per S-Mode/T-Mode

Also z. B.

set nanoCUL868_WM raw bss105BB4B0986300000102DD72510C7900000000768080


für's Senden im S-Mode.

Auf welchen rfmode ist dein nanoCUL868_WM eingestellt?

Sorry hab gerade versucht alles nach zu vollziehen, jedoch wo kann man in der Culfw die Merkmale has_bus und Mbus _no_tx setzen? Bzw. welche culfw für mein CUL V3 müsste ich flashen?


Gesendet von iPad mit Tapatalk Pro

Miriel

Hallo wenn ich wie oben beschrieben alles eingebe erhalte ich:

2019.03.11 13:13:28 5: SW: bss105BB4B05397000001024B7D510C7900000000768080
2019.03.11 13:13:28 5: CUL/RAW: /not compiled in

2019.03.11 13:13:28 4: CUL_Parse: CUL_IO1 not compiled in
2019.03.11 13:13:28 5: CUL_IO1: dispatch not compiled in
2019.03.11 13:13:28 3: CUL_IO1: Unknown code not compiled in, help me!

-> bedeutet das ich muss eine andere CUL-FW flashen?


*** weiterhin habe ich heute FHEM Update durchgeführt. Dadurch wird zwar der Letrika wunderbar ohne Fehler erkannt, jedoch erhalte ich nicht mehr die gesamte erzeugte Leistung seit Inbetriebnahme (vorher Energy in W/h). Nur noch die gerade erzeugte Leistung in Watt. Wie kann ich das korrigieren?



Gesendet von iPad mit Tapatalk Pro

killah78

Hi,
das ist das Thema "überschreiben".
Mit bss105 wird in 1_value die bisher erzeugte Energie angezeigt, in 2_value die akutelle Leistung in Watt.
Mit bss135 wird in 1_value die maximale eingestellte Leistung in Watt, in 3_value "on/off" angezeigt.

Und die SMIController.exe macht halt bss105 und bss135 direkt nacheinander, weshalb dann 1_value immer überschrieben wird.
Bin auch gerade dabei mir was zusammenzubauen, was kaihs genannt hat. Mit Sendart und userReadings.

Bisher habe ich diese userReadings:
user_current_power {if (ReadingsVal('du_letrika','sendeart','0')  eq '1') {ReadingsVal('WMBUS_LET_00006398_1_2','2_value',0);;} else {ReadingsVal('WMBUS_LET_00006398_1_2','user_current_power',0);;}},
user_current_energy {if (ReadingsVal('du_letrika','sendeart','0')  eq '1') {ReadingsVal('WMBUS_LET_00006398_1_2','1_value',0);;}  else {ReadingsVal('WMBUS_LET_00006398_1_2','user_current_energy',0);;}},
user_set_power {if (ReadingsVal('du_letrika','sendeart','0')  eq '2') {ReadingsVal('WMBUS_LET_00006398_1_2','1_value',0);;}  else {ReadingsVal('WMBUS_LET_00006398_1_2','user_set_power',0);;}},
user_set_onoff {if (ReadingsVal('du_letrika','sendeart','0')  eq '2') { ReadingsVal('WMBUS_LET_00006398_1_2','3_value',0)>0 ? "on" : "off" }  else {ReadingsVal('WMBUS_LET_00006398_1_2','user_set_onoff',0);;}}


Der dummy löst über ein notify/doif ein senden aus und setzt entsprechend die Sendeart.
Bin aber noch am experimentieren.
Gruss

killah78

Ich habe mal noch etwas weiter getestet. Die Software erlaubt ja die maximale Leistung einzustellen, sowie Ein/Aus.
Ich habe das mal mitgelogged (Maximale Leistung = 3 Watt, AUS). Es wird ein Telegramm gesendet:
b2444B4B09863000001022D59510C7900000000122B0300027C076968ED6F705F736F63E80301FD6600E3E98022
Und der Wechelrichter antwortet:
b0A00B4B09863000001027310A46E9C80
Direkt im Anschluss erfolgt dann die übliche Aktualisierung.

Jetzt das ABER:
Wenn ich diesen bss244 code mit dem CUL sende, wird er ignoriert. Es kommt keine Antwort.

Gibts dazu eine Idee?

Hier mal den das gesamte Datentelegramm:
2019.03.11 19:42:20.166 5: CUL/RAW: /b2444B4B09863000001022D59510C7900000000122B0300027
2019.03.11 19:42:20.182 5: CUL/RAW: b2444B4B09863000001022D59510C7900000000122B0300027/C076968ED6F705F736F63E80301FD6600E3E98022
b0A00B4B0986300000
2019.03.11 19:42:20.183 4: CUL_Parse: nanoCUL868_WM b2444B4B09863000001022D59510C7900000000122B0300027C076968ED6F705F736F63E80301FD6600E3E98022 -57
2019.03.11 19:42:20.185 5: nanoCUL868_WM: dispatch b2444B4B09863000001022D59510C7900000000122B0300027C076968ED6F705F736F63E80301FD6600E3E980::-57
2019.03.11 19:42:20.186 5: WMBUS raw msg b2444B4B09863000001022D59510C7900000000122B0300027C076968ED6F705F736F63E80301FD6600E3E980::-57

2019.03.11 19:42:20.239 5: CUL/RAW: b0A00B4B0986300000/1027310A46E9C801B
2019.03.11 19:42:20.240 4: CUL_Parse: nanoCUL868_WM b0A00B4B09863000001027310A46E9C801B -60.5
2019.03.11 19:42:20.240 5: nanoCUL868_WM: dispatch b0A00B4B09863000001027310A46E9C80::-60.5
2019.03.11 19:42:20.241 5: WMBUS raw msg b0A00B4B09863000001027310A46E9C80::-60.5
2019.03.11 19:42:20.243 2: WMBUS WMBUS_LET_00006398_1_2 Error during ApplicationLayer parse:Unsupported CI Field a4, remaining payload is

2019.03.11 19:42:20.294 5: CUL/RAW: /b105BB4B09863000
2019.03.11 19:42:20.310 5: CUL/RAW: b105BB4B09863000/00102DD72510C790000000076808023
2019.03.11 19:42:20.310 4: CUL_Parse: nanoCUL868_WM b105BB4B0986300000102DD72510C790000000076808023 -56.5
2019.03.11 19:42:20.311 5: nanoCUL868_WM: dispatch b105BB4B0986300000102DD72510C7900000000768080::-56.5
2019.03.11 19:42:20.311 5: WMBUS raw msg b105BB4B0986300000102DD72510C7900000000768080::-56.5

2019.03.11 19:42:20.342 5: CUL/RAW: /b2008B4B098630000010256847A000000000403704D0900022B
2019.03.11 19:42:20.358 5: CUL/RAW: b2008B4B098630000010256847A000000000403704D0900022B/0000062FF16D0C50448320288192801C
2019.03.11 19:42:20.358 4: CUL_Parse: nanoCUL868_WM b2008B4B098630000010256847A000000000403704D0900022B0000062FF16D0C50448320288192801C -60
2019.03.11 19:42:20.359 5: nanoCUL868_WM: dispatch b2008B4B098630000010256847A000000000403704D0900022B0000062FF16D0C5044832028819280::-60
2019.03.11 19:42:20.359 5: WMBUS raw msg b2008B4B098630000010256847A000000000403704D0900022B0000062FF16D0C5044832028819280::-60

2019.03.11 19:42:20.422 5: CUL/RAW: /b135BB4B098630000010291C7510C
2019.03.11 19:42:20.438 5: CUL/RAW: b135BB4B098630000010291C7510C/790000000000FFA73CBF8024
2019.03.11 19:42:20.438 4: CUL_Parse: nanoCUL868_WM b135BB4B098630000010291C7510C790000000000FFA73CBF8024 -56
2019.03.11 19:42:20.439 5: nanoCUL868_WM: dispatch b135BB4B098630000010291C7510C790000000000FFA73CBF80::-56
2019.03.11 19:42:20.439 5: WMBUS raw msg b135BB4B098630000010291C7510C790000000000FFA73CBF80::-56
2019.03.11 19:42:20.502 5: CUL/RAW: /b5C
2019.03.11 19:42:20.518 5: CUL/RAW: b5C/08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736
2019.03.11 19:42:20.549 5: CUL/RAW: b5C08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736/F63E80301FD6600027C0471657266A9990000017C08706D745F6364636406017CC7C508706D745F6361636406027C0B746C6F39DE765F63645F63657
2019.03.11 19:42:20.565 5: CUL/RAW: b5C08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736F63E80301FD6600027C0471657266A9990000017C08706D745F6364636406017CC7C508706D745F6361636406027C0B746C6F39DE765F63645F63657/3080006FD670000001D66000000FFFF801
2019.03.11 19:42:20.565 4: CUL_Parse: nanoCUL868_WM b5C08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736F63E80301FD6600027C0471657266A9990000017C08706D745F6364636406017CC7C508706D745F6361636406027C0B746C6F39DE765F63645F636573080006FD670000001D66000000FFFF801
2019.03.11 19:42:20.566 5: nanoCUL868_WM: dispatch b5C08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736F63E80301FD6600027C0471657266A9990000017C08706D745F6364636406017CC7C508706D745F6361636406027C0B746C6F39DE765F63645F636573080006FD670000001D66000000FFFF801
2019.03.11 19:42:20.566 5: WMBUS raw msg b5C08B4B0986300000102DA227A00000000022B0300027C076968705F4FF3736F63E80301FD6600027C0471657266A9990000017C08706D745F6364636406017CC7C508706D745F6361636406027C0B746C6F39DE765F63645F636573080006FD670000001D66000000FFFF801

kaihs

Zitat von: Miriel am 11 März 2019, 08:43:52
Sorry hab gerade versucht alles nach zu vollziehen, jedoch wo kann man in der Culfw die Merkmale has_bus und Mbus _no_tx setzen? Bzw. welche culfw für mein CUL V3 müsste ich flashen?

In deinem Fall in der Datei Devices/CUL/board.h

Da dann in dem Abschnitt

#if defined(CUL_V3)
#  define TTY_BUFSIZE          128      // RAM: TTY_BUFSIZE*4
#  undef HAS_MBUS                       // PROGMEM: 4255
#if defined(HAS_MBUS)
#  define MBUS_NO_TX                    // PROGMEM:  962
#endif
#  define HAS_RFNATIVE                  // PROGMEM:  580
#  define HAS_KOPP_FC                   // PROGMEM: 3370
#endif


Damit das dann noch in den Speicher passt musst du wahrscheinlich die meisten der anderen Protokolle ausschalten.
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: killah78 am 11 März 2019, 19:57:12
Gibts dazu eine Idee?

Der Inhalt der gesendeten Nachricht:

Manufacturer b0b4 LET
IdentNumber 00006398
Version 1
Type 2 Electricity
IsEncrypted 0
Status: 0 no errors
1. StorageNo 0 Instantaneous value VIF_OWNER_NO 0
2. StorageNo 0 Maximum value VIF_ELECTRIC_POWER 3 W
3. StorageNo 0 Instantaneous value see unit 1000 ihp_soc
4. StorageNo 0 Instantaneous value VIF_STATE_PARAMETER_ACTIVATION 0


Kann ich nichts spezielles dran entdecken, und es passt ja zu 3W aus.

Die Daten sind aber länger als die bisher gesendeten, evtl. gibt es da ein Problem mit dem Senden.
Um das zu testen muss ich erst meinen Versuchsaufbau mit Sender und Empfänger wieder reaktivieren.

Die Antwort hat dann aber ein CI-Field A4 ohne weitere Daten, A4 ist in den Standarddokumenten nicht beschrieben.

Da es ja wohl doch mehrere User mit Letrika Wechselrichtern gibt überlege ich, ob ich das Senden nicht doch ins Modul einbaue.
Dazu müsste ich aber abschätzen wie kompliziert das denn werden würde. Ich werde wohl keine komplette herstellerspezifische Konfigurationssoftware nachbauen.

Was kann denn außer maximaler Leistung und Ein/Aus noch alles eingestellt werden? Was ist denn z. B. 1000 ihp_soc?
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

killah78

Zitat von: kaihs am 11 März 2019, 21:04:36
Was kann denn außer maximaler Leistung und Ein/Aus noch alles eingestellt werden? Was ist denn z. B. 1000 ihp_soc?

Die Software gibt die aktuelle Leistung und eine gesammelte Strommenge aus.
Und ich habe die Option die maximale Leistung und Ein/Aus einzustellen.
Dazu gibt es noch einen Alarmstatus, diesen habe ich bisher noch nicht in den Nachrichten entdeckt. Wahrscheinlich weil noch nicht aufgetreten ist.

Das ist das, was die relativ einfache Software hergibt. Es gibt noch weitere Möglichkeiten, die aber leider nicht dokumentiert sind und der Hersteller nicht preis gibt. ZB. die Eignung des Wechselrichters für einen Batteriebetrieb (den ich verwende) oder an Solarbetrieb. Dazu musste der Hersteller dem MPPT Modus deaktivieren.
Die Anwendersoftware gibt aber nicht mehr her, als die oben genannten Punkte.
Gruss


killah78

Hmmh. Wenn ich diese "anderen" Werte rückwärts lese kommt folgendes heraus:

ihp_soc = cos_phi = Leistungsfaktor? Ist bei mir aber derzeit immer 1000. Aber bei goolge quergelesen, soll das was Wechelrichter spezifisches sein.
qerf = freq = Netzfrequenz, passt auch mit dem Wert / 100 in Hz.
pmt_cdcd = dcdc_tmp = Temperatur Gleichstrom?? Bei mir zB 8. Draussen derzeit ziemlich kühl. Wechelrichter im Gartenhaus.
pmt_cacd = dcac_tmp = Temperatur Wechselstrom?? Bei mir zB. 9.
tlov_cd_ces = sec_dc_volt = Sekundär Gleichstrom Volt, Bei mir zB. 420.

Bin jetzt kein Photovoltaikexperte, aber könnte ja Sinn machen.
Hat jemand technisches Verständnis vom Aufbau eines Wechelsrichters und könnte da was zu sagen? Wären ja dann vielleicht doch interessante Daten, die da ausgespuckt werden.

Gruss

kaihs

Zitat von: killah78 am 12 März 2019, 09:58:52
Hmmh. Wenn ich diese "anderen" Werte rückwärts lese kommt folgendes heraus:

Guter Hinweis. Es gibt tatsächlich ein Bit im CI-Field das die byte order angibt. Das steckt allerdings nicht in den gesendeten Daten sondern in der Nachricht die das Senden anfordert.

Man müsste also die einzelnen Nachrichten im Zusammenhang betrachten was das Modul aktuell noch nicht macht. Das wäre ja auch für das Problem mit den überschriebenen Nachrichten hilfreich.

Dazu wären aber größere Umbauten nötig da dann Informationen über einzelne Nachrichten hinweg gespeichert werden müssten.
Ich habe das Umdrehen der Zeichenketten jetzt erstmal als Default eingebaut, siehe Anhang.
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

killah78

Die neue Version macht nichts mehr.
state: decryption failed
Steht auch nichts im log dazu.

2019.03.13 10:15:49.814 3: set nanoCUL868_WM raw bss105BB4B0986300000102DD72510C79000000007680801E
2019.03.13 10:15:49.814 5: SW: bss105BB4B0986300000102DD72510C79000000007680801E
2019.03.13 10:15:49.897 5: CUL/RAW: /b2008B4B098630000010256847A0000
2019.03.13 10:15:49.913 5: CUL/RAW: b2008B4B098630000010256847A0000/00000403754D0900022B00000686AB6D0C504483202881928019

2019.03.13 10:15:49.913 4: CUL_Parse: nanoCUL868_WM b2008B4B098630000010256847A000000000403754D0900022B00000686AB6D0C504483202881928019 -61.5
2019.03.13 10:15:49.914 5: nanoCUL868_WM: dispatch b2008B4B098630000010256847A000000000403754D0900022B00000686AB6D0C5044832028819280::-61.5
2019.03.13 10:15:49.976 5: WMBUS raw msg b2008B4B098630000010256847A000000000403754D0900022B00000686AB6D0C5044832028819280::-61.5

kaihs

Zitat von: killah78 am 13 März 2019, 10:38:14
Die neue Version macht nichts mehr.

Hm, merkwürdig. Kann ich so nicht nachvollziehen, ich kann die Nachricht dekodieren.
Passiert das mit der vorherigen Version nicht? Die Änderungen waren überschaubar und sollten keinen Einfluss auf Entschlüsselung haben, die Nachrichten sind ja auch nicht verschlüsselt.
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

killah78

Hi,
die vorherige Version funktioniert.
Diese hat die Version:
# $Id: WMBus.pm 18847 2019-03-10 12:48:20Z kaihs $

Die neue Version hat:
# $Id: WMBus.pm 17777 2018-11-18 15:44:03Z kaihs $

In der neueren Version ist die sub decodePlaintext drin. Aber da kommt decryption failed. Auch beim Wasserzähler.

Gruss

pc1246

Moin
So wie ich das sehe bist Du auf eine Version vom 18.11.18 zurueckgesprungen!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly