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.