Linkind 1-Key Remote Control Setup with Node Red

There were some Linkind bundles on sale (bulb & remote, outlet & remote) recently and got 2 of each. Did I need the bulbs and outlets, no, but the remotes cost out, were a steal. Only caveat is they aren’t “normal” Zigbee. They will pair, but only send the battery state natively. Did some digging and found how to get it going with the Zigbee/zwave usb stick. Collected the knowledge and condensed it here.

Zigbee Pairing:

  1. To reset 1-Key and enter Zigbee pairing mode, Remove battery cover and find reset button switch. You must squeeze the sides of the 1-Key together so that the switch does not engage while pressing reset button until the LED flashes.

  2. Pair with Zigbee with HA and name.

Get Device ID:

  1. Go to the /developer-tools/event page and enter “zha_event” in “Event to subscribe to” under “Listen to Events” then hit “Start Listening”

  2. Click the 1-Key Remote and data should populate the box.

  3. Look for the “device_id” and copy it. In the image it starts with 8077.

Node-Red:

[{"id":"e12aea8ac8d3d2e3","type":"tab","label":"Linkind Button","disabled":false,"info":""},{"id":"f92027626dbb32f2","type":"server-events","z":"e12aea8ac8d3d2e3","name":"","server":"671e8981.11ec88","version":1,"event_type":"zha_event","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"$outputData(\"eventData\").event_type","valueType":"jsonata"}],"x":90,"y":405,"wires":[["bbf52eeaf2916186"]]},{"id":"bbf52eeaf2916186","type":"switch","z":"e12aea8ac8d3d2e3","name":"Button Filter","property":"payload.event.device_id","propertyType":"msg","rules":[{"t":"eq","v":"device_id_1","vt":"str"},{"t":"eq","v":"device_id_2","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":295,"y":405,"wires":[["70b101bfd18fe5ef"],["0323a9332a1dcf95"]]},{"id":"70b101bfd18fe5ef","type":"switch","z":"e12aea8ac8d3d2e3","name":"1-Key Remote 1","property":"payload.event.command","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"},{"t":"eq","v":"move","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":500,"y":330,"wires":[["74514d8e6851d6fa"],["6e92902acce1424a"],[],[]]},{"id":"74514d8e6851d6fa","type":"api-call-service","z":"e12aea8ac8d3d2e3","name":"Light 1 On","server":"671e8981.11ec88","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.light_bulb_1","data":"{ \"brightness\":\"255\" }","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":285,"wires":[[]]},{"id":"6e92902acce1424a","type":"api-call-service","z":"e12aea8ac8d3d2e3","name":"Light 1 Off","server":"671e8981.11ec88","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.light_bulb_1","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":345,"wires":[[]]},{"id":"0323a9332a1dcf95","type":"switch","z":"e12aea8ac8d3d2e3","name":"1-Key Remote 2","property":"payload.event.command","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"},{"t":"eq","v":"move","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":500,"y":480,"wires":[["3c53d918efbf27f6"],["1f79dee8f6d4e282"],[],[]]},{"id":"3c53d918efbf27f6","type":"api-call-service","z":"e12aea8ac8d3d2e3","name":"Light 2 On","server":"671e8981.11ec88","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.light_bulb_2","data":"{ \"brightness\":\"255\" }","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":435,"wires":[[]]},{"id":"1f79dee8f6d4e282","type":"api-call-service","z":"e12aea8ac8d3d2e3","name":"Light 2 Off","server":"671e8981.11ec88","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.light_bulb_2","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":495,"wires":[[]]},{"id":"671e8981.11ec88","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}]

Use the above flow and replace your “device_id”(s) in the “Button Filter” and your light/switch entities.

You should be in full control now.

The first node listens to the zha_events,
the second node “Button Filter” filters the "device_id"s and sends them out individual ports,
the third nodes “1-Key Remote 1, 2” filter the commands “on, off, move, stop” to individual ports on to the desired devices

The remotes toggle between “on” & “off” (when pressed once), “move” (press and hold) and “stop” (release from hold)

Batteries not included
Your Mileage May Vary

2 Likes