[connector] # Proforio machine-ingestion API base URL. Setup verifies this endpoint before # saving a token. Absolute HTTPS URL without query parameters. Changing it sends # future requests to another API deployment. Default: Proforio production API. api_base_url = https://api.proforio.com/api/v2/meter-reading-integrations/wmbusmeters # Directory containing append-only JSON meter files produced by wmbusmeters. # Existing files are initialized at EOF on first setup and are never changed. # Absolute readable directory path. Changing it starts tracking files in the new # directory from offset 0 after initial setup. Default shown below. archive_directory = /var/lib/wmbusmeters/meter_readings # SQLite operational-state path. It contains checkpoints, open interval choices, # pending delivery, and bounded diagnostics - not the measurement archive. # Absolute writable file path. Do not change it after setup unless the existing # database is moved with it. Default shown below. state_db = /var/lib/proforio-wmbusmeters/state.db # File containing the setup-generated integration token. The service reads it at # startup. Absolute path to a root/service-group-readable file. Changing it makes # the service read credentials from the new location. Default shown below. token_file = /etc/proforio-wmbusmeters.token # Delivery selection mode. V1 supports only latest_per_interval, which forwards # the latest complete JSON object for each meter and interval without summing. # Valid value: latest_per_interval. Default: latest_per_interval. upload_mode = latest_per_interval # Width of each UTC-aligned selection interval. Integer seconds, 60-86400. # 3600 gives the normal Proforio behavior of one latest sample per meter per hour. # A change applies to new candidates; already-open candidates retain their stored # interval. Default: 3600 seconds. upload_interval_seconds = 3600 # Time allowed after an interval ends for a late archive append to arrive before # its selected sample is frozen for delivery. Integer seconds, 0-86400. A change # applies to new candidates only. Default: 120 seconds. interval_grace_seconds = 120 # Delay between archive scans when idle. Number of seconds, 0.1-3600. Lower values # detect appends sooner but wake the Raspberry Pi more often. Default: 5 seconds. poll_interval_seconds = 5 # Maximum time to establish an API connection. Number of seconds, 0.1-300. # Increasing it tolerates slower networks but delays failure detection. Default: 5. connect_timeout_seconds = 5 # Maximum wait for an API response after connection. Seconds, 0.1-900. Increasing # it tolerates slow responses but holds a delivery attempt longer. Default: 30. read_timeout_seconds = 30 # Starting delay for transient retry backoff. Seconds, 0.1-3600. Retries use # bounded exponential backoff with jitter. Default: 5 seconds. retry_initial_seconds = 5 # Maximum transient retry delay and Retry-After wait. Seconds, from the initial # delay through 86400. Increasing it reduces outage request frequency. Default: 900. retry_max_seconds = 900 # Local request-rate ceiling. Integer requests per minute, 1-60. It stays below # the normal Proforio integration budget. Lower values drain backlog more slowly. # Default: 50 requests per minute. max_requests_per_minute = 50 # Number of days to retain completed operational state in SQLite. It does not # control the wmbusmeters archive. Integer, 1-3650. Old receipts, diagnostics and # safely verified inactive source checkpoints are removed. Default: 90 days. state_retention_days = 90 # Maximum age accepted by the live pipeline, based only on the original JSON # timestamp. Older records are ignored and require a future explicit backfill. # Integer days, 1-3650. This remains the replay boundary when old checkpoint # metadata is cleaned or state is rebuilt. Default: 90 days. live_max_record_age_days = 90