volkszaehler / vzlogger

Logging utility for various meters & sensors
http://wiki.volkszaehler.org/software/controller/vzlogger
GNU General Public License v3.0
145 stars 124 forks source link

Support Gyr E450 w/ Encryption? #529

Open Panzerknacker2 opened 2 years ago

Panzerknacker2 commented 2 years ago

It appears to currently not work to read out data from an E450 that is AES encrypted, using an IR RX/TX head. While the meter is initialized and it appears valid frames are received, no data is read from them:

[Jun 24 18:07:57][oms]  wrong frame received. waiting for SND_NKE or SND_UD!
[Jun 24 18:09:42][oms]  got valid mbus frame with len=17, type=1 control=46 controlinfo=0 address=f8
[Jun 24 18:11:12][oms]  got valid mbus frame with len=203, type=1 control=75 controlinfo=0 address=3d
[Jun 24 18:11:37][oms]  got valid mbus frame with len=203, type=1 control=75 controlinfo=0 address=3d
[Jun 24 18:11:57][oms]  got valid mbus frame with len=20, type=1 control=75 controlinfo=0 address=3d
[Jun 24 18:19:17][oms]  got valid mbus frame with len=124, type=1 control=db controlinfo=0 address=7d
[Jun 24 18:19:17][oms]  got SND_UD without SND_NKE
[Jun 24 18:19:17][oms]  got SND_UD packet
[Jun 24 18:19:17][oms]  unsupported CI=0
[Jun 24 18:20:12][oms]  got valid mbus frame with len=247, type=1 control=db controlinfo=0 address=7d
[Jun 24 18:20:12][oms]  got SND_UD without SND_NKE
[Jun 24 18:20:12][oms]  got SND_UD packet
[Jun 24 18:20:12][oms]  unsupported CI=0
[Jun 24 18:22:03][oms]  got valid mbus frame with len=87, type=1 control=92 controlinfo=0 address=9e
[Jun 24 18:22:03][oms]  wrong frame received. waiting for SND_NKE or SND_UD!
[Jun 24 18:26:02][oms]  got valid mbus frame with len=203, type=1 control=73 controlinfo=0 address=1b
[Jun 24 18:26:02][oms]  got SND_UD without SND_NKE
[Jun 24 18:26:02][oms]  got SND_UD packet
[Jun 24 18:26:02][oms]  unsupported CI=0
[Jun 24 18:27:48][oms]  got valid mbus frame with len=252, type=1 control=71 controlinfo=0 address=ff
[Jun 24 18:29:57][oms]  got valid mbus frame with len=188, type=1 control=a8 controlinfo=0 address=1a
[Jun 24 18:29:57][oms]  wrong frame received. waiting for SND_NKE or SND_UD!
[Jun 24 18:32:58][oms]  got valid mbus frame with len=218, type=1 control=fb controlinfo=0 address=a9
[Jun 24 18:32:58][oms]  got SND_UD without SND_NKE
[Jun 24 18:32:58][oms]  got SND_UD packet
[Jun 24 18:32:58][oms]  unsupported CI=0
[Jun 24 18:34:37][oms]  got valid mbus frame with len=207, type=1 control=fb controlinfo=0 address=a9
[Jun 24 18:34:37][oms]  got SND_UD without SND_NKE
[Jun 24 18:34:37][oms]  got SND_UD packet
[Jun 24 18:34:37][oms]  unsupported CI=0
[Jun 24 18:35:23][oms]  got valid mbus frame with len=207, type=1 control=fb controlinfo=0 address=a9
[Jun 24 18:35:23][oms]  got SND_UD without SND_NKE
[Jun 24 18:35:23][oms]  got SND_UD packet
[Jun 24 18:35:23][oms]  unsupported CI=0

Configuration used:

{
"retry" : 0, /* how long to sleep between failed requests, in seconds */
"verbosity" : 15, /* between 0 and 15 */
"log" : "/var/log/vzlogger/vzlogger.log", /* path to logfile, optional */

"local" : {
"enabled" : false, /* should we start the local HTTPd for serving live readings? */
"port" : 8081, /* the TCP port for the local HTTPd */
"index" : true, /* should we provide a index listing of available channels if no UUID was requested? */
"timeout" : 30, /* timeout for long polling comet requests, 0 disables comet, in seconds */
"buffer" : 600 /* how long to buffer readings for the local interface, in seconds */
},

"meters" : [{
        "enabled" : true,       /* disabled meters will be ignored */
        "protocol" : "oms",     /* use 'vzlogger -h' for list of available protocols */
        "allowskip" : false,
        "device" : "/dev/ttyUSB0",
        "baudrate" : 9600,
        "parity" : "7e1",
        "key" : "24XXXXXXXXXXXXXXXXXXXXXXXXXXXX5a",
        "mbus_debug": false,
        "use_local_time": false,
        "channels": [{
        "uuid" : "bc979c90-f242-11ec-b29c-7d8cd21f1c34",
        "middleware" : "http://localhost/middleware.php",
        "identifier" : "16.7.0", /* Leistung */
        }, {
        "uuid" : "40283820-f242-11ec-aa6e-7baab78cacd2",
        "middleware" : "http://localhost/middleware.php",
        "identifier" : "1.8.0", /* Wirkarbeit Bezug +A */
        }, {
        "uuid" : "dcf4cac0-f242-11ec-8f49-63f276c6b2d7",
        "middleware" : "http://localhost/middleware.php",
        "identifier" : "2.8.0", /* Wirkarbeit Lieferung -A */
        }, {
        "uuid" : "0891fc80-f243-11ec-b43b-0b15854b2418",
        "middleware" : "http://localhost/middleware.php",
        "identifier" : "2.7.0", /* Leistung Erzeugung */
        }, {
        "uuid" : "22d83ea0-f243-11ec-87d5-85b31f2ea39d",
        "middleware" : "http://localhost/middleware.php",
        "identifier" : "2.8.1", /* Wirkarbeit Erzeugung -A */
        }]

}]}

Is there any method currently implemented to show decrypted packages? Currently it is not even clear if the identifiers for the channels are correct as is or need to be formatted different, e.g. "1-0:2.8.1". Leaving out all channel configuration does not give any readable output as well, just the same messages about valid mbus frames.

Is this an configuration issue or is the E450 really not supported yet? I can gladly give access to the RPI connected to it if it helps with debugging/adding support :)

machinekoder commented 1 year ago

Did it eventually work? (btw. shouldn't baud be 300 for optical sensors?)