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 article describes how to use Netgear Arlo Cameras API. Even though no public API is provided, I succeeded in interacting with the cameras by sniffing the traffic sent from the official web application