Documents
Technical descriptions, specifications and notes for developers and system administrators.
For users
- User guide — installing the app, loading the program into the controller, pairing, guest keys, automation and security.
- Controller configurator — choosing how the phone and the controller talk to each other.
- BLE controller — takes commands over Bluetooth with no internet, runs on batteries and fires only when the phone is nearby (ESP32 / S3 / C3 / C6).
- Internet controller — always online, opens the object from anywhere (ESP32 / ESP8266 — Shelly Plus 1, NodeMCU, Wemos D1; Raspberry Pi Zero W / 3 / 4 / 5, Python and GPIO).
- Integrations without replacing the program — Tasmota, ESPHome, Home Assistant and Shelly connect through an Entrixy webhook.
Architecture and protocols
- Architecture v2 — the overall client–server–controller diagram, data flows and message formats.
- E2EE architecture — end-to-end encryption: what is encrypted and where (AES-256-GCM on the device).
- BLE — threat model — what an attacker listening to the radio can and cannot do (ECDH X25519 with HMAC-SHA256).
- BLE — time synchronisation — how the controller learns the current time, in order to check the validity window of guest keys.
Firmware and script sources
- /esp32-example/ — the BLE program (NimBLE, deep sleep). The template for the configurator
/esp/ble/. - /esp32-ws-example/ — the Wi-Fi program for the ESP32 (a WSS client and a relay). The template for the configurator
/esp/socket/in ESP32 mode. - /integrations/esp8266/ — the Wi-Fi program for the ESP8266. The template for the configurator
/esp/socket/in ESP8266 mode. - /integrations/raspberry-pi/ — the Wi-Fi script in Python for the Raspberry Pi. The template for the configurator
/esp/socket/in Pi mode. - /integrations/nodejs/ — a Wi-Fi client in Node.js for headless servers and OpenWRT routers. The configurator does not build it yet, but the protocol is compatible.
Design and interface
- Design guidelines — the palette, typography and app components.
Running the server
- Capacity — a load estimate up to 100 thousand users, and the bottlenecks.
- Scaling plan for 100k — phases A/B/C/D: what to do and in what order.
- Server load — where it comes from — what the server spends resources on and what to do about it.
- Server load dashboard — charts of WebSocket connections, CPU and memory over 24 hours.
Testing
- Test plan — 191 scenarios, 37 of them critical for the production server. It covers BLE pairing, WebSocket presence, guest keys, geo/Wi-Fi/time conditions, webhooks (phone and server), restart recovery and localisation.