Z2M + IKEA E1743 remote = light + rollershutters control

Not always having your phone with you can create certain inconveniences when controlling your smarthome. So I needed a cheap remote that can have certain tasks assigned to it.

Two button IKEA E1743 can transmit 5 codes: on, off, brightness up/down/stop - seems like a perfect combination to control a rollershutter and a light at a cost of ā‚¬6.

mqtt.items

String   remote01_click                  "Remote01"                             <movecontrol>   (gPers_Change_Day, gZB_remote)   {channel="mqtt:topic:remote01:click"}
String   remote01_update                 "Remote01 Update Available [%s]"                                                        {channel="mqtt:topic:remote01:update"}
Number   remote01_batt                   "Remote01 Battery [%.1f %%]"                           (gPers_Change_Day, gZB_bat)      {channel="mqtt:topic:remote01:batt"}
Number   remote01_link                   "Remote01 Link: [%s]"                                  (gPers_Change_Day)               {channel="mqtt:topic:remote01:link"}
Number   remote01_lastseen_epoch         "Remote01 [%s]"                                        (gZB_lastseen)                   {channel="mqtt:topic:remote01:lastseen_epoch"}
DateTime remote01_lastseen_datetime      "Last Seen: [%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS]"

mqtt.things

 // IKEA E1743 Remotes
Thing mqtt:topic:remote01 "Remote01" @ "Bedroom" {
  Channels:
    Type string : click             "Click"         [ stateTopic="zigbee2mqtt/remote01", transformationPattern="JSONPATH:$.click" ]
    Type string : update            "Update"        [ stateTopic="zigbee2mqtt/remote01", transformationPattern="JSONPATH:$.update_available" ]
    Type number : batt              "Batt"          [ stateTopic="zigbee2mqtt/remote01", transformationPattern="JSONPATH:$.battery" ]
    Type number : link              "Link"          [ stateTopic="zigbee2mqtt/remote01", transformationPattern="JSONPATH:$.linkquality" ]
    Type number : lastseen_epoch    "LastSeen"      [ stateTopic="zigbee2mqtt/remote01", transformationPattern="JSONPATH:$.last_seen" ]
}

mqtt.rules

rule "Remote01 control Bedroom"
when
   Item remote01_click received update
then
     switch triggeringItem.state.toString {
        case "on"               : { logInfo("Remote01", "ON")  Shelly1_04_Power.sendCommand("ON")  }
        case "off"              : { logInfo("Remote01", "OFF") Shelly1_04_Power.sendCommand("OFF") }
        case "brightness_up"    : { logInfo("Remote01", "UP")   relay3_rolladen.sendCommand("UP")   relay4_rolladen.sendCommand("UP")   }
        case "brightness_down"  : { logInfo("Remote01", "DOWN") relay3_rolladen.sendCommand("DOWN") relay4_rolladen.sendCommand("DOWN") }
        case "brightness_stop"  : { logInfo("Remote01", "STOP") relay3_rolladen.sendCommand("STOP") relay4_rolladen.sendCommand("STOP") }
        default                 :   logInfo("Remote01", "Error in command")
     }
end

So now a short press on ā€œIā€ and ā€œOā€ will turn ON and OFF the light. While a press and hold will move the roller shutters UP or DOWN and STOP on button release.

1 Like