The Geek Automation System project, originally designed for greenhouse automation on Raspberry Pi 4, has expanded into a comprehensive smart home controller. It now supports Rock Pi hardware, Zigbee sensors, and cloud-based management. The system allows users to monitor temperatures, control devices, and receive notifications.

The architecture consists of connected devices, a controller, and a cloud service. The controller, running on Raspberry Pi or Rock Pi, processes automation rules locally, ensuring functionality even during internet outages. It supports devices connected via GPIO, local network modules like ESP8266 and ESP32, and Zigbee sensors via a USB coordinator.

The system utilizes Zigbee2MQTT and Mosquitto for local communication. It distinguishes between states, such as smoke detection, and events, like button presses, to ensure accurate reporting. Automation rules can be configured to trigger actions based on conditions, with cooldown settings available for repeated tasks.

The cloud service, GeekLab, enables remote access and notifications through a personal account. It uses gRPC for communication and mTLS for secure, encrypted connections between the controller and the server. This setup avoids the need for manual router configuration or opening incoming ports.

Provisioning is managed by a dedicated service called provision-agent. It handles the secure registration of new controllers, including the generation of digital certificates and local storage of private keys. This process ensures that each device is uniquely identified and authenticated within the cloud ecosystem.