Fixed long standing confusion wether the DIF binary values are by default signed or unsigned. It turns out that they are signed! Thank you Mathias (Zeppelin500) and KaVauA for sorting this out! For unknown VIFS and non-compliant meters the signedness can be overriden to unsigned. New improved address specification. E.g. use 12345678.M=KAM.V=1b.T=16 to listen to exactly the telegrams with id 12345678 manufacturer KAM, version 0x1b and type 0x16. You if you do not specify any M,V or T, they become wildcards which will be the old default behaviour. If you receive multiple telegram versions from the same id, and you want to filter out some versions, do: 12345678,!12345678.V=77 You can now specify p0 to p250, to read from an mbus using the primary address. E.g. wmbusmeters --pollinterval=5s /dev/ttyUSB1:mbus:2400 TEMP piigth:mbus p0 NOKEY Added option --identitymode=(id|id-mfct|full|none) to specify how wmbusmeters groups meter state when receiving telegrams. The default (which is the same as before) is to map state based only on id. This usually works ok, however if you have two meters with the same id, but from different manufacturers, you must separate their state with --identitymode=id-mfct Full takes into account version and type as well. None means do not separate state at all, used with wildcards and meters that do not need to keep state, ie all info is in every telegram. Version 1.16.1 2024-02-22 Fix docker file generation. Version 1.16.0 2024-02-22 New build to trigger proper docker versioning. Version 1.15.0 2024-02-14 Version 1.15.0-RC2 2024-02-14 Update wmbusmeters-ha-addon with new dockerfile. Version 1.15.0-RC1 2024-02-13 For the daemon you can now drop a driver file (such as iperl.xmq) in /etc/wmbusmeters.driver.d and it will automatically be used (overriding any builtin iperl driver). From the command line you can also load a driver file with --driver=file.xmq or load a whole directory with --driverdir=/drivers or in a tuple just use a file name ending with xmq. E.g. "Water driver.xmq 12345678 NOKEY" The two first builtin text drivers are elster and iperl. ATTENTION! Wmbusmeters now use new -f option when starting rtl_wmbus. There is a warning if rtl_wmbus does not support the -f option and an upgrade is recommended. This option will cause rtl_wmbus to exit with an error if the rtl_sdr dongle stops sending data. This in turn will cause wmbusmeters to restart the pipeline. Up till now, the stderr from rtl_sdr has been sent to /dev/null. This is a problem since we cannot see any errors from rtl_sdr that could have caused it to stall. However the reason for /dev/null was this bug in rtl_sdr. https://github.com/osmocom/rtl-sdr/commit/142325a93c6ad70f851f43434acfdf75e12dfe03 which prevented us from sending the rtl_sdr stderr to wmbusmeters. If we did, rtl_sdr went into a 100% cpu hang when we restarted a wmbusmeters daemon. A temporary workaround has been found that both sends the stderr output to wmbusmeters and permits the restart of the daemon. Stderr from rtl_sdr is now sent to /tmp/tmp.XXXXXXX_wmbusmeters_rtlsdr and then tailed into wmbusmeters. This is a temporary solution until the real rtl_sdr bugfix has propagated into enough distributions. Add second extension energy MWh VIF 7b00-7b01. Sunflowerenergias improved the iwmtx5 driver! Thanks Sunflowerenergias! Jacman777 improved the kamheat driver! Thanks Jacman777! Pim added a --metershell setting which will invoke a shell command line when a meter is seen for the first time. This can be used to trigger extra commands in HA and other systems, to add the new meter. Thanks Pim! Pim added support for the Lansen repeater which sends its own status messages! Pim also fixed a small typo in the human readable date timestamp format! Thanks Pim! ATTENTION! The hydrus driver could report the wrong value for total_at_date_m3 if an at_date had not been reached yet. This is fixed. Added initial support for drivers that can be loaded from config files. Properly receive telegrams from amb8465 which is in command mode. Chris Bednarczyk improved the build process for Darwin/MacOS platform. Thanks Chris! PovilasID added another Hydrodigit version. Thanks PovilasID! Added new units for phase angle: deg rad. Added more fields to the abbb23. Version 1.14.0 2023-07-02 Version 1.14.0-RC1 2023-07-02 Added more fields to em24 driver. Added another mfct/type/version combo to em42 driver and the power_kw field. Mikołaj Milej imporved the installation script! Thanks Mikołaj! Christian Güdel improved the topaseskr driver to consider negative flows. Thanks Christian! Peter Vágner improved the lansenth driver to consider negative temperatures. Thanks Peter! Dennis Metz improved the ultraheat driver to consider negative flow and temperatures. Thanks Dennis! Bibo added support for the hcae2 driver. Thanks Bibo! Improve error messages when telegrams with bad length byte are read. Improve the apator162 driver. Added the iwmtx5 driver. Vyacheslav Karpukhin improved the qheat driver to decode proprietary format telegrams. Thanks Vyacheslav! pvagner improved the lansenth driver to handle negative values. Thanks pvagner! demetz imporproved ultraheat driver to handle negative values. Thanks demetz! Version 1.13.1 2023-05-07 Version 1.13.1-RC1 2023-05-07 Fix make install to not trigger a new build. Version 1.13.0 2023-05-07 Version 1.13.0-RC1 2023-05-07 The ha-addon has been moved to https://github.com/wmbusmeters/wmbusmeters-ha-addon Bug fixed where an mbus telegram was mistakenly detected as wmbus. The snap package can now use the serial port so that it works with mbus. DeDragonSlayer improved the amiplus with the maximum power consumption field. Thanks DeDragonSlayer! The calculator was improved to properly handle the m3 unit and give a better error message when a constant number lacks unit. The sharky driver was improved. The kamheat driver was updated with operating_time_h and a new auto-detect combo. Bibo added support for the hydrocal m4 meter, improved the kem-import and kem-extract scripts and added support for the Aerius gas meter. Thanks Bibo! The wmbusmeters-admin tool has been removed since it was never really useful. It will probably be replaced with something better and http based. This drops the need for the ncurses dependency. Version 1.12.0 2023-03-12 Version 1.12.0-RC1 2023-03-12 WMbusmeters has moved to its new github organization: github.com/wmbusmeters Bibo significantly improved the experience for installing the ha-addon by downloading a prepared docker image instead of building from scratch! Use the new ha-addon location: github.com/wmbusmeters/wmbusmeters-ha-addon Thanks Bibo! Bibo contributed many github workflow improvements! Thanks Bibo! Thecem,Krzysztof Hajdamowicz, chpego and convicte contributed several improvements to the ha-addon. Thanks! idl0r updated the eurosii driver with more telegrams. Thank you idl0r! Roland Huß contributed compressed telegram format for the multical21. Thanks Roland! Petter Reinholdtsen contributed several fixes to the deb building process and a speedup of the build workflow. Thanks Petter! Added the watertech meter. Christoph Hannebauer contributed another auto-detect combo for the qheat driver. Thanks Christoph! Gizmocuz added missing logging for the ell_type. Thanks Gizmocuz! George Hopkins improved the fhkvdataiii driver to infer the current year and the rtlwmbus driver to propagate the timestamp from rtlwmbus input into the final json timestamp. Thanks George! Rob Peters fixed a missing log output for ell_type. Thanks Rob! Added the GWF water meter. Zleba improved the qwater driver! Thanks Zleba! The option --logfile=syslog now works. ATTENTION! The hydrus driver has been rewritten from scratch! current_date is now meter_datetime Several fields were printed with value 0 even if the telegram did not contain the actual zero, such fields are no longer printed. Also the third text field has changed from max_flow_m3h to total_at_date_m3. Use --selectfields=... if you are affected. ATTENTION! The microclima driver has been refactored. The field device_date_time has been renamed to meter_datetime. Also two fields related to tariffs do not occur in the actual telegrams so these fields have been removed. The fields output has therefore been drastically changed. Use --selectfields= to reset your setup. Historical data is now decoded and added to the json. ATTENTION! The qwater driver has been refactored. The field device_date_time has been renamed to meter_datetime also the due 17 date fields have been renamed. The error_code field has disappeared since it was broken anyway and replaced with status. ATTENTION! The sharky774 driver had a bug that triggered when the meter used Joules instead of kWh. Also the calculated temperature difference had to be removed. You can re-add the temperature difference by using --calculate_temperature_difference_c=flow_temperature_c-return_temperature_c Since a field disappeared the default fields were disrupted and a shorter list of fields have now been picked for the default fields. Please use --selectedfields=... to recreate your previous fields. Also the field operating_time_h now prints the proper operating time and the new field operating_time_in_error_h prints the time when in error. ATTENTION! A bug in the hydrocalm3 driver was found. When total_cooling_kwh and other similar values were used as text fields (not a json fields) they were replaced with dates instead. This was due to a bug in the new code handling Quantity::PointInTime. Version 1.11.0 2022-12-29 Version 1.11.0-RC2 2022-12-29 Improve release process. Version 1.11.0-RC1 2022-12-29 Chpego and SzczepanLeon improved the HA-addon. Thanks! Ranma added support for the pollucomf 55 driver. Thanks Ranma! Jacek27 added another Munia temp/hygrometer version. Thanks Jacek27! Version 1.10.2 2022-12-05 Stefan Rado improved the mqtt discovery for HA. Thanks Stefan! Bibo improved the snap build process. Thanks Bibo! Version 1.10.1 2022-12-05 Fix bug that prevented a direct tty link: /dev/ttyUSB0:device:t1 to work. Version 1.10.0 2022-12-05 ╭─────────────────────────────────────────────────────────────────╮ │ │ │ Important change! The old style │ │ of writing drivers is now gone! BUT BUT BUT │ │ the final set of drivers to be converted were │ │ the multical 302/303/403/602/603/803 meters that │ │ were merged into a single kamheat driver. It was not │ │ possible to keep all of them backwards compatible! │ │ │ │ Note that the default fields for these meters are changed! │ │ Please use --selectfields to resolve this. │ │ │ │ I.e. It is a very good idea to check your multical heat │ │ meter values when you upgrade to wmbusmeters 1.10 ! │ │ │ ╰─────────────────────────────────────────────────────────────────╯ Important change! The feature --addconversions=GJ has been removed!!! But there is a replacement! It was used to add conversions to all energy values into gj, eg you have total_kwh and add total_gj. The addconversion feature was too broad and the conversion happened too late in the processing code. You can now achieve the same thing but you have to specify each field you want to convert using the calculation feature. E.g. --calculate_total_gj=total_kwh ATTENTION! The multical 302/303/403/602/603/803 heat meter drivers have been merged into a single kamheat driver. Not all values are backwards compatible! I.e. 302 is very changed, less so for the others. The default fields have changed! ATTENTION! The gransystems driver has been refactored to the new driver format. The field currrent_at_phase_1_a has been renamed to current_at_phase_1_a. The info strings in the "status" field now have underscores instead of spaces within a single string. ATTENTION! The rfmamb driver has been refactored to the new driver format. A bug was found and fixed where min and max relative humidity over 1h and 24h were wrong. The field device_date_time has been renamed to device_datetime. ATTENTION! The hydrocalm3 driver has been refactored to the new driver format. The field device_date_time has been renamed to device_datetime. ATTENTION! The fhkvdataiv driver has been refactored to the new driver format. The field consumption_at_set_date_17 was wrong and has been renamed to field consumption_at_set_date_8. ATTENTION! Bug in historical data for sensostar driver. Only the most recent month was correct. ATTENTION! The topaseskr driver has been refactored to the new driver format. The field "battery_life_days_remaining_remaining" has been changed to "battery_life_y". ATTENTION! When values are missing in the fields output, they were previously reported as "nan" but they are now reported as "null". ATTENTION! The unismart driver has been refactored to the new driver format. Several fields were unknown before and are still unknown and their content have slightly changed: status and version. The field "other_counter" is replaced with just "other" and its content changed. The field "suppler_info" is replaced with "supplier_info". The field "device_date_time" is replaced with "device_timestamp" and now contains seconds and a timezone. ATTENTION! A bug was fixed where the on_time_h and operating_time_h (and related error times) were wrong. ATTENTION! The lansensm driver now prints an extra field with the minutes since the last test was made. The json is improved. ATTENTION! The em24 driver has been refactored to the new driver format and some errors in the fields were discovered! The reactive consumption and production values were negative. This was in error, and due to a missing scale factor for the kvarh unit, they will now be positive. ATTENTION! The q400 driver has been refactored to the new driver format and some errors in the fields were discovered! Since the new driver format cannot generate these wrong json fields, the new q400 driver is not backwards compatible, except for the total_m3 field which is the same. Same fields and same content: total_m3, consumption_at_set_date_m3" Same field different content: meter_datetime now reports a full date time "2019-12-20 13:04" before it reported only the date "2019-12-20". New field new content: set_date is now set_datetime and reports "2019-12-01 00:00" instead of "2019-12-00" For the Axioma version of the q400: Broken fields: forward_flow_m3h, backward_flow_m3h, set_forward_flow_m3h, set_backward_flow_m3h replaced with: total_forward_m3, total_backward_m3, forward_at_set_date_m3, backward_at_set_date_m3 Same fields and same content: flow_temperature_c, flow_m3h --------------------------------------------------------------------------------------------- Karsten Festag added Engelmann FAW Radio transmitter and Engelmann Sensostar U extended with tests for wmbus and mbus. Thanks Karsten! Jannick Fahlbusch, Stefan Rado, Jan jnxxx, Ovettel, Artur Ptaszek, Sergey Melnik, Jan Suchal, Patrick Huesmann improved the HA-addon! Thanks! Steven Cooreman improved the Itron driver. Thanks Steven! Patrick Huesmann improved the qwater driver. Thanks Patrick! Florian Zschetzsche added support for the qheat 55 driver. Thanks Florian! Lasse Bang Mikkelsen added support for flowiq2200 and HA-addon fixes and kem-import fixes. Thanks Lasse! Bibo added support for the abbb23 driver and improved the docker builds and the lansensm driver! Thanks Bibo! Thisandre added support for the mkradio4a and vario511 meters. Thanks Andre! Added the bfw 240 radio heat cost allocator. Kajetan Krykwiński added support for the Apator E-ITN heat cost allocator. Thanks Kajetan! Improved wmbusmeters to gracefully handle bad telegrams with multiple difvif entries matching the same field. This used to trigger an assert, now the first matching field is used. Rename option --device=xyz to --overridedevice=xyz and add better error message if it is used without --useconfig=xyz. --device still works but will eventually be removed. OPTIONAL fields were only printed in the json, if they appeared in the telegram, even if the field had received a value before. Now a field will be printed in the json whenever there is a value stored in the meter object. I.e. an OPTIONAL field that has never received a value will not be printed. A NON-OPTIONAL field that has never received a value will be printed with the value null. Version 1.9.0 2022-09-04 ATTENTION! The multical21 and flowiq drivers have been refactored to the new driver style. Since the multical21 driver was the first driver ever written, it had some idiosynchrasies. The json should be entirely backwards compatible but when format=fields is used, the status field no longer has the days, eg "DRY(22-31 days)" is now just "DRY" use the json or selectfields=time_dry to get how long it has been dry. Added check for existance of difvif varlen length byte before reading it. Found by fuzzing. Thecem added support for the Multical 303 heat meter. Thanks thescem! Improve minomess driver to handle telegrams from wired m-bus module. Added Enercal F2 heat meter. Paulo Rossi added support for the AMB3665-M wmbus dongle for N-mode 169 MHz telegrams. Thanks Paulo! Version 1.8.0 2022-06-25 ATTENTION! Counter suffix _int is changed to _counter. New fields are added to lansendw, lansenpu, qsmoke drivers. Eventually the old fields will go away in drivers. ATTENTION! When a field is not optional in the driver description, but alas, no data has arrived in the telegram, then the json now contains a null for the value! Previousy 0 was used, which was misleading. ATTENTION! The default location of the meter_readings directory has changed from /var/log/wmbusmeters/meter_readings to /var/lib/wmbusmeters/meter_readings This only affects new installations. Existing conf files will use the old location as specified int the conf file. Added apator172 water meter. Added qualcosonic heating/cooling meter. Added ei6500 smoke detector. Added kampress pressure sensor. Added hydroclima HCA. Add detection of bad CUL firmware. Using :mbus as suffix to the meter driver now works to poll a meter of mbus instead of listening to wmbus telegrams. wmbusmeters --pollinterval=1h --format=json MAIN=/dev/ttyUSB0:mbus:2400 MyTemp piigth:MAIN:mbus 12301234 NOKEY Added --pollinterval=