From “Bosch updated their apps — anything we can use?” this morning to a shipped, live-verified, community-credited v1.0.0 with a tester pipeline. Good day’s work. 🎉
That was the closing line of today’s session, and it earned its place.
The morning question was idle curiosity: Bosch refreshed their thermostat apps — did anything change that my EasyControl integration could use? The answer turned out to be layered. Another open-source community had quietly mapped the cloud API far beyond what I was using — a bulk endpoint, account-level device discovery, an endpoint map for my exact hardware. And buried in their issue tracker: two boost resources I’d never probed.
The best part: probing my own device revealed Bosch had silently lifted the 403 that my entire boost workaround — local timers, synthetic countdowns, mode juggling — was built around. The hack existed for a wall that was no longer there. One struct PUT later, the device’s native boost ran with a real server-side countdown.
By evening: bulk polling (188 requests per minute down to a handful), gateway auto-discovery, native boost, a stack of new controls — spec-driven, probe-verified against the live boiler, tests green, credits paid to the people whose reverse-engineering made it possible, and a tester pipeline so other CT200 owners can tell me what their firmware thinks of it.
Some days the work is grinding. Today the work was pulling a thread.
// end