dresden-elektronik / deconz-rest-plugin

deCONZ REST-API plugin to control ZigBee devices
BSD 3-Clause "New" or "Revised" License
1.88k stars 483 forks source link

SYMFONISK sound remote gen2 #6775

Closed LiamTheCat closed 1 year ago

LiamTheCat commented 1 year ago

Device

Screenshots

image

Basic

image

Power Configuration

image

Identify

image

Poll Control

image

ZLL Commissioning

image

Identify

image

Group

image

On/Off

image

Level Control

image

OTAU

image

ZLL Commissioning

image

Mimiix commented 1 year ago

Hi,

Looks like the values are not populated in the screenshots. can you please click "read" on all cluster screenshots and make sure the values are populated?

Kind regards,

LiamTheCat commented 1 year ago

Thank you very much. I have clicked read everywhere. Here are the new screenshots:

Basic

image

Power Configuration

image

Identify

image

Poll Control

image

OTAU

image

BR

ebaauw commented 1 year ago

We need to sniff the commands it sends on each button.

I'll pick one up, next time I'm at IKEA. See https://www.ikea.com/nl/nl/p/symfonisk-afstandsbediening-voor-geluid-gen-2-90524607/.

bierlos commented 1 year ago

i have the same problem. bought on today. seems, it's like a symfonisk gen 1 plus 2 scene buttons with one and two points. those scene buttons have 3 steps: click, doubleclick and long click

ebaauw commented 1 year ago

it's like a symfonisk gen 1

Huh? The first SYMFONISK controller has a dial and a single button. https://www.ikea.com/au/en/p/symfonisk-sound-remote-black-70433788/

ebaauw commented 1 year ago

Picked one up today. It pairs with deCONZ immediately and a ZHASwitch resource is created automatically (probably by the legacy code doing a Model Identifier starts with). Firmware v1.0.012. Haven't yet paired it to the dirigeria hub.

Sniffer reveals the following commands, all sent as unicast to the coordinator, without any bindings.

[EDIT] Updated with new commands after firmware update

Button Action Command
Play Press/Release Toggle
Play Hold Toggle
Play Release after Hold --
+ Press/Release Move with On/Off (Up, 255)
+ Hold Move (Up, 255), repeated every 0.2s while holding
+ Release after Hold --
- Press/Release Move with On/Off (Down, 255)
- Hold Move (Down, 255), repeated every 0.2s while holding
- Release after Hold --
Previous Press/Release Step (Down, 1, 0)
Previous Hold Step (Down, 1, 0)
Previous Release after Hold --
Next Press/Release Step (Up, 1, 0)
Next Hold Step (Up, 1, 0)
Next Release after Hold --
. Press/Release 0xFC7C/0x01 (0101)
0x02/0xFC80/0x01
0x02/0xFC80/0x03
. Double Press 0xFC7C/0x01 (0102)
0x02/0xFC80/0x01
0x02/0xFC80/0x06
. Hold 0xFC7C, cmd 0x01 (0103)
Identify (broadcast !)

0x02/0xFC80/0x01
0x02/0xFC80/0x02
. Release after Hold --
0x02/0xFC80/0x04
.. Press/Release 0xFC7C, cmd 0x01 (0201)
0x03/0xFC80/0x01
0x02/0xFC80/0x03
.. Double Press 0xFC7C, cmd 0x01 (0202)
0x03/0xFC80/0x01
0x02/0xFC80/0x06
.. Hold 0xFC7C, cmd 0x01 (0203)br>0x03/0xFC80/0x01
0x02/0xFC80/0x02
.. Release after Hold --0x03/0xFC80/0x04

So that would lead to the following buttonevent values:

buttonevent Button Action
1002 Play Press/Release or Hold
2001 + Hold (every 0.2s)
2002 + Press/Release
3001 + Hold (every 0.2s)
3002 - Press/Release
4002 Previous Press/Release or Hold
5002 Next Press/Release or Hold
6000 . Initial Press
6001 . Hold (only once)
6002 . Release (Single Press)
6003 . Long Press
6004 . Double Press
7000 .. Initial Press
7001 .. Hold (only once)
7002 .. Press/Release (Single Press)
7003 .. Long Press
7004 .. Double Press

Note that per Hue specs, x001 events are expected to be issued repeatedly while holding the button. This is the case ofr for + and - , but not for . and ... I'm not sure I like the absence of a "closing" 2003 or 3003, but I don't want the API plugin to generate fake events based on not receiving anything for some time.

ebaauw commented 1 year ago

Paired it to the Dirigera, and recevied a firmware update to v1.0.32. That changes the device... A lot. Screenshot 2023-03-15 at 17 43 40

I now has three endpoints; the . now sends commands from the 0xFC80 on endpoint 0x02; the .. from 0xFC80 on endpoint 0x03. It does require explicit bindings now (maybe the legacy API code created the bindings before?). And Battery Percentage Remaining now adheres to the standard, reporting the value in 0.5% - that's a first for IKEA.

The Play buttons is bound to a group (as reported by the ZLL Commissioning cluster). Not sure if that's the device or the legacy code of the API plugin. Consequently, it sends Toggle to that group, even after binding On/Off to the coordinator. I cannot seem to ditch the group binding. It visible in the binding table, but an Unbind Requests results in a No Entry.

For . and .. now seem to send

So

So that would result in buttonevent values 6000/6002; 6000/6004, and 6000/6001/6003.

Note to self: damn, we need a separate indication in the capabilities whether the x001 repeats or not.

ebaauw commented 1 year ago

Above commit adds support for firmware v1.0.32. Unfortunately, this firmware isn't (yet?) retrieved by ikea-ota-download.py. The image type is 0x110E.

It should work for the original firmware as well, except for . and ... I don't want to add support for . and .. on firmware v1.0.012, since that would require C++ code to handle the two-byte payload for the 0xFC7C/0x01 command.

Mimiix commented 1 year ago

@ebaauw Got one myself aswell. Would you mind sharing the OTA file so i can update it and make the . and .. work?

nvm, found it here: https://github.com/zigpy/zigpy/discussions/660?sort=new

LiamTheCat commented 1 year ago

Hello,

I have updated my Symfonisk Gen 2 to version 1.0.32. Unfortunately I don't get any events displayed. I have already rebinded the remote control, unfortunately without success. Do I have to do anything after the update to make the remote control work?

Many thanks and best regards

Update:

Solved by yourself: https://github.com/dresden-elektronik/deconz-rest-plugin/issues/6817#issuecomment-1486515942

Works fine

ebaauw commented 1 year ago

Upgraded mine to 1.0.35 (found on https://github.com/Koenkk/zigbee-OTA). No noticeable changes from 1.0.32.

Idaho947 commented 1 year ago

Upgraded mine to 1.0.35 (found on https://github.com/Koenkk/zigbee-OTA). No noticeable changes from 1.0.32.

Hello how do you do ? When I try to select the file the field stay white : image

See that in log OTA : image

EDIT : found right files here : https://github.com/Koenkk/zigbee-OTA/tree/master/images