I got a Hakuta smoke machine working in HA using a Sonoff RF Bridge R2 flashed with Tasmota (release-sensors). Learned the remote’s buttons into RfKey1
/RfKey2
, then called them from HA with simple MQTT scripts. Sometimes it needs two presses (typical for budget 433 MHz).
Hardware:
- Sonoff RF Bridge R2 → flashed with Tasmota Sensors (I’m on
14.2.0 (release-sensors)
)
- Hakuta smoke/fog machine with 433 MHz remote
- (Link to my smoke machine): https://www.amazon.co.uk/dp/B09WTGNP3M
1) Flash + basic setup
- Flash the bridge with Tasmota Sensors.
- In Tasmota: Configuration → Configure Module → Sonoff Bridge (25).
- Configure Wi-Fi and MQTT (broker IP/port/user/pass).
2) Capture the remote’s RF codes
Open the Tasmota Console (web UI → Console) and press the Smoke and Stop buttons on the physical remote. You should see lines like:
{"RfReceived":{"Sync":23146,"Low":726,"High":2212,"Data":"45550C","RfKey":"None"}}
{"RfReceived":{"Sync":23122,"Low":724,"High":2208,"Data":"455530","RfKey":"None"}}
For my Hakuta remote:
45550C
= Smoke
455530
= Stop
(Your hex may differ; use whatever you see in your console.)
3) Learn the buttons into RF key slots
Put the bridge into learn mode and press each button twice (first press shows a preamble A0 55
, second press captures the real frame):
RfKey1 2 // then press the Smoke button twice (within ~10s)
then
RfKey2 2 // then press the Stop button twice (within ~10s)
You should see "RfKey1":"Learned"
and "RfKey2":"Learned"
.
When learned correctly, pressing the physical remote later will show RfKey:1
for Smoke and RfKey:2
for Stop in the console.
Quick local test:
RfKey1 // sends Smoke
then
RfKey2 // sends Stop
Tip: for first tests, hold the bridge within ~0.5–1 m of the fogger; TX range is weaker than RX sensitivity.
4) Home Assistant scripts (MQTT)
Create two Scripts in HA (YAML) that publish to your bridge’s command topics.
Replace tasmota_D3A2FA
with your device’s topic
sequence:
- action: mqtt.publish
metadata: {}
data:
topic: cmnd/tasmota_D3A2FA/RfKey1
payload: ""
qos: 0
retain: false
evaluate_payload: false
alias: Smoke Machine - Smoke
description: Send the Hakuta SMOKE command via RFBridge
sequence:
- action: mqtt.publish
metadata: {}
data:
topic: cmnd/tasmota_D3A2FA/RfKey2
payload: ""
qos: 0
retain: false
evaluate_payload: false
alias: Smoke Machine - Stop
description: Send the Hakuta STOP command via RFBridge
In my setup, sometimes I need two presses but I think that’s normal with some 433 MHz receivers (they expect longer/ repeated frames).