Back in 2021 I wrote about the Aqara 1, 2 and 4 way scene switches. Great idea, at the time I had limited use for them. A lot has happened meantime and the Zigbee scene switches they sent me are now in use in our new home. I also have a couple of Zemismart scene switches which rely on mains power (i.e. neutral – which isn’t available in any of my normal mains wall light switches – which immediately limits the use of the latter despite their superior displays.
With that background in mind and a need for more wireless switches around the house to control an increasing number of smart devices, I decided to take a chance on some cheap AliExpress 4-way scene switches.
All I know about these is that they run on either a pair of CR2032 or CR2016 batteries (I keep loads of CR2032s handy) and come from Shenzhen New Green Energy Technologies Co Ltd via AliExpress.
Opening the box I found the switch – neither good nor bad looking – plain white – needs a screwdriver or similar to lever the back off to change batteries. Also inside a pair of adhesive pads. Shame it’s the back that comes of – so when you replace the batteries you lose your adhesive pads.
I levered the back off easily without doing any damage to reveal fixings for both CR2016 and CR2032 batteries – that’s a first – I chose the latter. Nice tight fit – that’s refreshing. No obvious reset button so I replaced the back.

A good start. Instructions came in English and Chinese. Apparently button 3 (bottom left) is the reset button (10 seconds press). There’s nothing in the brief instructions about modes so I went straight off to my Zigbee2MQTT setup (inside Home Assistant in my case) to “Allow joining”.
It was at this point that I realise that half of my Home Assistant side panel was magically missing – I went looking for yesterday’s back up (ALWAYS keep daily automatic backups). Turns out it was Home Assistant 2026.6 and HACS. I’ll leave updates alone for few days – anyway back to the 4-way button…
I went to add the device into Zigbee2MQTT – seconds later it was in with the usual long number for a name – I renamed it ali-scene-1 and ticked to update Home Assistant.
Battery exposed – action exposed – all is well, now to press some buttons… 1-single etc, 1-double etc, 1-hold etc. All looks good to me… exactly what I’d expect.
But NOTHING in Home Assistant. With help from ChatGPT I went into Zigbee2MQTT – settings – settings – Home Assistant integration – and ticked “experimental event entities” and restarted Home Assistant. That solved the problem. ChatGPT recommends leaving that setting ticked as it could be needed for other new devices. I’m fine with that.
Finally, though as you see on the left, Zigbee2MQTT exposed all actions including HOLD, the hold action ended up in Home Assistant as not for example button_1_hold but as hold, hence it could not tell which button was held, until chatGPT came up with THIS suggestion – using MQTT directly from Zigbee2Mqtt… see this Yaml automation which right now assigns the same result to all of the actions… just a matter of changing the action field…
alias: Ali Scene Controller
triggers:
- trigger: mqtt
topic: zigbee2mqtt/ali-scene-1
actions:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '1_single' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '1_double' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '1_hold' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '2_single' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '2_double' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '2_hold' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '3_single' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '3_double' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '3_hold' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '4_single' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '4_double' }}"
sequence:
- action: script.all_off
- conditions:
- condition: template
value_template: "{{ trigger.payload_json.action == '4_hold' }}"
sequence:
- action: script.all_off
mode: single
Worth buying? You decide… I paid just over 7 euros each and currently they’ve dropped the price again. Bit of hassle but then you pay your money… I also noted that the units did not automatically pick the nearest Zigbee router.. that’s not uncommon and its a matter, if you significantly move one of these, of unpairing and repairing – takes seconds. I’m going to have another couple 🙂



Do you know Switch Manager for HA?
https://github.com/Sian-Lee-SA/Home-Assistant-Switch-Manager