Proforio Help Center

wmbusmeters connector

Connect a wmbusmeters gateway to send meter readings to Proforio.

Prerequisites

You need a Debian-compatible device with wmbusmeters already running and access to a Proforio account where you can create a Meter Reading integration. The connector reads the append-only JSON archive - it does not change your existing meter configuration.

Prepare the wmbusmeters archive

Keep these options in your wmbusmeters configuration. Each record must be one JSON line; do not use overwrite mode or pretty-printed multi-line JSON.

format=json
meterfiles=/var/lib/wmbusmeters/meter_readings
meterfilesaction=append
meterfilesnaming=id
meterfilestimestamp=day

Ensure the archive directory exists and is writable by the wmbusmeters service, then restart it.

sudo systemctl restart wmbusmeters
sudo systemctl status wmbusmeters --no-pager
sudo ls -l /var/lib/wmbusmeters/meter_readings

Create the integration in Proforio

  1. Open Settings → Meter Reading Integrations.
  2. Choose Add integration, give it a name, and select wmbusmeters.
  3. Create the integration and copy the generated token. It is shown only in that setup view.

Use one integration per independent device. Proforio matches wmbusmeters.id to the account meter serial number, preserving leading zeros.

Install and connect

Download proforio-wmbusmeters 1.0.0 (.deb)

curl --fail --location --remote-name https://proforio.com/downloads/wmbusmeters/1.0.0/proforio-wmbusmeters_1.0.0_all.deb
curl --fail --location --remote-name https://proforio.com/downloads/wmbusmeters/1.0.0/SHA256SUMS
sha256sum --check SHA256SUMS
sudo apt install ./proforio-wmbusmeters_1.0.0_all.deb
sudo proforio-wmbusmeters setup

Paste the token when prompted. Input is hidden and does not enter shell history. Setup validates API authentication and archive access, initializes state, and starts the service.

Verify the connection and readings

sudo systemctl enable --now proforio-wmbusmeters.service
sudo systemctl status proforio-wmbusmeters.service --no-pager
sudo proforio-wmbusmeters status
sudo journalctl -u proforio-wmbusmeters.service -n 50 --no-pager

In Proforio, use Refresh status. The first reading appears after an interval closes and its grace period ends. For example, a record timestamped 10:48 UTC is selected for 10:00-11:00 UTC and becomes eligible at 11:02 UTC.

Sampling, outages, and retention

  • The default is latest_per_interval with a 3,600-second UTC-aligned interval and 120-second grace period. The latest valid JSON object per meter is sent; cumulative totals are never summed.
  • Queued records survive restarts and outages. Transient failures retry with the same identity; authentication failures pause delivery until setup succeeds again.
  • A late record never replaces a frozen interval. live_max_record_age_days defaults to 90 and blocks old records both during selection and before sending.
  • SQLite is operational state, not a second historical archive. The connector never deletes or modifies source archives. V1 has no historical backfill, batching, or automatic updates.

Configuration reference

Edit /etc/proforio-wmbusmeters.conf only when defaults need changing, then restart the service. The complete commented configuration is available with the download.

API and file locations
api_base_url points to the Proforio HTTPS endpoint; archive_directory defaults to /var/lib/wmbusmeters/meter_readings, state_db to /var/lib/proforio-wmbusmeters/state.db, and token_file to /etc/proforio-wmbusmeters.token.
Selection and timing
upload_mode=latest_per_interval; upload_interval_seconds accepts 60-86,400, interval_grace_seconds 0-86,400, and poll_interval_seconds 0.1-3,600 seconds.
Retries and retention
retry_initial_seconds accepts 0.1-3,600, retry_max_seconds up to 86,400; state_retention_days and live_max_record_age_days accept 1-3,650 days.

Download the commented configuration

Troubleshooting

Waiting for connection

Check DNS, HTTPS access, the device clock, and the service log. Confirm the token belongs to this device and the integration is enabled.

Connection verified, but no readings yet

Allow a full interval plus the grace period. Only records appended after first setup are processed.

Authentication or archive access error

For 401, generate a replacement token and run setup again. Confirm the archive exists and the service user can read it; never make the token world-readable.

Permanent delivery errors or SQLite errors

A conflicting meter serial binding needs review in Proforio. Free disk space without deleting connector state; stop the service before copying state for diagnosis.

Upgrades and token rotation

Download the newer package and checksum, verify it, and install it with apt. Upgrades preserve configuration, token, and SQLite state. To rotate credentials, generate a new token in the integration controls and run setup again.