From dfd5f6d7e8424b0b93af62f0840e16eef3081cda Mon Sep 17 00:00:00 2001 From: Roar Fredriksen Date: Sun, 24 Sep 2017 18:44:51 +0200 Subject: [PATCH 1/5] Update Kaifa OBIS breakdown.md --- Samples/Kaifa OBIS breakdown.md | 95 ++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 42 deletions(-) diff --git a/Samples/Kaifa OBIS breakdown.md b/Samples/Kaifa OBIS breakdown.md index f2ba1c6c..c052809d 100644 --- a/Samples/Kaifa OBIS breakdown.md +++ b/Samples/Kaifa OBIS breakdown.md @@ -1,44 +1,55 @@ -List #1 (0x01) (time is 1506275242) consumption is 601 Watts -E6 E7 00 0F 40 00 00 00 -09 0C 07 E1 09 18 07 11 2F 16 FF 80 00 00 (String, 12 bytes, "") -02 01 -06 00 00 02 59 +# One sample of each list on the Kaifa MA304H3E meter +(Samples are captured from my meter and the breakdown and values are from ![Kaifa HAN OBIS codes](Documentation/Kaifa%20HAN%20OBIS%20codes%20KFM_001.pdf). Please note that units and/or data types in this document doesn't seem to be right. E.g. my total meter reading is 403 kWh, not the tenfold. Hopefully, the current is also closer to 1A than 1000A in each wire) -List #2 (0x0D) (time is 1506275240) -E6 E7 00 0F 40 00 00 00 -09 0C 07 E1 09 18 07 11 2F 14 FF 80 00 00 02 0D -09 07 4B 46 4D 5F 30 30 31 -09 10 36 39 37 30 36 33 31 34 30 31 37 35 33 39 38 35 -09 08 4D 41 33 30 34 48 33 45 -06 00 00 02 5C -06 00 00 00 00 -06 00 00 00 00 -06 00 00 01 19 -06 00 00 06 BD -06 00 00 05 BA -06 00 00 08 86 -06 00 00 09 60 -06 00 00 00 00 -06 00 00 09 78 +## List #1 (0x01) (time is 1506275242) consumption is 601 Watts +Data | Explaination | Value +---- | ------------ | ----- +E6 E7 00 0F 40 00 00 00 | Uknown | +09 0C 07 E1 09 18 07 11 2F 16 FF 80 00 00 | Date and time | 2017-09-24 17:47:22 +02 01 | List Identifier | 0x01 = List #1 +06 00 00 02 59 | Active power+ (Q1+Q4) | 0.601 kW -List #3 (0x12) (time is 1506247210) -E6 E7 00 0F 40 00 00 00 -09 0C 07 E1 09 18 07 0A 00 0A FF 80 00 00 02 12 -09 07 4B 46 4D 5F 30 30 31 -09 10 36 39 37 30 36 33 31 34 30 31 37 35 33 39 38 35 -09 08 4D 41 33 30 34 48 33 45 -06 00 00 01 BA -06 00 00 00 00 -06 00 00 00 00 -06 00 00 01 01 -06 00 00 04 92 -06 00 00 05 94 -06 00 00 05 A7 -06 00 00 09 62 -06 00 00 00 00 -06 00 00 09 73 -09 0C 07 E1 09 18 07 0A 00 0A FF 80 00 00 -06 00 06 27 21 -06 00 00 00 00 -06 00 00 03 5A -06 00 00 DA AE +## List #2 (0x0D) (time is 1506275240) +Data | Explaination | Value +---- | ------------ | ----- +E6 E7 00 0F 40 00 00 00 | Unknown | +09 0C 07 E1 09 18 07 11 2F 14 FF 80 00 00 | Date and time | 2017-09-24 17:47:20 +02 0D | List Identifier | 0x0D = List #2 +09 07 4B 46 4D 5F 30 30 31 | OBIL List version identifier | KFM_001 +09 10 36 39 37 30 36 33 31 34 30 31 37 35 33 39 38 35 | Meter -ID (GIAI GS1 -16 digit ) | 6970631401753985 +09 08 4D 41 33 30 34 48 33 45 | Meter type | MA304H3E +06 00 00 02 5C | Active power+ (Q1+Q4) | 0.604 kW +06 00 00 00 00 | Active power - (Q2+Q3) | 0.000 kW +06 00 00 00 00 | Reactive power + (Q1+Q2) | 0.000 kVAr +06 00 00 01 19 | Reactive power - (Q3+Q4) | 0.281 kVAr +06 00 00 06 BD | IL1 Current phase L1 | 1725 A +06 00 00 05 BA | IL2 Current phase L2 | 1466 A +06 00 00 08 86 | IL3 Current phase L3 | 2182 A +06 00 00 09 60 | ULN1 Phase voltage 4W meter, Line voltage 3W meter | 2400 V +06 00 00 00 00 | ULN2 Phase voltage 4W meter, Line voltage 3W meter | 0 V +06 00 00 09 78 | ULN3 Phase voltage 4W meter, Line voltage 3W meter | 2424 V + +## List #3 (0x12) (time is 1506247210) +Data | Explaination | Value +---- | ------------ | ----- +E6 E7 00 0F 40 00 00 00 | Unknown | +09 0C 07 E1 09 18 07 0A 00 0A FF 80 00 00 | Date and time | 2017-09-24 10:00:10 +02 12 | List Identifier | 0x12 = List #3 +09 07 4B 46 4D 5F 30 30 31 | OBIL List version identifier | KFM_001 +09 10 36 39 37 30 36 33 31 34 30 31 37 35 33 39 38 35 | Meter -ID (GIAI GS1 -16 digit ) | 6970631401753985 +09 08 4D 41 33 30 34 48 33 45 | Meter type | MA304H3E +06 00 00 01 BA | Active power+ (Q1+Q4) | 0.442 kW +06 00 00 00 00 | Active power - (Q2+Q3) | 0.000 kW +06 00 00 00 00 | Reactive power + (Q1+Q2) | 0.000 kVAr +06 00 00 01 01 | Reactive power - (Q3+Q4) | 0.257 kVAr +06 00 00 04 92 | IL1 Current phase L1 | 1170 A +06 00 00 05 94 | IL2 Current phase L2 | 1428 A +06 00 00 05 A7 | IL3 Current phase L3 | 1447 A +06 00 00 09 62 | ULN1 Phase voltage 4W meter, Line voltage 3W meter | 2402 V +06 00 00 00 00 | ULN2 Phase voltage 4W meter, Line voltage 3W meter | 0 V +06 00 00 09 73 | ULN3 Phase voltage 4W meter, Line voltage 3W meter | 2419 V +09 0C 07 E1 09 18 07 0A 00 0A FF 80 00 00 | Clock and date in meter | 2017-09-24 10:00:10 +06 00 06 27 21 | Cumulative hourly active import energy (A+) (Q1+Q4) | 403 233 kWh +06 00 00 00 00 | Cumulative hourly active export energy (A-) (Q2+Q3) | 0 kWh +06 00 00 03 5A | Cumulative hourly reactive import energy (R+) (Q1+Q2) | 858 kWh +06 00 00 DA AE | Cumulative hourly reactive export energy (R-) (Q3+Q4) | 55 982 kWh From 6b2325b81f9672cf50f2dd593535746ee4b72378 Mon Sep 17 00:00:00 2001 From: roarfred Date: Mon, 25 Sep 2017 10:04:29 +0200 Subject: [PATCH 2/5] Added MQTT screenshot --- Electrical/MQTT screenshot.png | Bin 0 -> 38930 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Electrical/MQTT screenshot.png diff --git a/Electrical/MQTT screenshot.png b/Electrical/MQTT screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2fa1c4d98422e0bb2db0c16b59f20254db779a GIT binary patch literal 38930 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 V^Tw+-Wf|~8TT}OFhPvsU{{uw&4ut>! literal 0 HcmV?d00001 From 06661bdbd6e739cebe322e0b4388bc9e2ecb1a6b Mon Sep 17 00:00:00 2001 From: Roar Fredriksen Date: Mon, 25 Sep 2017 10:05:39 +0200 Subject: [PATCH 3/5] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1e6ef43d..42653321 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,6 @@ The project should include: ### Circuit prototype ![Breadboard](/Electrical/Prototype.jpg) + +### MQTT output +![MQTT screenshot](/Electrical/MQTT screenshot.png) From b378f11a56c8deb270edef0a74f44468545f209e Mon Sep 17 00:00:00 2001 From: Roar Fredriksen Date: Mon, 25 Sep 2017 10:06:31 +0200 Subject: [PATCH 4/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 42653321..ac816492 100644 --- a/README.md +++ b/README.md @@ -24,4 +24,4 @@ The project should include: ![Breadboard](/Electrical/Prototype.jpg) ### MQTT output -![MQTT screenshot](/Electrical/MQTT screenshot.png) +![MQTT screenshot](/Electrical/MQTT%20screenshot.png) From 4751a7ee4319b2fdbbf5fe2ec2576355aa29775a Mon Sep 17 00:00:00 2001 From: Roar Fredriksen Date: Mon, 25 Sep 2017 10:07:48 +0200 Subject: [PATCH 5/5] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ac816492..29e8e8f5 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,11 @@ The project should include: - [x] [Code to capture and analyze data from Arduino](/Code/ESPDebugger) - [x] [Sample data from various meters](/Samples) - [x] [Documentation on HAN / MBus / DLMS/COSEM](/Documentation) -- [ ] Code to parse DLMS data into a structure -- [ ] Real schematics, including ESP8266, possibly PCB +- [X] Code to parse DLMS data into a structure +- [X] Real schematics, including ESP8266 +- [ ] PCB layout - [ ] Arduino library -- [ ] Arduino sample sketch to read values and report to MQTT server +- [X] Arduino sample sketch to read values and report to MQTT server ### Circuit to read HAN from PC (via FTDI) ![Circuit diagram](/Electrical/Schematics.PNG)