Moin,
habe seit längerem das WMBUS Modul mit einem HYDRUS Wasserzähler am laufen. Soweit OK.
Nun habe ich von EASYMETER einen Stromzähler bekommen, und das WMBUS Modul aufgesteckt.
Die Readings lauten:
STATE Payload CRC check failed on ELL
Und ein Error:
Unsupported CI Field 70, remaining payload is f002fd170100
RAW:
WMBUS_RAWMSG: b5B4479162924096130372CCE8C2092900F002C25250200000887038ED5B562AC18A0724660796079161102920030CBD20710470194C7AEEF5DA479F2174B7A9FE6F80F8CEDCF1C112EDD7EFEC4218AD77DA82EC5E84ABE851E7E03568A0DE9A81615675829CEE9CFBA1180::-40
Was sollte mir das sagen?
Im voraus Danke
Kaspi :)
Wie lautet die genaue Modellnummer von dem Aufsteckmodul?
EasyMeter
ESYS-WM20
VER:3.0
Dazu gibt es sogar eine Dokumentation des Telegrammaufbaus.
Falls die Daten verschlüsselt sind schicke mir bitte auch den Schlüssel per PM.
Da war noch ein Fehler bei der Auswertung des Extended Link Layers (ELL).
Habe ich behoben und eingechecked.
Hilft aber nur bedingt:
Manufacturer 1679 ESY
IdentNumber 61092429
Version 48
Type 37 Radio converter (Meter side)
IsEncrypted 1
Status: 0 no errors
Error:Encryption mode 7 not implemented
Also sind die Daten verschlüsselt und du brauchst den Schlüssel. Und in diese Art der Verschlüsselung habe ich noch nicht implementiert weil mir das zu kompliziert war.
Wenn jetzt aber immer mehr Zähler damit auftauchen muss ich mich wohl daran versuchen.
Wow... Respekt :)
Was ist den der Encryption mode 7 ?
Danke Dir
Kaspi
Zitat von: Kaspi am 09 August 2019, 21:06:04
Was ist den der Encryption mode 7 ?
Siehe OMS-Spec_Vol2_Primary_v402 (https://oms-group.org/index.php?eID=tx_securedownloads&p=73&u=0&g=0&t=1565461504&hash=a1e38b8b7b1b857a690f4c0d804c155090bb1e53&file=fileadmin/files/download4all/specification/Vol2/4.0.2/OMS-Spec_Vol2_Primary_v402.pdf) Kapitel 9 plus die Dokumente auf die da verwiesen wird.
Ich habe es jetzt hinbekommen eine in der OMS Spezifikation angegebene mit Mode 7 verschlüsselte Beispielnachricht zu entschlüsseln.
Mit deiner Nachricht und deinem AES Schlüssel (aus der PM) klappt es leider nicht. Bist du sicher, dass das der richtige Schlüssel ist?
Kannst du noch ein paar weitere Nachrichten sammeln und hier posten?
Hi,
Der Schlüssel wurde mir genannt. Ich muss davon ausgehen, dass er stimmt.
WMBUS_RAWMSG: b5B4479162924096130372CCE8C20A7900F002C253AE4000092D296F0F47FB9701A01724660796079161102A70030882D0710D9330DFB5B0814A6B32F8EF72B35DCBA56BCCB81D93CA21CA8A0A7D5F3A3566B5C6E6B7429B3D40F6949B59C451748E46E1BB7B93F4D065680
WMBUS_RAWMSG: b5B4479162924096130372CCE8C200A900F002C259DE400000DB1BECD13A915DF9B7C7246607960791611020A0030860C0710BE99098B0365748CA43830A82DE3291EE516CB4CEBDDD40A272673C5992BD4568888EB5CF22F7E836ED943354151E8AF85E379399A05AC0380
WMBUS_RAWMSG: b5B4479162924096130372CCE8C202B900F002C25BEE4000057EAA51542DAF28364EF7246607960791611022B0030224F07102FCBB310B072BB2379D09692F897536E7001CF2EA8CD464FB99171B7CA31F3492AD57DC29CC45DDCF01380D4ABAF9BBAECAD5430108DB2D980
Ich habe auch noch die Anzeige : Encryption mode 7 not implemented.
FHEM geupdatet und
perl Module Digest::CRC, Crypt::Mode::CBC, Crypt::ModeL::CTR und Digest::CMAC lt. commandref installiert.
sudo apt-get install libdigest-crc-perl
sudo cpan -i Crypt::Mode::CBC Crypt::Mode::CTR Digest::CMAC
Kaspi :)
Zitat von: Kaspi am 22 August 2019, 22:07:20
Ich habe auch noch die Anzeige : Encryption mode 7 not implemented.
Ich hatte vergessen eine Datei einzuchecken. Habe ich gerade nachgeholt.
Die Entschlüsselung deiner Daten klappt leider nicht. Ich habe nur ein Beispiel aus dem Standard für Mode 7 verschlüsselte Daten, die kann das Modul entschlüsseln.
Gut möglich, dass da noch ein Fehler ist, ich weiß aktuell aber nicht wo.
Ich habe gerade noch eine Korrektur vorgenommen, jetzt funktioniert die Entschlüsselung deiner Daten.
Kannst du ab morgen per 'update' bei dir einspielen oder vorher aus dem svn.
Toll :) Nochmals Respekt.
Es funktioniert.
Danke
Kaspi :)
Ich nochmal.
Es kommen folgende Meldungen im LogFile:
2019.08.25 08:54:25 2: WMBUS E_ZAEHLER_HAUS Error during ApplicationLayer parse:Non printable ASCII in LVAR
2019.08.25 08:59:25 2: WMBUS E_ZAEHLER_HAUS Error during ApplicationLayer parse:Non printable ASCII in LVAR
2019.08.25 09:04:25 2: WMBUS E_ZAEHLER_HAUS Error during ApplicationLayer parse:Non printable ASCII in LVAR
2019.08.25 09:09:40 2: WMBUS E_ZAEHLER_HAUS Error during ApplicationLayer parse:Non printable ASCII in LVAR
2019.08.25 09:14:25 2: WMBUS E_ZAEHLER_HAUS Error during ApplicationLayer parse:Non printable ASCII in LVAR
Hab hier nochmal ne RAW.
b5B4479162924096130372CCE8C2044900F002C25D70E0100D635936FFA7C899124817246607960791611024400300B82071058B4B582B6DF1FAF547C1835CE4FDE54354B3238D72E67646CF2FB6BECC95FB9C4C9B58C3EA2D336F7267FDB4B655DE52CAC403F335C2AF880::-36
Das Problem: 4_value 42949576.79 Watt :o
Es liegt aber daran, das irgendetwas auf meinem Dach was macht ;)
Die Werte müssten also bei negativen Werten anders behandelt werden, oder auf 0 gesetzt werden.
Ich war bisher davon ausgegangen, dass Integer Werte immer positiv (unsigned) sind.
Habe mir den Standard nochmal angesehen, es sind signed integers.
Die Fehlermeldung habe ich entfernt und statt dessen nicht druckbare Zeichen durch ? ersetzt.
Da sollte die Identifikationsnummer des Zählers (z. B.: ,,1ESY1160823414") drin stehen.
Kannst du prüfen, ob die passt?
Für Easymeter ist da nämlich wegen Daten von anderen Zählern eine Sonderbehandlung drin die die Zeichenkette umdreht.
Mglw. ist das bei deinem Zähler nicht mehr nötig.
Beide Änderungen habe ich gerade eingechecked.
Moin,
folgende Meldungen:
2019.08.26 08:13:30 1: PERL WARNING: Argument "??ESY??M-^_�M-^N" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1560.
2019.08.26 08:13:30 1: PERL WARNING: Argument "1ESY1160796046" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1560.
2019.08.26 08:13:30 1: PERL WARNING: Argument "1ESY1160796046" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 2119.
2019.08.26 08:13:30 1: PERL WARNING: Argument "??ESY??M-^_�M-^N" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 2119.
2019.08.26 08:14:19 1: PERL WARNING: Argument "1ESY1160796046" isn't numeric in sprintf at (eval 1059) line 1.
und das SVG Plot funktioniert nicht mehr:
This page contains the following errors: error on line 374 at column 1: Encoding error Below is a rendering of the page up to the first error.
seit dem heutigem Update wird alle 5 Minuten bei 1_value eine "0" ausgelesen (das war vorher nicht und müsste unterdrückt werden):
2019-08-26_07:53:19 903284.5
2019-08-26_07:53:38 903286.3
2019-08-26_07:53:59 903288
2019-08-26_07:54:39 903291.5
2019-08-26_07:55:18 903294.9
2019-08-26_07:55:38 903296.5
2019-08-26_07:56:19 903299.7
2019-08-26_07:56:59 903302.8
2019-08-26_07:57:18 903304.4
2019-08-26_07:57:39 903306.1
2019-08-26_07:57:59 903308.2
2019-08-26_07:58:39 903312.3
2019-08-26_07:58:59 903314.4
2019-08-26_07:59:58 903321.2
2019-08-26_08:00:19 903323.2
2019-08-26_08:00:47 903325.1
2019-08-26_08:00:59 903327.1
2019-08-26_08:01:19 903329.1
2019-08-26_08:01:39 903331
2019-08-26_08:01:59 903332.9
2019-08-26_08:02:19 903334.7
2019-08-26_08:02:39 903336.6
2019-08-26_08:02:59 903338.4
2019-08-26_08:03:19 903340.2
2019-08-26_08:03:39 903342.1
2019-08-26_08:03:59 903343.9
2019-08-26_08:04:39 903347.6
2019-08-26_08:04:59 903349.4
2019-08-26_08:05:26 903351.8
2019-08-26_08:05:59 903355.3
2019-08-26_08:06:19 903357.1
2019-08-26_08:06:39 903358.9
2019-08-26_08:06:59 903360.7
2019-08-26_08:07:39 903364.2
2019-08-26_08:07:59 903366
2019-08-26_08:08:19 903367.8
2019-08-26_08:08:39 903369.6
2019-08-26_08:08:59 903371.4
2019-08-26_08:09:19 0
2019-08-26_08:09:39 903375
2019-08-26_08:09:59 903376.8
2019-08-26_08:10:19 903378.5
2019-08-26_08:11:19 903383.9
2019-08-26_08:11:39 903385.7
2019-08-26_08:11:59 903387.4
2019-08-26_08:12:39 903391
2019-08-26_08:12:59 903393.3
2019-08-26_08:13:19 903395.1
2019-08-26_08:13:59 903398.6
2019-08-26_08:14:19 0
2019-08-26_08:14:39 903402.5
2019-08-26_08:14:59 903404.5
2019-08-26_08:15:19 903406.4
2019-08-26_08:15:59 903410.3
2019-08-26_08:16:19 903412.3
2019-08-26_08:16:59 903416.2
2019-08-26_08:17:19 903418.1
2019-08-26_08:17:39 903420
2019-08-26_08:18:19 903423.9
2019-08-26_08:18:39 903425.9
2019-08-26_08:19:19 0
2019-08-26_08:20:19 903436.2
2019-08-26_08:20:39 903438.1
2019-08-26_08:20:59 903440
2019-08-26_08:21:19 903441.8
2019-08-26_08:21:39 903443.7
2019-08-26_08:21:59 903445.6
2019-08-26_08:22:19 903447.5
2019-08-26_08:22:39 903449.4
2019-08-26_08:22:59 903451.2
2019-08-26_08:23:19 903453.1
2019-08-26_08:23:39 903455
2019-08-26_08:23:59 903456.9
2019-08-26_08:24:19 0
2019-08-26_08:24:39 903460.7
Der Zähler sendet, so wie ich das verstehe, alle 5 Minuten einmal statische Werte des Zählers.(Typ usw.).
Das müsste ausgefiltert werden.
Das sieht jetzt aber eher nach Problemen mit deinem FileLog/Plotdefinition aus.
Kannst du mal lists von beiden und das gplot File posten?
Laut Betriebsanleitung (https://www.easymeter.com/downloads/products/module/ESYS-WM20/BA_ESYS-WM20_Rev14.pdf) Kapitel 8 sendet der Zähler abwechselnd Datenpakete mit unterschiedlichem Aufbau.
Dadurch werden jetzt die Readings mglw. immer wieder mit logisch anderem Inhalt überschrieben.
Um das analysieren zu können brauche ich mal die Rawmessages über einen längeren Zeitraum.
Setze dazu bitte das Attribut rawmsg_as_reading auf 1 und erzeuge ein neues Filelog von dem Reading rawmsg.
Dann schicke mir mal den Inhalt von ein paar Stunden.
Hallo,
kommt per PM.
Wie vermutet sendet der Zähler zwei unterschiedlich aufgebaute Pakete und die Readings werden immer wieder überschrieben.
Nach etwas Grübeln bin ich jetzt auf diese Lösung gekommen:
Es gibt ein neues Attribut:
Zitat
useVIFasReadingName
Some devices send several types of messages with different logical content. As the readings are normally numbered consecutively they will be overwitten by blocks with a different semantic meaning. If ths attribute is set to 1 the naming of the readings will be changed to start with storage number and VIF (Value Information Field) name. Therefor each semantically different value will get a unique reading name.
Example:
1_storage_no 0
1_type VIF_ENERGY_WATT
1_unit Wh
1_value 1234.5
will be changed to
0_VIF_ENERGY_WATT_unit Wh
0_VIF_ENERGY_WATT_value 1234.5
Das solltest du setzen. Die aktuellen Readings werden dann sofort angepasst.
Du musst dann allerdings auch deine FileLogs und Plots anpassen da sich die Readingnamen ändern.
Da es sich doch um umfangreichere Änderungen handelt wäre es schön wenn du das testest bevor ich es einchecke. Die aktuellen Module anbei.
So....
alles angepasst und bis jetzt für gut befunden :)
Ich werde es mal ein paar Stunden beobachten und gebe dir dann Bescheid.
Gut gemacht !
Soweit scheint alles OK zu sein.
Evtl. folgendes.
Die Readings:
0_VIF_ELECTRIC_POWER_PHASE_1_extension_unit
0_VIF_ELECTRIC_POWER_PHASE_2_extension_unit
0_VIF_ELECTRIC_POWER_PHASE_3_extension_unit
sind die selben wie:
0_VIF_ELECTRIC_POWER_PHASE_1_unit
0_VIF_ELECTRIC_POWER_PHASE_2_unit
0_VIF_ELECTRIC_POWER_PHASE_3_unit
die extension_unit kann man löschen.
und
0_VIF_FABRICATION_NO_value
0_VIF_MEDIUM_value
bleiben "0".
Kaspi :)
Die extension_unit war falsch, da wird jetzt phase # angezeigt.
Die VIF_FABRICATION_NO und VIF_MEDIUM werden jetzt auch als Text angezeigt.
Ich bin mir allerdings nicht ganz sicher, ob das nicht eine Easymeter spezifische Interpretation der Daten ist.
Aber die Werte sind ja auch nicht so ganz kritisch.
Ich habe die Änderungen gerade eingechecked.
Hallo nochmal,
ich habe jetzt einen Zweirichtungszähler von EASYMETER bekommen.
Leider werden die Daten der Einspeisung nicht ausgelesen.
Könntest Du nochmal ein Blick drauf werfen ;-)
Kaspi
Kann ich machen, aber dafür brauche ich die Nachrichten die der neue Zähler sendet.
Hi,
hier die RAW:
b6B447916292409613037120A8C2087900F002C2522B70800FFE733FEF220DFC30D40727179766079161102870040A90107107515C9BEA83DC319A67D25DEE410E298A22E7D53A3AB0865060F73A52140177D830F3C4651ABDBA295234FFFE477A01027B4FCA80B6BA7AEC01C0661D8AE84205A718ABFBB4D73D51C6480
b6B447916292409613037120A8C2088900F002C2523B708000384FF3D938C774E110872717976607916110288004005E0071032CFA728D5165990E87D3AAB3DFF4615CCE04C65326C216745026125729140ACE433141BC1E332C88612940D5326E0EE85BE1D091B0C7CD669462AC66C40673226112C0A1CDD60A5A7CD80
b6B447916292409613037120A8C2089900F002C2524B7080023B7CB3770593C918E6872717976607916110289004024B6071008D9C5307A7EB10A714D9303464A8FD15BB9E3CC17555116F9691684F48EE9FF9A7E13A774EAA7096B682C0C28D3A861198F57C7E409129164F7A4FEAD1AF802F9AC9EF48152BAE8B89280
b6B447916292409613037120A8C208A900F002C2525B708006B92D9B1075741607A237271797660791611028A00406D4B071067666C79BBA800D9F53FB961D15CCEBC0B365788C2EE17B7EF1750A039FB0A0499C9700192ED693F0B851F5462601C3CC95930F4F44A9CB083287C49BF2CC8E69DF81E0648963989F48280
b6B447916292409613037120A8C208B900F002C2526B7080074B090C62FA02A61B1B17271797660791611028B0040CD6807106E4007B47DA1022FFFED06A03BFFD716E22D8E0B53FD7CD2A5A7A6B71D3E2A8C0E6C04FA4668AC08B9657BB8ECC03A3C5FB9407B73A77D19FA547591E6600AD5361542E3BF46F9A1E95980
b7B447916292409613037EC958C208C900F002C2527B70800799AF5328EAC4D806E3F7271797660791611028C00502C208710B22AD38F11B965859215007DEA282E6B3B99536101FA3D2016859EFA9C18E6BC5D3DBA65B1846FC6FAAD534549F5A6B77C145209867A0E2B80BE4F92E6A49A789604A663DA7D2B97B4C96517682F4B4E741742996C61F9F92C23751380
b6B447916292409613037120A8C208E900F002C2529B708001A04CD688FE95C201D337271797660791611028E004038BE07104FC328487ED263C5FB1EC2B3039623BFDB9578402CE0278750EB01312AD8560E8A7B61F10748C86969E97D624499D52F8837678DDD92BFFC9005669FFF91108296FB422E686A9762497980
b6B447916292409613037120A8C208F900F002C252AB708000430ED50F5FC110C8E537271797660791611028F00407F1D07104E074324A7C03269C7572A7AAFC863B3FB8D1C15D0AA99D0018C0F49DC19EC0D80251B10E1B251688ADD4F148EBEC15BCCA50290B3CB2AB2A4033646C7B3938D17FDBFB8FE539B14F44180
Danke
Kaspi ;-)
Hi,
Gibt es schon Neuigkeiten?
Kaspi
Zitat von: Kaspi am 19 Dezember 2019, 16:55:40
Hallo nochmal,
ich habe jetzt einen Zweirichtungszähler von EASYMETER bekommen.
Leider werden die Daten der Einspeisung nicht ausgelesen.
Könntest Du nochmal ein Blick drauf werfen ;-)
Kaspi
Hi kaihs,
könntest Du dir die Sache nicht doch mal ansehen?
Kaspi