Overview¶
The project is a Matterbridge dynamic platform plugin. It polls the JSON feed
served by purpleair_data_logger and creates one stable Matter air-quality
endpoint for each accepted PurpleAir sensor.
The plugin does not implement Matter transport, discovery, commissioning, or fabrics itself. Matterbridge remains the host runtime and owns those concerns.
Runtime requirements¶
Node.js 20.19, 22.13, 24, or 26
Matterbridge 3.10.0 or newer
A running PurpleAir Matter JSON feed
IPv6 and mDNS connectivity for Matter commissioning
The default feed URL is http://127.0.0.1:9855/matter/sensors.
Combined Docker runtime¶
The combined Docker image runs purpleair_data_logger and Matterbridge in
one container. Start it with exactly one logger mode:
./docker/spinup.sh --local --settings-file /absolute/path/to/local.json
./docker/spinup.sh --remote --settings-file /absolute/path/to/remote.json
--local selects -paa_local_sensor_request_json_file. --remote
selects -paa_multiple_sensor_request_json_file for API-backed settings.
The settings file is mounted read-only, the logger feed remains on
127.0.0.1:9855, and Matterbridge uses host networking for mDNS and UDP
commissioning. See the repository README and the Windows/WSL troubleshooting
guide for pairing, persistent volumes, updates, and factory reset.
When the host has Docker bridge or virtual Ethernet interfaces, pass the real
LAN interface explicitly, for example --mdns-interface eth0. Do not select
docker0, br-*, or veth*. The Node.js 26 versus Node.js 24 LTS
message from Matterbridge is advisory; Node.js 26 is the configured and
supported image runtime.