Repeater Add-On — Operation
The repeater listens for wireless M-Bus telegrams, keeps those that pass its filters for a few seconds and re-transmits them with its own footer appended. It stores nothing and has no cloud connection; the gateway that receives the repeated telegrams handles the upload.
Listening and sleeping
The repeater listens in windows, like a gateway: every listenCron trigger starts the configured cmodeDurSec (C1/T1) and smodeDurSec (S1) windows, then the device sleeps until the next trigger. With the defaults it listens once a day at 08:00 UTC for 20 minutes; 0 0/15 * * * * with cmodeDurSec=900 makes it listen continuously. During the first installModeDuration seconds after a reboot (default one hour) it listens continuously regardless of the cron and blinks the green LED at 0.5 Hz.
Telegrams are only repeated while the repeater is listening. A telegram that arrives in the last seconds of a window is still sent; the pending repeats survive the window change.
What is repeated
A received telegram passes this chain; each step can drop it:
- The reception filters
mFilter,typFilter,devFilterandciFilter. minRssi: received weaker than the threshold → not repeated.- Only OMS telegrams (format A or B with a valid header) are repeated.
maxHopCount: the telegram already carries that many repeater footers → not repeated.- Loop protection: the telegram already carries this repeater's own footer → not repeated. The repeater also recognises its own status telegrams coming back from a neighbour.
rFilter: a telegram that was already repeated is only repeated again if its last hop is a whitelisted repeater.- Duplicate suppression: the same telegram was already repeated within
suppressionTime→ not repeated.
Everything that passes is queued for the next transmit burst.
How and when telegrams are sent
- Telegrams are always re-transmitted in C1 mode, regardless of whether they were received in T1, C1 or S1. The frame format (A or B) is kept. A gateway that only listens in S1 mode therefore does not receive the repeats.
- The repeater appends its footer, increments the hop count, sets the hop bit and recalculates the CRC.
- Repeats go out in bursts: a burst starts 5 to 20 seconds after the previous one and sends every telegram that has waited at least 6 seconds, oldest first. A telegram is therefore repeated 5 to 30 seconds after reception, typically after about 12 seconds. Telegrams older than 30 seconds are discarded; the standard does not allow later repeats.
- Status telegrams are sent every
statusIntervalseconds, independent of the bursts.
Airtime limit
The repeater transmits on 868.95 MHz in the band 868.7 to 869.2 MHz, which allows a duty cycle of 0.1 %: 3.6 seconds of airtime per hour. The firmware enforces this with a sliding one-hour budget. A typical repeated telegram costs about 12 ms, a status telegram about 4 ms, so the repeater forwards up to roughly 250 to 300 telegrams per hour. Status telegrams are served first; when the budget is exhausted, the queue waits for the budget to refill, oldest telegrams first, and telegrams that grow older than 30 seconds meanwhile are dropped.
In dense installations this limit is reached easily. Use minRssi, the reception filters and suppressionTime to spend the airtime on the meters that need the repeater.
Status telegrams
Every statusInterval seconds the repeater sends an unencrypted wM-Bus telegram with manufacturer LOB, device type 0x32 (unidirectional repeater) and CI 0x7A: battery voltage in mV, the current time from the RTC, and the number of telegrams repeated since boot. TPL.sts is 0x00, or 0x43 when no valid time could be read from the RTC at boot. Other repeaters forward status telegrams like any other telegram, so a status telegram that reaches the gateway through a chain carries one footer per hop with the signal strength of every link.
The format is shown on the product page.
Multi-hop chains
Every hop appends a 10-byte footer: DIF/VIF 0C 78 with the repeater's serial number (4 bytes BCD) and DIF/VIF 01 FD 71 with the RSSI at which that repeater received the telegram. The footers form the path of the telegram; the gateway sees the whole chain and the signal strength of every link.
Loops are impossible: a repeater never repeats a telegram that already carries its own footer, and maxHopCount caps the chain length. Chains of up to four repeaters work with the defaults, but every hop adds 5 to 30 seconds and a footer.
Static routes
For a defined topology, give every repeater a whitelist of its upstream neighbours in rFilter and set maxHopCount to the chain length. Example, meters at the far end, gateway at the other:
| Device | rFilter | maxHopCount | Meaning |
|---|---|---|---|
| Repeater A (near the meters) | * or empty list | 1 | repeats only telegrams straight from meters |
| Repeater B | <serial of A> | 2 | repeats meter telegrams and telegrams that came through A |
| Repeater C (near the gateway) | <serial of B> | 3 | repeats meter telegrams and telegrams that came through B |
rFilter never blocks telegrams that come directly from meters; every repeater also serves the meters it hears itself.
If a devFilter whitelist is used on the gateway or on the repeaters, add the serial numbers of the repeaters in the chain to it, otherwise their status telegrams are discarded and the chain cannot be monitored.
Planning an installation
Repeater and gateway windows. The repeater shifts every telegram by 5 to 30 seconds. A gateway that listens only in short windows loses the telegrams that arrive in the last 30 seconds of its window: with a 4-minute window that is up to 12 % of the window. Choose the gateway's listen windows considerably longer than 30 seconds, at least several minutes, and align the repeater's listenCron with the gateway's so that the repeater is awake whenever the gateway is.
Duplicate suppression. Set suppressionTime to one third to one quarter of the readout interval the backend needs. The gateway deduplicates telegrams it receives both directly and through a repeater.
Signal strength. Run the repeater with verbose=true for a few hours, read the RSSI of every meter from the wmbus| RXed: ... RSSI: ... ID: ... lines and set minRssi so that the meters the gateway hears well on its own and meters that are too far away to be useful stay below it. The footers of the repeated telegrams show the same values on the gateway side.
Antennas with gain. Enter the antenna's gain in antennaGain; the repeater lowers its transmit power accordingly.