From 07d4713f554b2ae2ccf4871f6be0590c129342b0 Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Tue, 28 Jul 2026 16:58:20 -0500 Subject: Implement mattertimesync: one-shot Matter time synchronization CLI A standalone CLI Matter controller that joins Matter devices as a secondary administrator (multi-admin) and sets their clocks via the standard Time Synchronization cluster. Built on rs-matter 0.2.0, the official CSA Rust Matter stack: its PASE/CASE initiators, Commissioner flow, builtin mDNS, and generated cluster clients. One-shot runs from a systemd timer; there is no daemon. Hardware-validated end to end (commission, inspect, sync, decommission) against an IKEA ALPSTUGA air quality monitor over Thread, commissioned alongside Apple Home. Design and operation are documented in the README. 34 unit tests, clippy clean. --- Cargo.toml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Cargo.toml (limited to 'Cargo.toml') diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..df47edf --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "mattertimesync" +version = "0.1.0" +edition = "2024" +description = "CLI Matter controller that synchronizes the clocks of Matter devices via the standard Time Synchronization cluster" +license = "MIT" + +[dependencies] +anyhow = "1.0.104" +async-io = "2.6.0" +clap = { version = "4.6.4", features = ["derive"] } +embassy-futures = "0.1.2" +embassy-time = { version = "0.5.1", features = ["std"] } +embassy-time-queue-utils = { version = "0.3.2", features = ["generic-queue-64"] } +env_logger = "0.11.11" +futures-lite = "2.6.1" +if-addrs = "0.15.0" +jiff = { version = "0.2.35", features = ["serde"] } +libc = "0.2.189" +log = "0.4.33" +rand = { version = "0.8", features = ["std", "std_rng"] } +rs-matter = "0.2.0" +serde = { version = "1.0.229", features = ["derive"] } +serde_json = "1.0.151" +socket2 = { version = "0.6.5", features = ["all"] } +static_cell = "2.1.1" +thiserror = "2.0.19" +verhoeff = "1.0.0" + +[profile.release] +# One Pi-sized binary; favor size and honest backtraces over compile time. +lto = true +codegen-units = 1 +strip = "debuginfo" -- cgit v1.2.3