pull/1371/head
Fredrik Öhrström 2024-09-21 19:48:44 +02:00
rodzic 10c178e416
commit e553d5b205
2 zmienionych plików z 28 dodań i 25 usunięć

Wyświetl plik

@ -90,7 +90,7 @@ Read the wiki for more info on how to use the snap: https://wmbusmeters.github.i
Building and installing from source is easy and recommended since the
development progresses quickly. First remove the wmbus dongle
(im871a,amb8465(metis),amb3665,cul,rc1180) or the generic rtlsdr dongle (RTL2832U)
(im871a,iu891a,amb8465(metis),amb3665,cul,rc1180) or the generic rtlsdr dongle (RTL2832U)
from your computer. Then do:
`./configure; make; sudo make install` will install wmbusmeters as a daemon.
@ -98,7 +98,7 @@ from your computer. Then do:
# Usage
Check the contents of your `/etc/wmbusmeters.conf` file, assuming it
has `device=auto:t1` and you are using a im871a,amb8465(metis),amb3665,rc1180,cul or rtlsdr device,
has `device=auto:t1` and you are using a im871a,iu891a,amb8465(metis),amb3665,rc1180,cul or rtlsdr device,
then you can now start the daemon with `sudo systemctl start wmbusmeters`
or you can try it from the command line `wmbusmeters auto:t1`
@ -108,11 +108,11 @@ several dongle types, the scan can take some time!
Use `auto` for testing and to find your dongle. For production it is very much
recommended that you change `auto:t1` to the device name with the full device path
(eg `/dev/ttyUSB0:im871a:c1,t1`). This will skip the slow probing for all possible
(eg `/dev/ttyAMA0:iu891:c1,t1`). This will skip the slow probing for all possible
wmbus dongles when wmbusmeters startup.
If the serial device (ttyUSB0) might change you can also use `device=im871a:c1,t1`
which will probe all serial devices but only scans for im871a which also speeds it up.
If the serial device (ttyUSB0) might change you can also use `device=iu891:c1,t1`
which will probe all serial devices but only scans for im891a which also speeds it up.
Note that the rtl-sdr devices are not found under the tty devices (e.g. `/dev/tty...`).
Instead the rtl-sdr devices are accessed through character device special files named `/dev/swradio0` to `/dev/swradio255`[^kernel_docs_sdr]. Wmbusmeters uses librtsldr to probe these devices.
@ -139,26 +139,26 @@ When using useconfig, the files/dir should be:
`/home/me/.config/wmbusmeters/wmbusmeters.d`
Check the config file /etc/wmbusmeters.conf and edit the device. For example:
`/dev/ttyUSB1:amb8465:c1,t1` or `im871a:c1,t1` or `im871a[457200101056]:t1`.
`/dev/ttyUSB1:amb8465:c1,t1` or `iu891:c1,t1` or `iu891a[457200101056]:t1`.
Adding a device like auto or im871a will trigger an automatic probe of all serial ttys
to auto find or to find on which tty the im871a resides.
Adding a device like auto or iu891a will trigger an automatic probe of all serial ttys
to auto find or to find on which tty the iu891a resides.
If you specify a full device path like `/dev/ttyUSB0:im871a:c1` or `rtlwmbus` or `rtl433`
If you specify a full device path like `/dev/ttyUSB0:iu891a:c1` or `rtlwmbus` or `rtl433`
then it will not probe the serial devices. If you must be really sure that it will not probe something
you can add `donotprobe=/dev/ttyUSB0` or `donotprobe=all`.
You can specify combinations like: `device=rc1180:t1` `device=auto:c1`
to set the rc1180 dongle to t1 but any other auto-detected dongle to c1.
Some dongles have identifiers (im871a,amb8465(metis),amb3665 and rtlsdrs) (for example: rtlsdr can be set with `rtl_eeprom -s myname`)
Some dongles have identifiers (im871a,iu891a,amb8465(metis),amb3665 and rtlsdrs) (for example: rtlsdr can be set with `rtl_eeprom -s myname`)
You might have two rtlsdr dongles, one attached to an antenna tuned to 433MHz and the other
attached to an antenna tuned for 868.95MHz, then a more complicated setup could look like this:
```
device=rtlwmbus[555555]:433M
device=rtlwmbus[112233]
device=/dev/ttyUSB0:im871a[00102759]:c1,t1
device=/dev/ttyUSB0:iu891a[00102759]:c1,t1
device=/dev/ttyUSB1:rc1180:t1
```
@ -169,9 +169,9 @@ here we pick the bus alias MAIN for the mbus using 2400 bps for all meters on th
```
MAIN=/dev/ttyUSB0:mbus:2400
```
and here we pick the bus alias RADIOMAIN for an im871a dongle:
and here we pick the bus alias RADIOMAIN for an iu891a dongle:
```
RADIOMAIN=/dev/ttyUSB1:im871a:c2
RADIOMAIN=/dev/ttyUSB1:iu891a:c2
```
The bus alias is then used in the meter driver specification to specify which
@ -192,7 +192,7 @@ wmbusmeters --pollinterval=60s MAIN=/dev/ttyUSB0:mbus:2400 MyTempMeter piigth:MA
loglevel=normal
# You can use auto:t1 to find the device you have connected to your system.
# But do not use auto here since it will cause unnecessary and slow probing of the serial ports.
device=/dev/ttyUSB0:im871a:c1,t1
device=/dev/ttyUSB0:iu891a:c1,t1
# And mbus
device=MAIN=/dev/ttyUSB1:mbus:2400
# But do not probe this serial tty.
@ -234,7 +234,7 @@ pollinterval=60s
You can use `driver=auto` to have wmbusmeters automatically detect
and use the best driver for your meter, but you should >not< use auto in production.
You can find out which driver is recommended by running `wmbusmeters im871a:t1`.
You can find out which driver is recommended by running `wmbusmeters iu891a:t1`.
This will print information like:
```
Received telegram from: 71727374
@ -518,20 +518,20 @@ As {options} you can use:
As device you can use:
`auto:c1`, to have wmbusmeters probe for devices: im871a, amb8465(metis), amb3665, cul, rc1180 or rtlsdr (spawns rtlwmbus).
`auto:c1`, to have wmbusmeters probe for devices: im871a, iu891a, amb8465(metis), amb3665, cul, rc1180 or rtlsdr (spawns rtlwmbus).
`im871a:c1` to start all connected *im871a* devices in *c1* mode, ignore all other devices.
`iu891a:c1` to start all connected *iu891a* devices in *c1* mode, ignore all other devices.
`/dev/ttyUSB1:amb8465:c1` to start only this device on this tty. Do not probe for other devices.
If you have two im871a you can supply both of them with their unique id:s and set different listening modes:
`im871a[12345678]:c1` `im871a[11223344]:t1`
If you have two iu891a you can supply both of them with their unique id:s and set different listening modes:
`iu891a[12345678]:c1` `iu891a[11223344]:t1`
You can also specify rtlwmbus and if you set the serial in the rtlsdr
dongle using `rtl_eeprom -s 1234` you can also refer to a specific
rtlsdr dongle like this `rtlwmbus[1234]`.
`/dev/ttyUSB0:amb8465`, if you have an amb8465(metis) dongle assigned to ttyUSB0. Other suffixes are im871a,cul.
`/dev/ttyUSB0:amb8465`, if you have an amb8465(metis) dongle assigned to ttyUSB0. Other suffixes are iu891a,cul.
(Note that a plain `/dev/ttyUSB0` no longer works, you have to specify the device expected on the device.)
@ -615,6 +615,7 @@ As meter quadruples you specify:
```
Supported wmbus dongles:
IMST 871a (im871a)
IMST 891a (iu891a)
Amber 8465-M/8665-M/8626-M/Metis-II (amb8465) 868MHz
Amber 3665-M (amb3665) 169MHz
CUL family (cul)
@ -724,6 +725,8 @@ also listen to c1 and t1 telegrams at the same time.
If you have the older firmware you can download the upgrader here:
https://wireless-solutions.de/downloadfile/wireless-m-bus-software/
The wmbus dongle iu891a can listen to either s1, c1 or t1 or c1,t1 at the same time.
The amb8465 dongle (new model name is Metis-II) can listen to either
s1, c1 or t1. It can also listen to c1 and t1 at the same time.

Wyświetl plik

@ -113,17 +113,17 @@ struct Config_IU891A
if (option_bits & 0x01) s += "RCV_FILTER ";
else s += "RCV_ALL ";
if (option_bits & 0x02) s += "RCV_NOTIFICATION ";
if (option_bits & 0x04) s += "SND_NOTIFICATION ";
if (option_bits & 0x08) s += "RADIO_RECALIB ";
if (option_bits & 0x02) s += "RCV_IND ";
if (option_bits & 0x04) s += "SND_IND ";
if (option_bits & 0x08) s += "RECALIB ";
if (ui_option_bits & 0x01) s += "ASSERT_PIN24_ON_TELEGRAM_ARRIVAL ";
if (ui_option_bits & 0x02) s += "PIN24_POLARITY_REVERSED ";
if (ui_option_bits & 0x04) s += "ASSERT_PIN25_ON_TELEGRAM_SENT ";
if (ui_option_bits & 0x08) s += "PIN25_POLARITY_REVERSED ";
s += tostrprintf("LED_FLASH_%d_MS ", led_flash_timing);
s += tostrprintf("RECALIBRATE_IN_%d_MS ", recalibrate_in_ms);
s += tostrprintf("led flash: %d ms ", led_flash_timing);
s += tostrprintf("recalibrate: %d ms ", recalibrate_in_ms);
s.pop_back();
return s;