Version 1.2.4 can translate the infrared commands emitted by a compatible Electrolux or AEG Hob²Hood hob into commands understood by the tested Faber hood. Translation runs entirely on AR01V3. Home Assistant is optional and is not part of the local command path.
The Hob²Hood / Faber section contains three persistent switches:
Faber device with
fan, light and diagnostic entities. Changing this setting performs a
controlled restart so ESPHome discovery is rebuilt consistently;The switches are independent. Translation can run without Home Assistant, the Home Assistant device can be used for manual control without translation, and the daylight policy can be enabled only where it is wanted. All three default to off and their values are stored in NVS. An upgrade preserves the first two existing values; the newly added Light by HA switch starts off.
| Hob²Hood command | Faber command |
|---|---|
| Fan 1 | short Power press |
| Fan 2 | Minus / speed 2 |
| Fan 3 | Plus / speed 3 |
| Fan 4 | 4(i) / intensive |
| Fan off | long Power press |
| Every Faber fan command | a burst of three identical frames with 50 ms of silence between frames |
| Light on | one Light frame, 340 ms pause, then a second Light frame (about 358 ms between frame starts) |
| Light off | the same two frames, then a third Light frame after a further 1500 ms pause |
Recognized fan repeats are forwarded rather than deduplicated. Identical light set commands repeated by the hob are coalesced for 30 seconds so one target request cannot start the whole toggle sequence repeatedly; the opposite light command is accepted immediately. The fixed Faber waveforms are stored in program flash and do not use any of the ten persistent IR slots. Transmission uses a 38 kHz carrier.
The light sequence reflects the verified behavior of the target hood. Each logical Light press transmits exactly one complete frame. Two frames started about 358 ms apart leave the lamp on, while a third frame sent after a further 1500 ms pause leaves it off. While any sequence is active, new fan and light commands are rejected instead of being queued, so commands cannot overlap or run immediately after an earlier macro.
For the first 15 seconds after every gateway restart, all Faber transmission is blocked. This prevents startup state restoration or Home Assistant synchronisation from accidentally operating the hood, especially toggling its light. The ESP32 RMT driver also initializes the IR output in its inactive state.
The AR01V3 IR receiver is muted before every locally transmitted Faber frame. This prevents the gateway from decoding its own light toggle and incorrectly inverting the estimated state sent to Home Assistant.
The optional Faber device contains:
Fan and light states are estimates, not feedback from the hood. AR01V3 updates them after commands received from Hob²Hood, sent by Home Assistant, or recognized from the Faber remote. A missed infrared frame, a physical hood button, or a remote used outside the AR01V3 receiver’s range can make the reported state differ from reality. The next recognized command reconciles the estimate as far as that command allows.
The visible status entity lets an automatically generated Home Assistant area show a separate Faber device section. Without additional frontend setup, Home Assistant uses its normal fan and light entities.
The repository also includes the optional
home-assistant/faber_hood_more_info.js frontend helper. It replaces the
separate Faber fan, light and status cards in the automatically generated area
with one Hood tile. Opening the tile shows one native-style control with fan
power, speeds 1–4 and light together. It does not create a dashboard or panel.
Installation is described in home-assistant/README.md.
Diagnostics remain on the normal Faber device page. The helper discovers the Faber device through Home Assistant’s registry and therefore does not require hard-coded room-specific entity IDs.
Local translation remains autonomous, but Home Assistant can optionally block only an automatic Hob²Hood Light on request while it is bright. The policy never blocks fan commands, Hob²Hood Light off, manual control from the Faber Home Assistant device, or the physical Faber remote.
Because the Faber light command is a toggle, an automatic Hob²Hood Light off is not transmitted when AR01V3 already estimates the lamp as off. In particular, when daylight policy blocks light-on at hob startup, the delayed light-off sent after hob shutdown is consumed without running the Faber macro, so the lamp does not flash. Manual Home Assistant and Faber-remote commands are not subject to this safeguard.
A blocked automatic Light on remains pending while the hob is active. If
the selected sensor falls to the allow threshold (or sun.sun changes below
the horizon) before the hob sends Light off, AR01V3 runs the normal light-on
sequence. The later Light off clears any pending request and turns the lamp
off only when AR01V3 estimates that it was switched on. Manual light control,
disabling translation or disabling Light by HA also cancels the pending
request. A brightness increase never turns an already-on lamp off.
The repository contains:
home-assistant/hob2hood_faber_light_policy_package.yaml, which creates one
global allow/block helper and a minute heartbeat;home-assistant/blueprints/automation/envpl/hob2hood_faber_light_policy.yaml,
which calculates that decision from a user-selected illuminance sensor or
sun.sun.Every compatible AR01V3 automatically subscribes to the same policy. There is no gateway selector in the automation. Only gateways with local Hob²Hood-to-Faber translation and Light by HA enabled use the value.
With an illuminance sensor, the user configures one threshold, defaulting to
200 lx. Automatic light-on is allowed at or below that value. The blocking
threshold is the configured value plus one third, with a minimum 10 lx gap.
Between the two limits the previous decision is kept, so the default gives a
200/about 267 lx hysteresis without exposing another setting.
If the selected sensor is unavailable, the previous decision is retained for
30 minutes and then sun.sun is used. Selecting sun.sun directly allows the
light below the horizon and blocks it above the horizon.
The policy sensor changes every minute so AR01V3 can detect a stale Home Assistant connection. If no valid refresh is received for five minutes, if the package or automation is absent, or if the policy is unavailable, firmware fails open and allows automatic light-on. A Home Assistant failure therefore cannot disable the original local bridge indefinitely.
Installation and GUI configuration are described in
home-assistant/README.md.
The Hob²Hood timings follow the known Electrolux/AEG command set. The output waveforms come from the supplied Faber remote captures and are confirmed for the tested installation. Other Faber models or remote revisions may use different waveforms and must be verified before relying on this bridge.