Control a hood (AEG/Electrolux Hob2hood) using tasmota and YTF IR Bridge

Hey folks, i own a “smart” hood from AEG, which means it should automatically turn on/off when i start cooking.
image

Unfortunately my AEG stove/oven is not compatible, so i needed to fix that.
I utilize the tasmota Bridge for voice control.
“Hey siri, turn my hood light on/set fan to 0/25/50/75/100%”
My IR Raw codes can be found on pastebin:

The formatted codes (used for receiving) can be found in other repositories:

VENT_1 = 0xE3C01BE2
VENT_2 = 0xD051C301
VENT_3 = 0xC22FFFD7
VENT_4 = 0xB9121B29
VENT_OFF = 0x55303A3
LIGHT_ON = 0xE208293C
LIGHT_OFF = 0x24ACF947

Description for the IR Gateway is here:

The box is quite cheap (<20€) https://www.amazon.de/dp/B08VS6347H
Documentation on how to program it: Pearls WLAN-Universalfernbedienung mit MQTT nutzen | c't Magazin - That’s German :confused:

So for turning on/off the light i use the following ruleset:

var Timer light_CMD1 = null
var Timer light_CMD2 = null

rule "Hob lightswitch"
when
    Item Hob2Hood_Light changed
then
    if(Hob2Hood_Light.state==ON)
    {
        Hob2Hood_cmd.sendCommand("3,718,1472,720,726,1388,752,718,1472,694,750,1390,2994,720,724,720,726,1386")
        light_CMD1 = createTimer(now.plusSeconds(1)) [|
            Hob2Hood_cmd.sendCommand("0,720,1468,722,724,1392,748,722,1470,718,726,1416,2968,696,748,696,748,1388")
            light_CMD1 = null
        ]
        light_CMD2 = createTimer(now.plusSeconds(2)) [|
            Hob2Hood_cmd.sendCommand("0,744,1472,720,724,1414,726,698,1494,718,726,1392,2966,750,722,722,724,1386")
            light_CMD2 = null
        ]
    }
    else
    {
        // Licht aus
        Hob2Hood_cmd.sendCommand("3,684,1488,658,778,684,758,686,2278,660,788,628,1532,688,1504,686,786,658")
        light_CMD1 = createTimer(now.plusSeconds(1)) [|
            Hob2Hood_cmd.sendCommand("0,706,1506,660,782,634,814,660,2250,660,786,686,1532,660,1504,686,786,656")
            light_CMD1 = null
        ]
        light_CMD2 = createTimer(now.plusSeconds(2)) [|
            Hob2Hood_cmd.sendCommand("0,656,1532,686,784,660,758,684,2254,688,758,710,1482,682,1510,682,786,656")
            light_CMD2 = null
        ]
    }
end

I know, that looks ugly, but… it works :wink: