ioBroker.zigbee icon indicating copy to clipboard operation
ioBroker.zigbee copied to clipboard

SYMFONISK sound remote gen2

Open Paalap opened this issue 1 year ago • 30 comments

Hi,

I have some issues connecting/using the SYMFONISK gen2. Paring is fine but no objects for actions are created. The device is supported by Z2M - do I have to update the z2m "core", if so how it can be done?

Thank you in advance and BR

This is what I have for now 2023-04-19_11h35_32

Paalap avatar Apr 19 '23 09:04 Paalap

Same Problem here. I think it`s not already implementet yet. This model is really new so i think the devs had no time to implement.

Dexxter23 avatar Apr 19 '23 18:04 Dexxter23

also wit the new GIT verion ?

arteck avatar Apr 29 '23 05:04 arteck

Yes, but is actually almost solved for me - will post a PR updating devices.js and states.js

Paalap avatar Apr 29 '23 09:04 Paalap

Yes, but is actually almost solved for me - will post a PR updating devices.js and states.js

Did you already post that files?

Dexxter23 avatar May 18 '23 09:05 Dexxter23

No, but what we need is in devices.js

    {
        models: ['E2123'],
        icon: 'img/ikea_SYMFONISK_Sound_Controller.png',
        states: [states.battery, states.action_play_pause, states.action_track_previous, states.action_track_next,
            states.action_volume_up, states.action_volume_down, states.action_volume_up_hold, states.action_volume_down_hold,
            states.action_dots_1_initial_press, states.action_dots_2_initial_press, states.action_dots_1_long_press, states.action_dots_2_long_press, states.action_dots_1_short_release,
            states.action_dots_2_short_release, states.action_dots_1_long_release, states.action_dots_2_long_release, states.action_dots_1_double_press, states.action_dots_2_double_press],
    },

(yes the icon is the wrong one...)

and in states.js:

    action_play_pause: {
        id: 'button_play_pause',
        prop: 'action',
        name: 'Play/Pause Button',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'play_pause') ? true : undefined,
    },
    action_track_previous: {
        id: 'button_track_previous',
        prop: 'action',
        name: 'Track Previous Button',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'track_previous') ? true : undefined,
    },
    action_track_next: {
        id: 'button_track_next',
        prop: 'action',
        name: 'Track Next Button',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'track_next') ? true : undefined,
    },
    action_volume_up: {
        id: 'button_volume_up',
        prop: 'action',
        name: 'Volume Up Button',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'volume_up') ? true : undefined,
    },
    action_volume_down: {
        id: 'button_volume_down',
        prop: 'action',
        name: 'Volume Down Button',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'volume_down') ? true : undefined,
    },
    action_volume_up_hold: {
        id: 'button_volume_up_hold',
        prop: 'action',
        name: 'Volume Up Button hold',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'volume_up_hold') ? true : undefined,
    },
    action_volume_down_hold: {
        id: 'button_volume_down_hold',
        prop: 'action',
        name: 'Volume Down Button hold',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'volume_down_hold') ? true : undefined,
    },
    action_dots_1_initial_press: {
        id: 'button_dots_1_initial_pressd',
        prop: 'action',
        name: 'dot_1 press init',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_1_initial_press') ? true : undefined,
    },
    action_dots_1_long_press: {
        id: 'button_dots_1_long_press',
        prop: 'action',
        name: 'dot_1 long press',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: false,
        getter: payload => (payload.action === 'dots_1_long_press') ? true : (payload.action === 'dots_1_long_release') ? false : undefined,
    },
    action_dots_1_short_release: {
        id: 'dots_1_short_release',
        prop: 'action',
        name: 'dot_1 short release',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_1_short_release') ? true : undefined,
    },
    action_dots_1_long_release: {
        id: 'dots_1_long_release',
        prop: 'action',
        name: 'dot_1 long release',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_1_long_release') ? true : undefined,
    },
    action_dots_1_double_press: {
        id: 'dots_1_double_press',
        prop: 'action',
        name: 'dot_1 double press',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_1_double_press') ? true : undefined,
    },
    action_dots_2_initial_press: {
        id: 'button_dots_2_initial_pressd',
        prop: 'action',
        name: 'dot_2 press init',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_2_initial_press') ? true  : undefined,	
    },
    action_dots_2_long_press: {
        id: 'button_dots_2_long_press',
        prop: 'action',
        name: 'dot_2 long press',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: false,
        getter: payload => (payload.action === 'dots_2_long_press') ? true : (payload.action === 'dots_2_long_release') ? false : undefined,
    },
    action_dots_2_short_release: {
        id: 'dots_2_short_release',
        prop: 'action',
        name: 'dot_2 short release',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_2_short_release') ? true : undefined,
    },
    action_dots_2_long_release: {
        id: 'dots_2_long_release',
        prop: 'action',
        name: 'dot_2 long release',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_2_long_release') ? true : undefined,
    },
    action_dots_2_double_press: {
        id: 'dots_2_double_press',
        prop: 'action',
        name: 'dot_2 double press',
        icon: undefined,
        role: 'button',
        write: false,
        read: true,
        type: 'boolean',
        isEvent: true,
        getter: payload => (payload.action === 'dots_2_double_press') ? true : undefined,
    },

Update to current firmware is highly recommendated (as this enables the hold actions on dot buttons)

Paalap avatar May 18 '23 18:05 Paalap

That didn`t work for me. Did you mean the devices.js in /opt/iobroker/node_modules/iobroker.zigbee/lib ? Only there i can found an devices.js an a states.js

Dexxter23 avatar May 20 '23 15:05 Dexxter23

Yes, but you need also the latest ikea.js file from zigbee2mqtt (sorry forgot to mention this point)

And of course after updating the files a restart of the instance and a reconnect of the device is needed

Paalap avatar May 20 '23 18:05 Paalap

Thanks.....but where can i find it at zigbee2mqtt? Haven´t found there.

Dexxter23 avatar May 20 '23 19:05 Dexxter23

Herdmansconverter not Z2M shame on me... https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/ikea.js

Paalap avatar May 20 '23 20:05 Paalap

I just can't get it to connect the "SYMFONISK sound remote gen2" :( I'v deleted the existing remote from paired devices. I have replaced the files @Paalap posted in the folder /opt/iobroker/node_modules/iobroker.zigbee/lib

Additionally, I had replaced only the ikea.js in the /opt/iobroker/node_modules/zigbee-herdsman-converters/devices

But this led to errors when starting the zigbee adapter. So I deleted the whole folder "zigbee-herdsman-converters". Downloaded it from the current git-repo in version 15.36.0 and run npm-install in this directory. After this the iobroker zigbee adapter startet without problems.
Then I tried to pair the remote. But the behavior remains the same, I only see what @Paalap describes in the initial post. I have installed the adapter "iobroker.zigbee" in version 1.8.10.

Can someone help me please? Thanks a lot.

a-i-ks avatar Jul 06 '23 11:07 a-i-ks

check new GIT version

arteck avatar Jul 11 '23 04:07 arteck

Thanks for the tip. With the current version of GIT, I can get the remote to pair. However, the battery level and - most annoying - the toggle button do not work. All other buttons work (even the hold and double press actions of the dot buttons), but the toggle button does not change the object value and the battery value remains at (null) %.

When I press the toggle button on the remote, the value of "msg_from_zigbee" changes as follows: {"type":"commandToggle","data":{},"linkquality":255,"groupID":null,"cluster":"genOnOff","meta":{"zclTransactionSequenceNumber":73,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":0,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1}

It seems that the value is transferred but not mapped properly to the associated object.

Using the command npm ls --depth=0 in the /opt/iobroker/node_modules/ directory, I was able to read the following versions:

+-- [email protected] (git+ssh://[email protected]/ioBroker/ioBroker.zigbee.git#f6b8a7524b615dfd889315ca16c38a46052094c2)
`-- [email protected]

I didn't add the additions to the devices.js / states.js files that @Paalap mentioned above, though. Do I still need to do this? Maybe this is also the reason why the play button of the remote does not work. There the state is also called "action_play_pause".

a-i-ks avatar Jul 18 '23 09:07 a-i-ks

plz take this https://github.com/ioBroker/ioBroker.zigbee/wiki/debug-messages-with-zigbee.0.info.debugmessages

and press the button..i need the LOG

arteck avatar Jul 19 '23 17:07 arteck

Here are the debug messages after pressing the toggle (play/pause) button on the remote control


zigbee.0	2023-07-20 10:48:31.771	debug	Publish '{"action":"play_pause"}' devId '94deb8fffe9b40bc'
zigbee.0	2023-07-20 10:48:31.756	debug	Type commandToggle device {"type":"device","device":{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":6,"_type":"EndDevice","_ieeeAddr":"0x94deb8fffe9b40bc","_networkAddress":25827,"_manufacturerID":4476,"_endpoints":[{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":1,"profileID":260,"deviceID":6,"inputClusters":[0,1,3,32,4096,64599],"outputClusters":[3,4,6,8,25,4096,64639],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{"genPowerCfg":{"attributes":{"batteryVoltage":31}}},"_binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0}],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":2,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":3,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false}],"_manufacturerName":"IKEA of Sweden","_powerSource":"Battery","_modelID":"SYMFONISK sound remote gen2","_applicationVersion":16,"_stackVersion":103,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"20230308","_softwareBuildID":"1.0.35","_interviewCompleted":false,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{"configured":1847116505},"_lastSeen":1689842911754,"_defaultSendRequestWhen":"active","_checkinInterval":43200,"_pendingRequestTimeout":43200000,"_linkquality":255},"mapped":{"zigbeeModel":["SYMFONISK sound remote gen2"],"model":"E2123","vendor":"IKEA","description":"SYMFONISK sound remote gen2","fromZigbee":[{"cluster":"genPowerCfg","type":["attributeReport","readResponse"]},{"cluster":"genOnOff","type":"commandToggle","options":[{"type":"binary","name":"legacy","property":"legacy","access":2,"value_on":true,"value_off":false,"description":"Set to false to disable the legacy integration (highly recommended), will change structure of the published payload (default true)."}]},{"cluster":"genLevelCtrl","type":"commandStep"},{"cluster":"genLevelCtrl","type":"commandMoveWithOnOff"},{"cluster":"genLevelCtrl","type":"commandMove"},{"cluster":64639,"type":"raw"},{"cluster":"heimanSpecificScenes","type":"raw"}],"exposes":[{"type":"numeric","name":"battery","property":"battery","access":5,"unit":"%","description":"Remaining battery in %, can take up to 24 hours before reported.","value_min":0,"value_max":100},{"type":"enum","name":"action","property":"action","access":1,"values":["toggle","track_previous","track_next","volume_up","volume_down","volume_up_hold","volume_down_hold","dots_1_initial_press","dots_2_initial_press","dots_1_long_press","dots_2_long_press","dots_1_short_release","dots_2_short_release","dots_1_long_release","dots_2_long_release","dots_1_double_press","dots_2_double_press"],"description":"Triggered action (e.g. a button click)"},{"type":"numeric","name":"linkquality","property":"linkquality","access":1,"unit":"lqi","description":"Link quality (signal strength)","value_min":0,"value_max":255}],"toZigbee":[{"key":["battery"]},{"key":["scene_store"]},{"key":["scene_recall"]},{"key":["scene_add"]},{"key":["scene_remove"]},{"key":["scene_remove_all"]},{"key":["read"]},{"key":["write"]},{"key":["command"]},{"key":["reset"]}],"ota":{},"options":["[Circular]"]},"name":"0x94deb8fffe9b40bc"} incoming event: {"type":"commandToggle","device":{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":6,"_type":"EndDevice","_ieeeAddr":"0x94deb8fffe9b40bc","_networkAddress":25827,"_manufacturerID":4476,"_endpoints":[{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":1,"profileID":260,"deviceID":6,"inputClusters":[0,1,3,32,4096,64599],"outputClusters":[3,4,6,8,25,4096,64639],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{"genPowerCfg":{"attributes":{"batteryVoltage":31}}},"_binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0}],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":2,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":3,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false}],"_manufacturerName":"IKEA of Sweden","_powerSource":"Battery","_modelID":"SYMFONISK sound remote gen2","_applicationVersion":16,"_stackVersion":103,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"20230308","_softwareBuildID":"1.0.35","_interviewCompleted":false,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{"configured":1847116505},"_lastSeen":1689842911754,"_defaultSendRequestWhen":"active","_checkinInterval":43200,"_pendingRequestTimeout":43200000,"_linkquality":255},"endpoint":"[Circular]","data":{},"linkquality":255,"groupID":null,"cluster":"genOnOff","meta":{"zclTransactionSequenceNumber":117,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":0,"disableDefaultResponse":true,"reservedBits":0}}}
zigbee.0	2023-07-20 10:48:31.756	debug	Received Zigbee message from '0x94deb8fffe9b40bc', type 'commandToggle', cluster 'genOnOff', data '{}' from endpoint 1 with groupID null
zigbee.0	2023-07-20 10:48:31.755	debug	handleMessage. {"type":"commandToggle","device":{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":6,"_type":"EndDevice","_ieeeAddr":"0x94deb8fffe9b40bc","_networkAddress":25827,"_manufacturerID":4476,"_endpoints":[{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":1,"profileID":260,"deviceID":6,"inputClusters":[0,1,3,32,4096,64599],"outputClusters":[3,4,6,8,25,4096,64639],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{"genPowerCfg":{"attributes":{"batteryVoltage":31}}},"_binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1},{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0}],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":2,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false},{"_events":{},"_eventsCount":0,"_maxListeners":100,"ID":3,"inputClusters":[],"outputClusters":[],"deviceNetworkAddress":25827,"deviceIeeeAddress":"0x94deb8fffe9b40bc","clusters":{},"_binds":[{"cluster":64640,"type":"endpoint","deviceIeeeAddress":"0x00212effff080f09","endpointID":1}],"_configuredReportings":[],"meta":{},"pendingRequests":{},"sendInProgress":false}],"_manufacturerName":"IKEA of Sweden","_powerSource":"Battery","_modelID":"SYMFONISK sound remote gen2","_applicationVersion":16,"_stackVersion":103,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"20230308","_softwareBuildID":"1.0.35","_interviewCompleted":false,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{"configured":1847116505},"_lastSeen":1689842911754,"_defaultSendRequestWhen":"active","_checkinInterval":43200,"_pendingRequestTimeout":43200000,"_linkquality":255},"endpoint":"[Circular]","data":{},"linkquality":255,"groupID":null,"cluster":"genOnOff","meta":{"zclTransactionSequenceNumber":117,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":0,"disableDefaultResponse":true,"reservedBits":0}}}

As mentioned before, I did not modify the states.js / devices.js files any further. What I also noticed, since I updated the firmware of the remote to the latest version via OTA, double pressing the DOT button triggers both "dots_1_initial_press" and "dots_1_double_press". I think that the states "action_dots_1_short_release" are also needed, so that you can bind meaningful actions to the keys and do not have to wait whether after "initial_press" also "double_press" is triggered. The behavior was different with the old firmware of the remote.

a-i-ks avatar Jul 20 '23 08:07 a-i-ks

For me (without my old adjustment) the volume hold is not released - there was a solution also in states.js in my old post

Paalap avatar Jul 20 '23 09:07 Paalap

I am following here, just paired device without any problems, but I also have the Toggle button not working and Volume_HOLD staying on TRUE without jumping back to FALSE.

funky4t avatar Nov 01 '23 19:11 funky4t

For me, it also only worked correctly with the changes @Paalap mentioned above. I have inserted these manually, deleted the device and paired again. We should put @Paalap changes in a PR.

a-i-ks avatar Nov 02 '23 09:11 a-i-ks

@Paalap Could you please create a PR from your changes when you get a chance?

a-i-ks avatar Dec 16 '23 19:12 a-i-ks

@Paalap Is this already implemented?

ulimanaio avatar Jan 02 '24 10:01 ulimanaio

@Paalap Is this already implemented?

No, I'm not using iobroker anymore...

Paalap avatar Jan 02 '24 10:01 Paalap

Thanks for the update. Is it possible to reopen the issue again for maybe @arteck to take a look at?

ulimanaio avatar Jan 02 '24 14:01 ulimanaio

@Paalap Please reopen this issue because for the rest of us, this is still an existing problem. I will try to bring in a PR with the changes @Paalap proposed in the next days.

a-i-ks avatar Jan 02 '24 14:01 a-i-ks

@ulimanaio I have added Paalap's change and created the PR as a draft. Could you please test the state that is in my repository fork? I can't find my SYMFONISK remote control at the moment. :D The state of my repository is the current master status of this repo + the changes discussed here

a-i-ks avatar Jan 11 '24 23:01 a-i-ks

check version 1.10.0

arteck avatar Jan 14 '24 07:01 arteck

Installierte Version: 1.10.1 Hi @arteck, muss ich etwas spezielles machen? Habe geupdated, das Gerät gelöscht und neu hinzugefügt. Leider klappt der Toggle nicht.

ulimanaio avatar Jan 24 '24 13:01 ulimanaio

Ich hatte auch immer Probleme (siehe hier) mit dem Toggle Button ohne die Änderungen, die Paalap hier vorgeschlagen hat (also nur über direkt exposes). @ulimanaio könntest du mal bitte meine Version bei dir testen? Wenn bei dir damit alles klappt (was eigentlich so sein sollte, da das der Stand ist, der bei mir läuft und funktioniert), dann können wir den PR auf master bringen.

I also always had problems (see here) with the toggle button without the changes that Paalap suggested here ( so only via direct exposes). @ulimanaio could you please test my version on your system? If everything works for you (which should be the case, as this is the version that runs and works for me), then we can bring the PR to master.

a-i-ks avatar Jan 24 '24 18:01 a-i-ks

@a-i-ks Vielen Dank. Mit deiner Repo klappt es wunderbar! :) Auch die _hold states kann man meiner Meinung nach einfacher nutzen. Von mir aus sehr gerne in den Master bringen image

ulimanaio avatar Jan 26 '24 16:01 ulimanaio

@arteck The PR is ready for review and merge.

Edit: PR is now merged and this should be included in the next release version

a-i-ks avatar Jan 26 '24 17:01 a-i-ks

Thank you for updating this remote! When can we expect the release?

erwinberlin avatar Feb 10 '24 10:02 erwinberlin

Hi! I´m also looking forward to the new release including this bugfix. I`m really excited about the remote and the only thing that is missing is the toggle button. Thank you!

mariopinayripke avatar Feb 15 '24 11:02 mariopinayripke