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.