← Back

teams-status-rs — Teams Home Automation

Mar 2023 – Present Repository
Rust tokio MQTT Home Assistant

Problem

Needed a way to automatically control smart home devices (desk lamp color, do-not-disturb sign) based on Microsoft Teams meeting status. The original PowerShell version was fragile and lacked cross-platform support.

Approach

Rewrote the entire application in Rust using the tokio async runtime. Reverse engineered the new Microsoft Teams API (which replaced the log-file-based approach) and shared findings with the community.

Technical Details

  • Built on the tokio runtime for efficient async I/O
  • Communicates with Home Assistant via MQTT for real-time device control
  • Parses Teams API responses to detect status changes (available, busy, in a meeting, etc.)
  • Configuration-driven: users define device mappings in a TOML config file

Results

  • Reliable, low-resource daemon running 24/7
  • Community-driven development through GitHub issues and pull requests
  • Shared reverse engineering findings helped other developers build similar integrations