cosalette-apps
A monorepo collection of IoT-to-MQTT bridge applications for smart home automation, all built on the cosalette framework.
What is cosalette-apps?
This monorepo consolidates multiple standalone IoT-to-MQTT bridge applications into a single repository with shared tooling, CI, and release infrastructure. Each app reads data from a physical sensor or device and publishes it to an MQTT broker for consumption by Home Assistant or other home-automation systems.
All apps are built on cosalette, a Python framework for IoT-to-MQTT applications that provides async MQTT lifecycle management, decorator-based device registration, hexagonal architecture via PEP 544 Protocols, and pydantic-settings integration.
Apps
| App | Description | License | Docs |
|---|---|---|---|
| caldates2mqtt | Reads CalDAV calendar dates and publishes upcoming all-day events to MQTT, with multi-calendar support and on-demand re-read commands. | Documentation | |
| gas2mqtt | Reads a domestic gas meter using a QMC5883L magnetometer over I2C and publishes counter ticks, temperature, and debug data to MQTT. | Documentation | |
| jeelink2mqtt | Bridges LaCrosse temperature and humidity sensors to MQTT via a JeeLink USB receiver. | Documentation | |
| vito2mqtt | Controls a Viessmann Vitodens gas boiler over the Optolink serial interface, publishing telemetry and accepting commands via MQTT. | Documentation |
Architecture
- Framework: cosalette — async MQTT lifecycle, decorator-based device registration, hexagonal architecture
- Build system: uv workspaces + Taskfile
- Licensing: REUSE-compliant (MIT default, GPL-3.0-or-later for vito2mqtt)
- CI: Per-app change detection with reusable workflows
- Releases: Release Please manifest mode (per-app versioning)
- Docs: Zensical with per-app sub-sites
See ADR-001 for the full decision record on the monorepo structure.
Contributing
See CONTRIBUTING.md for development setup, commands, project structure, and code quality standards.
License
This repository uses mixed licensing:
- caldates2mqtt is licensed under the MIT License.
- gas2mqtt is licensed under the MIT License.
- jeelink2mqtt is licensed under the MIT License.
- vito2mqtt is licensed under GPL-3.0-or-later.
- Monorepo infrastructure and shared files are licensed under the MIT License.
See REUSE.toml for the complete licensing breakdown.