diff --git a/README.md b/README.md index cdd5ad5..e81b475 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ Heat meter Techem Compact V (compact5) (non-standard protocol) Heat meter Techem Vario 4 (vario451) (non-standard protocol) Heat meter Kamstrup Multical 302 (multical302) (in C1 mode, please open issue for T1 mode) Heat and Cooling meter Kamstrup Multical 403 (multical403) (in C1 mode) -Heat and Cooling meter Kamstrup Multical 603 (multical403) (in C1 mode) (work in progress) +Heat and Cooling meter Kamstrup Multical 603 (multical603) (in C1 mode) Supported room sensors: Bmeters RFM-AMB Thermometer/Hygrometer (rfmamb) diff --git a/simulations/simulation_c1.txt b/simulations/simulation_c1.txt index 8c03e06..747e69b 100644 --- a/simulations/simulation_c1.txt +++ b/simulations/simulation_c1.txt @@ -42,3 +42,8 @@ telegram=|88442D2C02017878340A8D208D529C132037FC78|040E2D0A000004FF07F8FF000004F # compressed telegram telegram=|5B442D2C02017878340A8D2096809C1320EF2B7934147ED7|2D0A0000FAFF000043180100CE9005000000000000000000EE000000BA06CB07E7FFFFFF00000000000000000000000092285F030000960D020000000000000000008128| {"media":"cooling load volume at outlet","meter":"multical403","name":"My403Cooling","id":"78780102","total_energy_consumption_kwh":723.611111,"total_volume_m3":364.75,"volume_flow_m3h":0.238,"t1_temperature_c":17.22,"t2_temperature_c":19.95,"at_date":"2020-08-18 00:00","current_status":"","timestamp":"1111-11-11T11:11:11Z"} + +# Test Multical603 C1 telegram + +telegram=|42442D2C3636363635048D20E18025B62087D078|0406A500000004FF072B01000004FF089C000000041421020000043B120000000259D014025D000904FF2200000000| +{"media":"heat","meter":"multical603","name":"Heat","id":"36363636","total_energy_consumption_kwh":165,"total_volume_m3":5.45,"volume_flow_m3h":0.018,"t1_temperature_c":53.28,"t2_temperature_c":23.04,"at_date":"","current_status":"","energy_forward_kwh":"299","energy_returned_kwh":"156","timestamp":"1111-11-11T11:11:11Z"} diff --git a/src/meter_multical603.cc b/src/meter_multical603.cc index 83851c6..5bbab5f 100644 --- a/src/meter_multical603.cc +++ b/src/meter_multical603.cc @@ -59,8 +59,8 @@ private: bool has_t2_temperature_ {}; string target_date_ {}; - uint32_t something_a_ {}; - uint32_t something_b_ {}; + uint32_t energy_forward_kwh_ {}; + uint32_t energy_returned_kwh_ {}; }; MeterMultical603::MeterMultical603(MeterInfo &mi) : @@ -105,15 +105,15 @@ MeterMultical603::MeterMultical603(MeterInfo &mi) : "Status of meter.", true, true); - addPrint("something_a", Quantity::Text, - [&](){ return to_string(something_a_); }, - "Something A.", - true, true); + addPrint("energy_forward_kwh", Quantity::Text, + [&](){ return to_string(energy_forward_kwh_); }, + "Energy forward.", + false, true); - addPrint("something_b", Quantity::Text, - [&](){ return to_string(something_b_); }, - "Something B.", - true, true); + addPrint("energy_returned_kwh", Quantity::Text, + [&](){ return to_string(energy_returned_kwh_); }, + "Energy returned.", + false, true); } @@ -199,11 +199,11 @@ void MeterMultical603::processContent(Telegram *t) extractDVuint8(&t->values, "04FF22", &offset, &info_codes_); t->addMoreExplanation(offset, " info codes (%s)", status().c_str()); - extractDVuint32(&t->values, "04FF07", &offset, &something_a_); - t->addMoreExplanation(offset, " something A (%zu)", something_a_); + extractDVuint32(&t->values, "04FF07", &offset, &energy_forward_kwh_); + t->addMoreExplanation(offset, " something A (%zu)", energy_forward_kwh_); - extractDVuint32(&t->values, "04FF08", &offset, &something_b_); - t->addMoreExplanation(offset, " something B (%zu)", something_b_); + extractDVuint32(&t->values, "04FF08", &offset, &energy_returned_kwh_); + t->addMoreExplanation(offset, " something B (%zu)", energy_returned_kwh_); if(findKey(MeasurementType::Instantaneous, ValueInformation::EnergyWh, 0, 0, &key, &t->values)) { extractDVdouble(&t->values, key, &offset, &total_energy_kwh_); diff --git a/tests/test_c1_meters.sh b/tests/test_c1_meters.sh index c8ff30a..a5e1cb3 100755 --- a/tests/test_c1_meters.sh +++ b/tests/test_c1_meters.sh @@ -17,6 +17,7 @@ $PROG --format=json simulations/simulation_c1.txt \ MyElement qcaloric 78563412 "" \ Rum cma12w 66666666 "" \ My403Cooling multical403 78780102 "" \ + Heat multical603 36363636 "" \ > $TEST/test_output.txt 2> $TEST/test_stderr.txt if [ "$?" = "0" ]