nth.io/mattertimectl/

mattertimectl, or "Matter Time Controller", is a CLI command that joins an existing Matter fabric as an additional controller/administrator ("multi-admin") and pushes the correct time via the standard "Time Synchronization" cluster. No daemon: each run connects, syncs, and exits. Intended to be run from a systemd timer or cron job.

Source: src.nth.io/luke/mattertimectl (GitHub mirror).

Synopsis

mattertimectl [-c <config>] <command> [-n <node>] [-j]

Commands

read-only

  status                controller + per-device state (local, no device contact)
  inspect               connect to each device; dump identity and time-sync capabilities

fabric-writing

  commission <code>     join a device as an additional Matter admin (pairing code used once)
  sync                  set each device's clock: UTC time, time zone, DST offsets
  decommission          drop this controller's fabric from each device (primary ecosystem untouched)

Options

-c, --config <path>   config file [default: /etc/mattertimectl/config.json]
-n, --node <id>       target one device (sync/decommission default to all commissioned)
-t, --time <hh:mm>    sync only: set this wall-clock time today instead of now (e.g. 16:35, 4:35pm)
-j, --json            machine-readable JSON on stdout; logs stay on stderr
-h, --help            print help
-V, --version         print version

Exit codes: 0 success, 1 runtime failure (the timer retries), 2 usage or config error.

Configuration

/etc/mattertimectl/config.json:

{
  "storagePath": "/var/lib/mattertimectl",
  "timezone": "America/Chicago",
  "logLevel": "info",
  "fabricLabel": "Matter Time Controller"
}

storagePath holds the controller's fabric identity and private keys. timezone is an IANA name; fabricLabel is displayed to the other ecosystems for this controller.

Commissioning Devices

Commission each device once inside a pairing window opened in the primary ecosystem (e.g. Apple Home, Google):

sudo -u mattertimectl mattertimectl commission 12345678901

Enable the timer:

sudo systemctl enable --now mattertimectl.timer

The .service is a oneshot that runs mattertimectl … sync; the .timer drives it. The host clock must be NTP-synchronized or sync refuses to push time.