-
Notifications
You must be signed in to change notification settings - Fork 302
Expand file tree
/
Copy pathCHANGES
More file actions
1472 lines (1016 loc) · 59 KB
/
Copy pathCHANGES
File metadata and controls
1472 lines (1016 loc) · 59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
ATTENTION! Breaking changes to the kamwater driver. There were a lot of bugs
on how the flow_temperature_c was picked up. These are now fixed
so instead of the old field, expect to see min_flow_temperature_last_month_c
or min_flow_temperature_last_day_c. These meters are very configurable.
ATTENTION! Breaking change the field "meter":"..." is now renamed to
"driver":"...". The meter field name is just confusing since it has not been
correlated to the meter type since 2019. Hopefully very few users actually
make use of this field.
ATTENTION! The auto-detect of the emh meter was moved from the nzr driver
to the ehzp driver. Not sure what it was doing in the nzr driver since
there ware no test cases in that driver for an emh meter.
Added --telegramdetails=[never|first||always]
this option will in the json add details about the quantity, unit and info(help) information
for each field. This will be used to automatically generate the discovery messages
for HA.
Added --addtelegramhex=[true|false]
add "hex": "...." with the (decrypted) telegram received.
Useful for debugging.
Cleaned up some AI generated code that duplicated functionality over
wmbus_xmqtty.cc and wmbus_socket.cc Common code for these are now
in command_handler.cc
Improved aquastream driver.
Handle too short qheat telegram when forced analyzed=qheat.
Detect too short izar telegrams and fail gracefull instead of allocation exception.
Hynek Moravec improved the drivers: kadenwater, q400, hydroclimav2, caltose, picoflux. Thanks Hynek!
Bartosz Bbiegun improved the ista driver. Thanks Bartosz!
Christoph Gommel improved the ultraheat driver. Thanks Christoph!
Jan Kundrát improved the kamheat and kamwater drivers. Thanks Jan!
Aras Abbasi created a great AGENTS.md which deserves to be read by human developers too! Thanks Aras!
Timur Saitov improved the emerlin868 driver. Thanks Timur!
bartman081523 fixed type G date decoding where 0xffff decodes to null
and added decoding of mfct specific walk-by datasets for qundis meters. Thanks!
Michal Strnad improved the hydroclimav2 driver. Thanks Michal!
Christoph Gommel improved the qwaterv2 and qheatv2 drivers. Christoph also added support
for inverse compact profiles with multiple bases, like energy consumption and production.
Thanks Christoph!
Karl Tremain found an important bug in the rtl_wmbus checker, it failed to detect that
a T1 telegram had errors (the 3outof6 check number was not tested!) Thanks Karl!
Version 3.0.0 2026-06-17
Version 3.0.0-RC1 2026-06-17
Major release. All drivers have been converted to XMQ format with IXML
decoding of manufacturer specific data. This might cause problems,
see attention markers below for know changes.
New amazing feature contributed by Aras Abbasi, you can run
wmbusmeters inside your browser that supports serial ports
(currently tested in Chrome/Chromium and Edge.)
Try it here: https://wmbusmeters.org/inbrowser
Aras Abbasi also contributed cleanups and refactoring of the source code.
Aras also added support for difvif fields with compact profiles inside a telegram.
(Compact profiles are highly compressed fields for repeating historical values.
See caltose.xmq for example.)
Aras also converted a ton of C++ drivers to xmq! Many many thanks Aras!
The option --listmeters has been renamed to --listdrivers.
ATTENTION! Change in iem3000 driver the field partial_reactive_energy_consumption_kwh
has been corrected to be the unit partial_reactive_energy_consumption_kvarh
To fix a field overlap a new field digital_output_association_2 handles the 16 bit register
and digital_output_association handles the 24 bit register.
ATTENTION! Change in field name for lse_08 driver,lse_07_17,unismart,qcaloric drivers where
"device_date_time" is fixed to be "device_datetime" the _date_time suffix was
a remnant from the old days where date and time units where not enforced.
The correct unit is _datetime. This is a similar problem in all these drivers.
Also due_date_m3 is changed to due_m3 for the lse_07_17 driver.
ATTENTION! Change in field name for kamwater (multical21 flowiq2000)
external_temperature_c is now min_external_temperature_last_month_c
or min_external_temperature_last_day_c depending on meter.
ATTENTION! The field current_status has been removed from waterstarm. It has been
deprecated since 2022. Use the standardized field status instead.
ATTENTION! Removed wme5 driver that is handled by qwater2 instead.
Fix iu891a problem where a configured dongle that received telegrams
was not properly detected when wmbusmeters was restarted.
The buffer with received telegrams interfered with the detection logic.
Added qheatus driver.
Added ultrimisv2 driver.
Improve apator162 driver to handle telegrams with no FF byte before checksum.
Hynek Moravec contributed several drivers:
Added kadenwater.xmq for Ecomess/Kaden water meters.
Converted multical21 and flowiq2200 c++ drivers to a single kamwater.xmq driver.
Converted Zenner Minomess/APZ from C++ to minomess.xmq driver.
Added zennerhca.xmq driver for Zenner HCA meters.
Added caltose.xmq driver for Zenner Caltos E (D1605) HCA meters.
Converted rfmamb to xmq and added mfct_tpl_status_bits support to xmq.
Converted c5isf to xmq.
Converted hydroclimav2 xmq driver and added support for null sentinels,
ie a numeric value that signals no value, aka null in the json output.
He also improved analyze parse.
Thanks Hynek!
Felix Hauptmann improved the hcae2 driver. Thanks Felix!
Ingmar Stein implemented device=auto support on macOS and FreeBSD. Thanks Ingmar!
Josef Eisl improved the amiplus driver. Thanks Josef!
pepe82sh improved configure script and build support for FreeBSD. Thanks Pepe!
icho911 added support for the new iU893A-XL wmbus dongle. Thanks icho911!
majherek fixed ssl/tls problems in alpine docker build. Thanks majherek!
Jan Kundrát contributed compressed telegram signatures for kamwater meters
and added KEM file support for EM24 electricity meters.
Jan also improved the kamwater driver a lot!
Amir Fuhrmann contributed socket support for wmbusmeters. Thanks Amir!
Version 2.0.0 2026-03-01
Version 2.0.0-RC1 2026-03-01
Some drives that previously were c++ to decode mfct specific protocols,
are now written in xmq containing ixml grammars for understanding the mfct specific
protocol. This is a major step in the evolution of wmbusmeters towards
having all drivers in editable textfiles instead of c++ code.
ATTENTION! The qwater driver has been replaced with the qwaterv2 driver.
Note that the field names are different in the new driver.
New auto lookups will use the qwaterv2, the old qheat will remain for 6 months.
After which the old qwater driver will be removed, it contains buggy code that
fail to extract proper readings from the mfct specific telegrams.
ATTENTION! The qheat driver has been replaced with the qheatv2 driver.
Note that the field names are different in the new drive.
New auto lookups will use the qheatv2, the old qheat will remain for 6 months.
After which the old qheat driver will be removed, it contains buggy code that
fail to extract proper readings from the mfct specific telegrams.
ATTENTION! The apator162 driver has been replaced with an xmq driver with
mfct specific ixml parsing. It passes all regression tests, but let me know
if you have a problem!
Hynek Moravec added the picoflux driver. Thanks Hynek!
Version 1.20.0 2026-01-27
Version 1.20.0-RC1 2026-01-27
Karel Blavka added stdin:jsonl input format for per-telegram decryption keys. Thanks Karel!
Harald Schmitt hardened the config parsing and added CRLF support and numeric meter ID acceptance. Thanks Harald!
Tom Roida improved the amb8465 to prevent false protocol errors on RF noise/rx timeout. Thanks Tom!
Ulda added total_backwards_at_set_date_m3 to the waterstarm driver. Thanks Ulda!
Bibo removed the ADD command for version.json from Dockerfile!
This was causing failures GitHub API rate limit hits sometimes and builds failing. Thanks Bibo!
Karol Rudnik added support for non standard baud rates for rc1180. Thanks Karol!
Spectrality added a driver for the NZR EcoCount Compact electricity meters. Thanks Spectrality!
Jakub Skopal add the ability to specify index_nr in xmq driver. Thanks Jakub!
Andreas Schildbach fixed a type in a debug message. Thanks Andreas!
Jan Kundrát added support for 16bit status fields to the kamheat driver! Thanks Jan!
hrch3k added a driver for ZENNER EDC B.One (ZRI/16/0b) scenario 322. Thanks h3ch3k!
Martin Klein added cooling energy consumption for Zelsius combined heat/cooling meters. Thanks Martin!
Sergio Catalan updated the waterstarm driver, added the fiowater driver, and added cooling to the elf2 driver. Thanks Sergio!
Dawied added (NES) NORA ELK MALZ SAN ve TIC, Turkey (0x38b3) to amiplus driver. Thanks Dawid!
Tobias Göbel made directories for the Docker version more configurable through environment variables
Colin Tregenza Dancer fixed a bug that prevented
telegrams from being received when AMB8465 was in CMD mode. Thanks Colin!
Leif Neland updated the q400 driver. Thanks Leif!
Karel Blavka improved the Hydrodigit driver. Thanks Karel!
Timur Saitov also improved the Hydrodigit driver. Thanks Timur!
ZleekWolf updated the qwater driver. Thanks ZleekWolf!
Matix2120 updated the qwater and qheat drivers. Thanks Matix2120!
SzczepanLeon added more voltages to the amiplus driver. Thanks SzczepanLeon!
Fix crc checking bug in long format B frame telegrams.
Add cooling energy consumption for Zelsius combined heat/cooling meters
Added tpl status to nzr driver and minimize default fields.
Added another GWF water meter mvt triplet.
Added the non-linear dBm unit.
Fix compact5 driver to use third byte for values.
Update dlms flagids.
Print link mode, if known, when scanning telegrams.
Added elvsense room sensor driver.
Added ppm unit.
Add TAMPER bit to iwmtx5 driver based on report from Zaimatsu.
Name pulse counters in kamheat to va_counter and vb_counter.
Improved kamheat driver with subunits.
Added new kamheat.xmq driver.
Updated Hydridigit drivers fraud_date and leak_date to use standard format 2024-05-24 etc.
When scanning for telegrams using rtlwmbus the link mode is also displayed.
Print available meters into wmbusmeters.log when running as daemon.
This will show where a driver was loaded from. For example:
(driver) wme5 HeatMeter (c++) WEH,07,fe WEH,07,03
This means that the driver is c++ source code compiled into the binary.
(driver) aquastream WaterMeter (builtin) IMT,01,07
This means that the driver was written in xmq but loaded from the wmbusmeters binary
where the driver is stored.
(driver) foo WaterMeter (/etc/wmbusmeters.drivers.d/foo.xmq) SEN,68,06
This means that the xmq driver was loaded from /etc/wmbusmeters.drivers.d/foo.xmq
1) If such an xmq driver has the same name as an builtin/c++ driver, the builtin/c++ driver
will be removed completely. 2) If such an xmq driver has one (or more) mvts that are
registered inside a builtin/c++ drivers, then those builtin/c++ drivers will be removed completely!
Note that no longer is a warning printed when using the "wrong" driver. This determination
was only possible when the drivers were inside the c++ code entirely.
But with the new dynamic driver xmq files, things are more complicated, an override
or choice to use a different driver than the automatically detected one, is not
necessarily wrong.
Version 1.19.0 2025-03-21
Version 1.19.0-RC1 2025-03-20
Add new units for power J/h MJ/h.
Add meterfiletimestamp=month for meterfiles.
Add big warning about nanoCUL limitation!
Stubenh0cker improved support for Maddalena radio evo (evo868). Thanks Stubenh0cker!
Fix bug where --listfields=elf2 (from xmq driver) did not use the selected display_unit in the driver.
Add tests to qwater.
Updated mkradio3.
Handle more apator162 field lengths.
Salaun29 added support for mkradio3a. Thanks Salaun29!
Version 1.18.0 2024-11-27
Version 1.18.0-RC1 2024-11-27
Added support for the new iu891a wmbus dongle.
ATTENTION! Backwards incompatible change for xmq drivers source.
The field entries must now be inside a fields { ... } group.
The use entries must now be inside a library { ... } group.
The test entries must now be inside a tests { ... } group.
For variable length VIF text fields, accept both 0x7c and 0xfc as VIFE indicator.
Make sure that a dynamic xmq driver is fully printed with --listfields=<driver>
Ivaylo Ivanoc fixed a bug to allow daemon to be started with custom config. Thanks Ivaylo!
Kajetan Krykwinski improved driver autodetection to handle odd mfct codes,
improved the amiplus driver to handle Otus 1/3 meters and the aptoreitn driver. Thanks Kajetan!
Josef Eisl improved driver detection for the Develco Products Electricity Meter. Thanks Josef!
Bibo improved the docker and the snap. Thanks Bibo!
Sergio Catalan added the hydrocalm4 driver. Thanks Sergio!
Makischu added cooling fields for the mc303 meter to the kamhet driver. Thanks Makishu!
Kzajac83 added the elf2 driver and improved the werhlemodwm driver. Thanks kzajac83!
Saganos added the apator-na-1 driver. Thanks Saganos!
Marton Czwick added the maddalena driver. Thanks Marton!
Version 1.17.1 2024-08-24
Version 1.17.1-RC1 2024-08-24
Fix ha addon build process.
Version 1.17.0 2024-08-24
Version 1.17.0-RC1 2024-08-24
Correctly decode GJ first VIF extension.
Sajicek improved the hydrodigit driver! Thanks Sajicek!
Stepniskir helped create the ime driver! Thanks stepniskir!
Send mbus NKE to broadcast primary address 255 when mbus raw tty device reset.
Support fractions for force_scale=1/3
Add units for apparent (kva) and reactive (kvar) power.
Poll mbus meter again if 0x1b found in telegram. Failsafe give up after 10 telegrams with 0x1f in a row.
ATTENTION! The sensostar driver has some incompatible changes in the order of the default fields
and the energy_consumption_at_reporting_date_kwh is changed to target_kwh, target_date etc.
Supaklass fixed the sensostar historical data setup. Thanks Supaklass!
Added the new drivers aquastream, supercal and relhca.
Andreas Horrer added the itronheat driver. Thanks Andreas!
Andreas also added a workaround for borked meters with strange mfct fields (aPT and iWT)
Arthur van Dorp added the istahead driver. Thanks Arthur!
holigo1 fixed an izar driver issue for meters built 2000 or later. Thanks holigo1!
Michael Ott added w and wh units. Thanks Michael!
Roman Masse added a new mvt triplet detection for apator08 telegrams. Thanks Roman!
Alexander Streit added the eltako driver! Thanks Alexander!
This was also the first xmq driver not developed by me. A milestone!
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=<time> to set the poll interval for all meters to 10 minutes.
As <time> you can say 5s 10m 11h etc.
Added --ppjson to pretty print json, ie add newlines and indentation.
Alexander Streit added support for the Zenner Zelsius C5 ISF heat meter. Thanks Alexander!
Version 1.7.0 2022-03-28
Added verio451mid heat meter.
Improved --analyze command significantly.
ldebomy fixed a bug in the izar decoding that for some meters dropped the most significant digit
in the serial number. Thanks ldebomy!
Germar Reitze fixed a bug where negative BCD values were not properly converted. Thanks Germar!
Fix unnecessary probing bug where a specified device like: /dev/ttyUSB0:im871a:c1
and im871a:c1 would still cause wmbusmeters to probe for all types of devices on the serial port(s).
Now it only probes for im871a which speeds up the startup time significantly.
The sharky774 was improved to handle more different meter configurations.
Michael Ott fixed a bug in oneshot. Thanks Michael!
Fix bug in mode 7 decryption when the encrypted data was followed by non-encrypted data.
NOTE! Json slight json output change drivers esyswm and evo868 where fabrication now is now properly reversed.
You can now combine --useconfig=<dir> with --oneshot --exitafter=<time>
--silent --verbose --debug --normal --trace to override the config file settings.
(Already existing possible overrides was --device=<device> and --listento<mode>.)
This can be useful if you maintain a large set of meter configurations but want
to start wmbusmeters from a cronjob regularly. You can also add oneshot=true
and/or exitafter=30m to the conf file to get the same result.
Krzysztof Lewandowski added support for multiple tariffs in the amiplus driver. Thanks Krzysztof!
Bibo added support for the itron water meter. Thanks Bibo!
Probutus added support for the heat meter Zenner Celsius C5 ISF. Thanks Probutus!
Added MicroClima heat meter.
MaxPeal helped add ANYID as a synonym for '*' when listening to any meter id.
This helps when invoking wmbusmeters from another shell and we want to avoid
escaping '*' multiple levels. Thanks Max!
Refactor driver source code structure. It is now much easier to add a new driver.
DomAtHome added support for the heat meter sharky774. Thanks DomAtHome!
Version 1.6.0 2022-01-01
New year triggered a change to the apator162 telegram. This is now fixed.
DenysFrasinich improved the multical302 driver to handle meters configued to send MegaJoules. Thanks Denys!
Olli Salonen added support for the Zenner Minomess water meter. Thanks Olli!
Now any DLL crcs (frame A or B) are removed automatically
when telegrams are read from a simulation_... file or
passed as hex on the command line. If the DLL crc do not
check out (usually because they are not there), then the
telegram is kept as is. If the crcs are broken because
of a bad data, then the telegram will be passed on as is,
probably causing a bad parse later on.
Added multical602 heat meter.
Version 1.5.0 2021-11-06
Close a security hole where you could trivially spoof an encrypted meter
by sending an unencrypted telegram with the same id.
Fixed a buffer overflow bug triggered by a bad variable length field at the end of a telegram.
Added support for Qundis Q heat 5.5.
Jacek27 added support for the Munia temp/hygrometer. Thanks Jacek27!
Apator162 decoding much improved.
Improved verbose logging to show if you are not in the dialout
group when trying to find dongles. Install now adds the current
user to the dialout group as well.
Added support for the Hydrocal-M3 heating/cooling meter.
Added support for the Apator uniSMART gas meter.
You can now decode a telegram just by supplying hex on the command line:
wmbusmeters --format=json <hex_string> MyMeter auto 12345678 NOKEY
or just
wmbusmeters <hex_string>
Added --listunits to list all quantities and the units for each quantity
that wmbusmeteres knows about.
Tomasz Gramza added manual offset setting to the apator162 meter driver.
You can now specify for example: apator162(offset=29) to use the 4 bytes
at offset 29 in the telegram as the water consumption. Other offsets
known to work for apators are 9,12,20,23. This is useful as a final
resort to get your apator162 readout working. You have to test different
offsets until it works. Thanks Tomasz!
Version 1.4.0 2021-08-09
Fixed a race that sometimes caused wmbusmeters to crash when resetting the dongles,
which happens by default every 23 hours.
Fixed two crashes that could be triggered with broken telegrams. Crashes found by fuzzing.
Improved detection of the amb8465 dongle. The detection code could be confused
if the dongle was receiving a lot of valid telegrams at the same time.
Added telegram content sent by Axioma W1 meter to driver q400,
since Axioma identifies itself as a q400 meter.
You can now add constant fields using --field_extra_info=floor54 and
--selectfields=....,extra_info,.... to print constant values into
the fields format. --field_xxx=yyy is the new name for --json_xxx=yyy.
The old --json_xxx=yyy continues to work for backwards compatibility.
The timestamp field/key is the time registered by wmbusmeters
when the telegram was received. (The telegram itself sometimes
contain another timestamp when the telegram was sent.)
This timestamp field is encoded using the local time when used
in hr/fields (ie "2021-01-01 12:15.00") but UTC time within json
(ie "2021-01-01T10:15.00Z").
This will stay the same. However now you can explicitly select
the timestamp format for the selected fields. Select timestamp_ut
to print the timestamp as a unix timestamp (ie seconds since 1970-01-01).
Select timestamp_utc for the timestamp in UTC and timestamp_lt for local time.
Daniel Glaser added support for the Aventies water meter! Thanks Daniel!
Mblnk added support for Qundis QWater5.5. Thanks Mblnk!
Support added for the water meter Diehl IZAR RC I G4.
Version 1.3.0 2021-04-09
You can now use "auto" as a meter driver.
Wmbusmeters will then pick the right driver when
the first telegram arrives. A warning will be printed
in the logs if no driver could be found.
If you do not specify a type= in the meter config file,
then it will default to auto.
Added --logtimestamps=important/never/always to prefix
a logged line in the log file or stderr output with a timestamp.
Important means timestamp warnings and device changes.
Daemon mode defaults to important.
Added support for firmware version 0x14 for im871a dongle.
(The old version is 0x13 and you can see the firmware version if
you run with --verbose.) The new version of the im871a firmware
supports listening to c1 and t1 at the same time.
Version 1.2.0 2021-03-07
IMPORTANT CHANGES THAT MIGHT AFFECT YOU!vvvvvvvvvvvvvvvvvvvvvv
wmbusmeters now expects the latest version of rtl_wmbus with -s support.
The default behaviour is to use -s to listen to S1,T1 and C1 at the same time.
Check the README for more info.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Rattinca helped add support for the EI Electronics smoke detector. Thanks Rattinca!
Ignore duplicates is now enabled by default. Turn it off with --ignoreduplicates=false
Fixed problem with state maintaining meter drivers and wildcard ids.
A HCA driver was producing telegrams with values that jumped up and down.
This was due to the fact that the meter state in the driver was updated
through multiple different telegrams (this is how the meter works).
Clearly a single state object could not properly maintain the state for all
possible meters matching the wildcard, the state became a random mix
of whatever telegrams arrived.
The fix now, is that a meter C++ object for a uniqe id (not wildcard)
is created only when the first telegram arrives that matches the wildcard.
Thus each meter will have its own C++ object, in which the correct state
is maintained.
Version 1.1.0 2021-02-20
Vincent Privat added code for properly decoding several types of izar meter.
He also added full support for the heat meter sharky 775!
Thanks Vincent!
IMPORTANT CHANGES THAT MIGHT AFFECT YOU!vvvvvvvvvvvvvvvvvvvvvv
Important! Since the new code decodes the correct meter id from the izar
telegrams, therefore your current izar meter setup will break! You have
to update your meter files with the new id. The id is still not
the id that is printed on the meter. However, the numbers that are
printed on the meter are now available in the json eg:
"prefix":"H19CA","serial_number":"026273" which makes it easier
for you to find the proper meter id to listen to.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Added support for telegrams with different dll id vs tpl id.
Such telegrams can be generated when a standalone radio converter
(with its own id) is attached to an mbus meter (with its own id).
Ie there are two distinct ids. The id specified to wmbusmeters will
be now tried both against the dll id and the tpl id, previously
it was only tried against the dll id.
IMPORTANT CHANGES THAT MIGHT AFFECT YOU!vvvvvvvvvvvvvvvvvvvvvv
Important! The meter id reported in the json "id":"........" will
now always be the tpl id, if such an id was part of the telegram.
For most meters this is not a problem, but if you have a standalone
radio converter, or a meter with a wmbus plugin (radio converter meter side),
then you might get a different id.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Added support for the Apator Elf heat meter.
Version 1.0.5 2021-01-30
Xael South added support for the Gran-System-S electricity meters!
Thanks Xael!
Added support for evo868 water meter addon module.
Added support for whe542 heat cost allocator.
Marc Kolly improved the Waterstar meter and added better error codes
and another type/version detection combo! Thanks Marc!
Janus Bo Andersen fixed the omnipower driver! Thanks Janus!
Version 1.0.4 2020-12-05
Nikodem added support for Multical803! Thanks Nikodem!
Added a warning to be printed if an rtl_sdr dongle is found when using auto
and either rtl_sdr or rtl_wmbus cannot be found in the path at startup.
Cinemarene added support for the Techem MK Radio 4 water meter.
Thanks Cinemarene!
Mira added support for Elster V200H water meter and the Elster Merlin 868 addon.
Thanks Mira!
Version 1.0.3 2020-11-11
Add missing files and update man page for --nodeviceexit
Version 1.0.2 2020-11-11
Fixed bug that prevented rtlwmbus[1234] from working.
Fixed a race that in one out of 100 runs, ignored a telegram
on stdin and exited without decoding it.
Wmbusmeters now warns if you have specified /dev/ttyUSB0:im871a:c1
but there is no /dev/ttyUSB0 or if there is an amb8465 on /dev/ttyUSB0.
Added --nodeviceexit
This option will force wmbusmeters to exit if no wmbus device is found.
For example if you specify /dev/ttyUSB0:im871a:c1 and you want
wmbusmeters to fail if there is no im871a on ttyUSB0.
Added --donotprobe=/dev/ttyUSB0
(Also made sure that specifying only rtlwmbus/rtl433 will not probe
serial ttys. Specifying fully specified devices like
/dev/ttyUSB0:im871a:c1 will also not probe the other serial ttys.
Only specifying auto or a generic device type im871a that requires a
serial tty, will probe the serial devices, exluding donotprobe ones.)
Added support for the sontex868 heat cost allocator.
Jacek27 added support for the Ultrimis water meter.
Thanks Jacek27!
psxde added support for the Sensostar 2 heat meter.