What is TCC Monitor?
TCC Monitor is a self-hosted web dashboard for keeping tabs on your Honeywell Total Connect Comfort (TCC) thermostats. It polls your thermostat data on a configurable interval, stores temperature readings in a local SQLite database, and presents everything through a clean web interface with live stats and historical charts.
The idea is simple: Honeywell's cloud app gives you current readings, but no historical data, no trend analysis, and no way to get alerts when something's off. TCC Monitor fills that gap by creating a local record of your thermostat's behavior over time.
What It Does
📈 Live Dashboard
Real-time thermostat stats with auto-refresh. See current temperature, setpoint, humidity, and operating status at a glance.
📅 Historical Data
Temperature trend charts covering 24-hour and 7-day periods. Browse historical readings by date with a calendar picker.
🔔 Smart Alerts
Get notified via encrypted Matrix messages when temperature deviates from your set parameters. No email, no push notifications — just Matrix.
📦 Self-Contained
SQLite database with WAL mode for concurrent reads. No external database server needed. Everything runs in one container.
Architecture
Honeywell TCC Cloud
│
│ poll on interval
▼
TCC Monitor (Go) ────────────────────────────┐
│ │
├── SQLite (temperature history) │
│ │
├── Web Dashboard │
│ ├── HTMX partial page updates │
│ ├── Chart.js visualizations │
│ └── Tailwind CSS styling │
│ │
└── Matrix Alerts │
└── E2EE via mautrix-go │
│
Docker (distroless) ──┘
Design Philosophy
- Lightweight by default — Go backend with SQLite means no external dependencies to manage. One binary, one database file.
- HTMX over SPA — The dashboard uses HTMX for dynamic updates instead of a full JavaScript framework. Partial page swaps keep things fast and simple.
- Matrix for notifications — Rather than email or Slack, alerts go through Matrix with full end-to-end encryption via mautrix-go. Fits naturally into a self-hosted stack.
- Distroless containers — The Docker image is built on distroless base images for minimal attack surface and tiny image size.
- Local data ownership — Your thermostat data stays on your server. The app polls Honeywell's cloud, but the historical record is yours.
The Stack
- Backend: Go — handles polling, API logic, and serves the web UI
- Database: SQLite with modernc.org driver (pure Go, no CGO)
- Frontend: HTMX + Chart.js + Tailwind CSS
- Notifications: Matrix protocol via mautrix-go with E2EE
- Deployment: Docker Compose with distroless containers