How to create timers in rules

For your second question, the answer is: You can’t. We will have to create another item like a toggle that goes on and off each time the item GF_Entryway_Light2 receives a command ON and you will need some rules to deals with that.

So Items:

// Updated Item
// Only sends command OFF to the relay and expire OFF after 3s
Switch   GF_Entryway_Light2                  "Entrance Ceiling"            <light>            (GF_Entryway, gLights, gLight2)                  [ "Lighting"   ]   { mqtt=">[broker:cmnd/kitchen/power2:command:OFF:OFF]", expire="3s,command=OFF" }

//This one doesn't change
Switch   GF_Kitchen_Light3                   "Kitchen Downlights"          <light>            (GF_Kitchen, gLights, gLight3)                   [ "Lighting"   ]   { mqtt=">[broker:cmnd/kitchen/power1:command:*:default], <[broker:stat/kitchen/POWER1:state:default]", autoupdate="true" }

// New Item
// Both command ON and OFF send ON to the relay
Switch   GF_Entryway_Light2_Toggle "Entrance Ceiling" <light>  (GF_Entryway, gLights, gLight2) [ "Lighting" ] { mqtt=">[broker:cmnd/kitchen/power2:command:ON:ON], >[broker:cmnd/kitchen/power2:command:OFF:ON]" }

Rules:

rule "Entryway light toggles"
when
    // Every time the switch is actionned on the sitemap a command is received
    // It doesn't matter if it's ON or OFF because the command triggered the relay ON
    // as per the binding
    Item GF_Entryway_Light2_Toggle received command
then
    GF_Entryway_Light2.sendCommand(ON) // After 3s an OFF command will be sent by the expire binding and trigger the relay OFF
end

In your sitemap, replace the item GF_Entryway_Light2 by the item GF_Entryway_Light2_Toggle

What happens is that every time you action that toggle on the sitemap, an ON command is sent to the relay and a timer is started in another item for 3s. When that timer expires, the second item (Timer one) will send a off command to the relay. But your first item remains ON or OFF.

Regards