Hell's Gate connects compatible Easywave wall switches and an existing Nikobus installation to Home Assistant. It uses a Heltec WiFi LoRa 32 V3 board (ESP32-S3 / SX1262), a local Python/MQTT bridge and an HA dashboard card. The radio runs in 868 MHz FSK mode.
The open-source firmware receives, decodes and reconstructs the studied Easywave frames directly on this general-purpose board. No ELDAT RX09/RX11 or other dedicated Easywave transceiver is needed on the HA side. The aim is to use readily available hardware and reduce the cost of connecting an older installation to HA.
For commands into Nikobus, the existing Niko 05-300 RF interface remains the link to the wired bus. You can also use a compatible button solely as an input for an HA automation, without a Nikobus installation or a 05-300.
I wanted to keep my existing switches and wiring, understand the radio traffic and use the buttons with local Home Assistant automations. I also wanted to be able to use a recognized button straight away, with names and room assignments added later if useful.
On my installation, about 99% of button commands respond as expected. That is my experience with this hardware, not a compatibility figure for other receivers. The radio path has no output-state feedback: HA knows that it requested a command, but cannot tell from that transmission alone whether a lamp actually came on.
The gateway discovers compatible button traffic and keeps a catalogue of received identities. Recognized commands can be used directly from the dashboard. Names, rooms and groups are optional.
A physical button can also trigger an HA automation for equipment outside Easywave/Nikobus, through that equipment's own integration. Examples include adjusting a thermostat or adding detergent to a shopping list. See the use cases and complete automation examples.
The card follows each HA user's language and regional settings. English, French, Dutch and German are included, with English fallback for other languages.
The screenshots use fictional devices. Open frontend/demo.html locally to try the interface; its reception and commands are simulated in memory.
Start with the installation guide and compatibility notes. Installation is manual and intended for users comfortable with firmware builds, local HA apps and MQTT.
For day-to-day use, see the button guide, Nikobus interoperability and ON/OFF commands and testing and limitations.
For development, read the architecture, MQTT/serial reference, modulation notes and contribution guide. The project history explains earlier decisions; the roadmap covers planned virtual transmitters and other work.
The publication review, source export scope and project description document what is included in this repository and how it relates to earlier projects.
Captured button commands have been retransmitted and operated Nikobus circuits on my installation. Someone with compatible radio equipment could reuse learned commands against a receiver that accepts them, even if the home has no HA or Internet connection. Repeated lighting operation is one possible consequence. HA authentication and this gateway's transmission limits do not protect that independent RF path. Read the RF security notes before use.
python -m pip install -r addon/easywave_gateway/requirements.txt
python -m pip install websocket-client matplotlib numpy
python -m unittest discover -s tools -p 'test_easywave_*.py'
python tools/build_frontend.py
python tools/build_frontend.py --check
node --check frontend/hells-gate-card.js
python tools/generate_community_figures.pyEdit frontend/src/card.js, card.css, i18n.js and the JSON language packs,
then rebuild the single card resource. To build the firmware, run
python -m platformio run -e heltec_v87. This is the only firmware environment
in the public configuration and is selected by default.
The release contains V8.7 learned-command firmware, bridge 0.4.0 and card 0.4.1. The release checks included 79 passing Python tests, browser/locale checks and a firmware build. These software checks do not establish receiver compatibility in another installation.
The firmware stores up to 32 learned frames. Learning a new command requires a complete received frame, including its final bit. HA automations also depend on MQTT, HA and the target integration being available; an optional online ordering workflow would depend on its external service.
Production command tables and the app registry start empty. Fictional test
identities are kept separately in tests/fixtures/. Modulation figures are
synthetic illustrations generated from source parameters, not antenna measurements.
Easywave2MQTT connects HA to a dedicated ELDAT RX09 Easywave transceiver. Hell's Gate puts reception and frame reconstruction for the studied commands into open-source firmware on the Heltec. That gives users an option based on a general-purpose radio board, with lower hardware cost as a goal. Both approaches still depend on compatible receiving equipment for the commands they send.
Nikobus-HA takes another route, connecting to the wired bus through PC-Link. The RF approach here keeps the existing 05-300 as its entry point into Nikobus.
Original code and documentation use the MIT license. Dependencies retain their own licenses; see third-party notices. This is an independent project, without endorsement from Niko, Easywave, Heltec or Home Assistant.


