Photo by [Markus Winkler](https://unsplash.com/@markuswinkler) on [Unsplash](https://unsplash.com/photos/5g_VwYtFP8o)

How Home Assistant found my Thread Thermostats

The smart home can be a wonderful thing once everything works, nothing changes, and everyone “behaves” as the “smart home automator” anticipated. And then there is the cruel reality torturing us with breaking changes due to software upgrades, hardware failures, network brainteasers, and a general lack of automation in what usually is just our hobby project. My Intent I had a very simple addition to my smart home setup in mind: I own a couple of Eve thermostats, which I very much like....

February 5, 2023 · 4 min · Carsten Rösnick-Neugebauer

AWS IoT Provisioning Templates and Policies Within

Lately, I had to work a bit with AWS IoT. One aspect thereof is the device registration with just-in-time provisioning (JITP) being one option. In essence, with JITP you need to provide a template that configures all relevant resources of a newly registered IoT device: parameters like the device’s name, its certificate, and policies to be attached to the said certificate. Said certificate can then be used by its respective IoT device to authenticate with AWS IoT....

January 17, 2023 · 4 min · Carsten Rösnick-Neugebauer

Offline Development and Code Review Workflow

This is a story about how git-svn and a VSCode allowed me to maintain the peer-review-based software development cycle I am used to (and fond of) while working in an environment with only occasional access to the SVN-based source repository. git-svn I give you the essential points of my git-svn workflow without boring you with an in-depth explanation of commands or even an exploration of all the options git-svn comes with....

January 3, 2022 · 7 min · Theme PaperMod

pytest: Expand test inputs using dynamic fixtures

When writing tests in Python, I always choose the pytest test framework. It is concise, feature-rich has a great ecosystem of plugins, is widely used, and supported in the community. One aspect which makes it blend seamlessly with the code under test is how test input can be passed to it. Within this part of the usual arrange-act-assert structure of tests, let’s explore one particular feature: parametrization. Accompanying example Before we dive into pytest, let’s build a concrete example to eventually write tests for....

June 30, 2020 · 7 min · Carsten Rösnick-Neugebauer

From Python to Rust: First Impressions

I did a lot of systems programming in the last couple of months. In Python. Time to explore how I would do that in a language that is closer to the system yet brings guarantees I’d love to have in Python as well: Rust. But what are the core concepts, how does Rust code feel like? Let’s find out. Motivation A good share of my recent work involves building libraries in Python around proprietary communication protocols that handle data retrieval, decoding, validation, and proper error handling....

June 18, 2020 · 11 min · Carsten Rösnick-Neugebauer