About this project

hestia provides local, cloud-free control for Keemple smart-home devices — roller-shutter/blind controllers, switches, dimmers, thermostats, smart plugs, and sensors built on Hi-Flying Wi-Fi and WCH Ethernet serial-bridge modules. These devices normally phone home to a vendor cloud over a cleartext, custom 0x7e-framed binary protocol. hestia reimplements that protocol locally so devices communicate with it instead of the vendor cloud, eliminating dependency on the cloud, third-party CDN, or a public IP. It can run in two modes: as a transparent proxy that relays traffic to the cloud while decoding everything, or as a standalone server that replaces the vendor cloud entirely. In standalone mode it operates completely off-grid. Devices are redirected to hestia via local DNS overrides or iptables PREROUTING redirects on port 8925. The protocol codec was built using a clean-room methodology: one group derived a protocol specification from passive on-the-wire observation of the gateway's cleartext LAN traffic, and a second group implemented the codec, servers, and tooling solely from that specification document. No firmware, decompilation, or binary analysis was involved. Capabilities include: - Full protocol decoding and forging: framing and TLV codec, all actuator commands (blinds, dimmers, switches, thermostats, scene/function buttons), all sensor and state reports (doors, motion, smoke/flood, smart-plug power metering), login/handshake, and device roster. - A live web dashboard (TypeScript + Vite SPA over Server-Sent Events) with room-grouped home view, thermostat/AC/blind/scene control, per-node state, smart-plug power metering, battery levels, inline naming, and a guided local rules editor. - Multi-user authentication with role-based access (admin, operator, viewer), a full audit/activity log, and 45 UI locales including RTL support. - An automations engine supporting event, time, cron, sun, presence, and global-field triggers with conditioned, debounced actions. - Local sensor inputs via RTL-SDR: an rtl_433 feeder streams 433 MHz temperature and humidity sensors locally without a gateway or internet. - Optional opt-in integrations: a Tuya v3.3 LAN client for a temperature device, an Open-Meteo outdoor-temperature poller, and IR control via a serial-attached transmitter (Flipper Zero). The backend is Python with an aiohttp web layer and optional SQLite persistence (SQLAlchemy + Alembic) for device state, per-user settings, and accounts. The Keemple protocol codec remains pure-stdlib, first-party code; external libraries (cryptography for AES-128, pyserial for USB-CDC transport) supply only generic primitives. The project reports 100% line and branch coverage using stdlib unittest. Licensed under GNU AGPL v3.0.