diff --git a/README.md b/README.md index 39a0720..2057b20 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,18 @@ You can trigger a reload of the config files with `sudo killall -HUP wmbusmeters If you add more dongles, then more daemons gets started, each with a unique name/nr. +# Common problems + +If the daemon has started then the wmbus device will be taken and you cannot start wmbusmeters manually. + +To run manually, first make sure the daemon is stopped `sudo stop wmbusmeters@-dev-im871a_0.server` +if this hangs, then do `sudo killall -9 wmbusmetersd` and/or `sudo killall -9 wmbusmeters`. + +If you are using rtl_sdr/rtl_wmbus and you want to stop the daemon, do +`sudo stop wmbusmeters@-dev-rtlsdr_3.server` followed by `sudo killall -9 rtl_sdr`. + +If you are using auto, then start manually with --debug to see how wmbusmeters goes looking for devices. + # Source code The source code is modular and it should be relatively straightforward to add more receivers and meters. diff --git a/simulations/simulation_t1.txt b/simulations/simulation_t1.txt index 6a51485..fb46ed5 100644 --- a/simulations/simulation_t1.txt +++ b/simulations/simulation_t1.txt @@ -122,13 +122,13 @@ telegram=|5B445A149922992202378C20F6900F002C25BC9E0000BF48954821BC508D7299229922 # static telegram telegram=|7B4479169977997730378C208B900F002C25E4EF0A002EA98E7D58B3ADC57290779977991611028B005087102F2F|0DFD090F34302e3030562030303030303030300D790E31323334353637383839595345310DFD100AAAAAAAAAAAAAAAAAAAAA0D780E31323334353637383930594553312F2F2F2F2F2F2F2F2F2F2F| -{"media":"radio converter (meter side)","meter":"esyswm","name":"Elen2","id":"77997799","total_energy_consumption_kwh":0,"current_power_consumption_kw":0,"total_energy_production_kwh":0,"total_energy_consumption_tariff1_kwh":0,"total_energy_consumption_tariff2_kwh":0,"current_power_consumption_phase1_kw":0,"current_power_consumption_phase2_kw":0,"current_power_consumption_phase3_kw":0,"version":"40.00V 00000000","enhanced_id":"1234567889YSE1","location_hex":"AAAAAAAAAAAAAAAAAAAA","fabrication_no":"1234567890YES1","timestamp":"1111-11-11T11:11:11Z"} -|Elen2;77997799;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;1111-11-11 11:11.11 +{"media":"radio converter (meter side)","meter":"esyswm","name":"Elen2","id":"77997799","total_energy_consumption_kwh":0,"current_power_consumption_kw":0,"total_energy_production_kwh":0,"total_energy_consumption_tariff1_kwh":0,"total_energy_consumption_tariff2_kwh":0,"current_power_consumption_phase1_kw":0,"current_power_consumption_phase2_kw":0,"current_power_consumption_phase3_kw":0,"enhanced_id":"1234567889YSE1","version":"40.00V 00000000","location_hex":"AAAAAAAAAAAAAAAAAAAA","fabrication_no":"1234567890YES1","timestamp":"1111-11-11T11:11:11Z"} +|Elen2;77997799;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;1234567889YSE1;1111-11-11 11:11.11 # dynamic telegram telegram=|7B4479169977997730378C20F0900F002C2549EE0A0077C19D3D1A08ABCD729977997779161102F0005007102F2F|0702F5C3FA000000000007823C5407000000000000841004E081020084200415000000042938AB000004A9FF01FA0A000004A9FF02050A000004A9FF03389600002F2F2F2F2F2F2F2F2F2F2F2F2F| -{"media":"radio converter (meter side)","meter":"esyswm","name":"Elen2","id":"77997799","total_energy_consumption_kwh":1643.4165,"current_power_consumption_kw":0.43832,"total_energy_production_kwh":0.1876,"total_energy_consumption_tariff1_kwh":1643.2,"total_energy_consumption_tariff2_kwh":0.21,"current_power_consumption_phase1_kw":0.38456,"current_power_consumption_phase2_kw":0,"current_power_consumption_phase3_kw":0,"version":"40.00V 00000000","enhanced_id":"1234567889YSE1","location_hex":"AAAAAAAAAAAAAAAAAAAA","fabrication_no":"1234567890YES1","timestamp":"1111-11-11T11:11:11Z"} -|Elen2;77997799;1643.416500;0.438320;0.187600;1643.200000;0.210000;0.384560;0.000000;0.000000;1111-11-11 11:11.11 +{"media":"radio converter (meter side)","meter":"esyswm","name":"Elen2","id":"77997799","total_energy_consumption_kwh":1643.4165,"current_power_consumption_kw":0.43832,"total_energy_production_kwh":0.1876,"total_energy_consumption_tariff1_kwh":1643.2,"total_energy_consumption_tariff2_kwh":0.21,"current_power_consumption_phase1_kw":0.38456,"current_power_consumption_phase2_kw":0,"current_power_consumption_phase3_kw":0,"enhanced_id":"1234567889YSE1","version":"40.00V 00000000","location_hex":"AAAAAAAAAAAAAAAAAAAA","fabrication_no":"1234567890YES1","timestamp":"1111-11-11T11:11:11Z"} +|Elen2;77997799;1643.416500;0.438320;0.187600;1643.200000;0.210000;0.384560;0.000000;0.000000;1234567889YSE1;1111-11-11 11:11.11 # Test electricity meter eHZ-P diff --git a/src/meter_esyswm.cc b/src/meter_esyswm.cc index bfbc36c..163fa1f 100644 --- a/src/meter_esyswm.cc +++ b/src/meter_esyswm.cc @@ -111,14 +111,14 @@ MeterESYSWM::MeterESYSWM(WMBus *bus, MeterInfo &mi) : "Current power consumption phase 3.", true, true); - addPrint("version", Quantity::Text, - [&](){ return version_; }, - "Static version information.", - false, true); - addPrint("enhanced_id", Quantity::Text, [&](){ return enhanced_id_; }, "Static enhanced id information.", + true, true); + + addPrint("version", Quantity::Text, + [&](){ return version_; }, + "Static version information.", false, true); addPrint("location_hex", Quantity::Text, @@ -197,43 +197,36 @@ void MeterESYSWM::processContent(Telegram *t) (esyswm) 2e: 07 dif (64 Bit Integer/Binary Instantaneous value) (esyswm) 2f: 02 vif (Energy 10⁻¹ Wh) (esyswm) 30: * F5C3FA0000000000 total energy (1643.416500 kwh) - (esyswm) 38: 07 dif (64 Bit Integer/Binary Instantaneous value) (esyswm) 39: 82 vif (Energy 10⁻¹ Wh) (esyswm) 3a: 3C vife (backward flow) (esyswm) 3b: * 5407000000000000 total energy returned (0.187600 kwh) - (esyswm) 43: 84 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 44: 10 dife (subunit=0 tariff=1 storagenr=0) (esyswm) 45: 04 vif (Energy 10¹ Wh) (esyswm) 46: * E0810200 total energy tariff 1 (1643.200000 kwh) - (esyswm) 4a: 84 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 4b: 20 dife (subunit=0 tariff=2 storagenr=0) (esyswm) 4c: 04 vif (Energy 10¹ Wh) (esyswm) 4d: * 15000000 total energy tariff 2 (0.210000 kwh) - (esyswm) 51: 04 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 52: 29 vif (Power 10⁻² W) (esyswm) 53: * 38AB0000 current power (0.438320 kw) - (esyswm) 57: 04 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 58: A9 vif (Power 10⁻² W) (esyswm) 59: FF vife (additive correction constant: unit of VIF * 10^0) (esyswm) 5a: 01 vife (?) - (esyswm) 5b: FA0A0000 - + (esyswm) 5b: * FA0A0000 current power phase 1 (0.028100 kwh) (esyswm) 5f: 04 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 60: A9 vif (Power 10⁻² W) (esyswm) 61: FF vife (additive correction constant: unit of VIF * 10^0) (esyswm) 62: 02 vife (?) - (esyswm) 63: 050A0000 - + (esyswm) 63: * 050A0000 current power phase 2 (0.000000 kwh) (esyswm) 67: 04 dif (32 Bit Integer/Binary Instantaneous value) (esyswm) 68: A9 vif (Power 10⁻² W) (esyswm) 69: FF vife (additive correction constant: unit of VIF * 10^0) (esyswm) 6a: 03 vife (?) - (esyswm) 6b: 38960000 + (esyswm) 6b: * 38960000 current power phase 3 (0.000000 kwh) */ /* @@ -256,6 +249,7 @@ void MeterESYSWM::processContent(Telegram *t) (esyswm) 62: 0E varlen=14 (esyswm) 63: */ + int offset; string key;