Decode two vendor values in multical603 as energy forward and returned.

pull/172/head
Fredrik Öhrström 2020-10-25 18:54:03 +01:00
rodzic 88d655e66a
commit 4cbf1a4b27
4 zmienionych plików z 21 dodań i 15 usunięć

Wyświetl plik

@ -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)

Wyświetl plik

@ -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"}

Wyświetl plik

@ -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_);

Wyświetl plik

@ -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" ]