I released on GitHub a PHP library for querying and editing data on the Tado Thermostat System.
It is integrated in Laravel 5.x for quick setup in this excellent framework.
This article describes a TDD (Test Driven Development) approach to implement a Finite State Machine (FSM) using PHP+Laravel. However, such method is general and could be used in the programming language of your choice.
This tutorial describes a TDD approach to refactor code to Strategy pattern. Starting from working code and some test, refactoring steps are applied to obtain cleaner code