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

Running the server

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.