[New device support]: Shelly BLU Remote Control ZB
Link
https://www.shelly.com/products/shelly-blu-remote-control-zb-white
Database entry
{"id":45,"type":"EndDevice","ieeeAddr":"0x694f69634762684a","nwkAddr":26002,"manufId":4098,"manufName":"Shelly","powerSource":"Battery","modelId":"BLU Remote Control ZB","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1,"inClusterList":[0,1,3,32],"outClusterList":[6,8],"clusters":{"genBasic":{"attributes":{"modelId":"BLU Remote Control ZB","manufacturerName":"Shelly","powerSource":3,"zclVersion":8,"appVersion":0,"stackVersion":0,"hwVersion":0,"dateCode":"20250505","swBuildId":"0.0.1"}},"genPollCtrl":{"attributes":{"checkinInterval":14400}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00124b002f89a2ba","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00124b002f89a2ba","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00124b002f89a2ba","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":10}],"meta":{}}},"appVersion":0,"stackVersion":0,"hwVersion":0,"dateCode":"20250505","swBuildId":"0.0.1","zclVersion":8,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{},"lastSeen":1760534362203,"checkinInterval":3600}
Zigbee2MQTT version
2.6.2
Comments
Would be lovely if this cool new device by Shelly could be supported
External definition
import * as m from 'zigbee-herdsman-converters/lib/modernExtend';
export default {
zigbeeModel: ['BLU Remote Control ZB'],
model: 'BLU Remote Control ZB',
vendor: 'Shelly',
description: 'Automatically generated definition',
extend: [m.battery(), m.commandsOnOff(), m.commandsLevelCtrl()],
meta: {},
};
What does/doesn't work with the external definition?
I can't really say since I'm new to this and it's a very recent device
Device is out in stores now. Would be great if it can be supported.
🙏 Thank you for creating this issue and sharing your external converter!
In case all features work, please submit a pull request on this repository so the device can be supported out-of-the-box with the next release. For instructions on how to create a pull request see the docs.
If NOT all features work, please follow the How To Support new devices
If you need help with the process, feel free to ask here and we'll be happy to assist.
Just got mine, I will try to figure out the converter over the weekend, if anyone has more experience, here's what the device reports:
Left button (Channel 1 selected)
[10/24/2025, 3:30:16 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote', payload '{"action":"on","action_group":1,"battery":100,"linkquality":131}'
[10/24/2025, 3:30:16 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote/action', payload 'on'
Right Button (Channel 1 selected)
[10/24/2025, 3:30:17 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote', payload '{"action":"off","action_group":1,"battery":100,"linkquality":21}'
[10/24/2025, 3:30:17 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote/action', payload 'off'
Scrollwheel up: (Channel 2 selected)
[10/24/2025, 3:30:21 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote', payload '{"action":"brightness_step_up","action_group":2,"action_step_size":6,"action_transition_time":0.03,"battery":100,"linkquality":54}'
[10/24/2025, 3:30:21 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote/action', payload 'brightness_step_up'
Scrollwheel down: (Channel 2 selected)
[10/24/2025, 3:30:24 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote', payload '{"action":"brightness_step_down","action_group":2,"action_step_size":9,"action_transition_time":0.03,"battery":100,"linkquality":131}'
[10/24/2025, 3:30:24 PM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/shelly_remote/action', payload 'brightness_step_down'```
Same here, got mine connected to Home Assistant. If I can help in any way please ask!
Not to derail the discussion but I managed to integrate it fully using BTHome and the many ESP/Shelly BT Proxies around the house, works great. For me that solves the problem, I'll still try to figure the converter for those who rely on zigbee
Hi,
can't wait of the native ZB support for this. For me BT is so unreliable, so I hope ZB will solve my issues. I'm trying to use some advanced functions like change light intensity by the wheel and cycle color by button2, but this is quite unreliable. Anyone tried the same with it maybe?
Played with the automation a bit and this is the current one. I'm not sure if this is becuase of lagginess of BT or something not totally right with the remote
alias: Halo Remote Control Bedroom Multi-Light Advanced Automation HSV
trigger:
- platform: state
entity_id: event.haloremote_button_1
- platform: state
entity_id: event.haloremote_button_2
- platform: state
entity_id: event.haloremote_dimmer
condition:
- condition: state
entity_id: sensor.haloremote_channel
state: "0"
action:
- choose:
# Toggle lights & plug with Button 1
- conditions:
- condition: template
value_template: >
{{ trigger.entity_id == 'event.haloremote_button_1'
and state_attr('event.haloremote_button_1', 'event_type') == 'press' }}
sequence:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.halo_lights_helper
state: "off"
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.halo_lights_helper
- service: light.turn_on
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
- service: switch.turn_on
target:
entity_id: switch.solampa_plug
- conditions:
- condition: state
entity_id: input_boolean.halo_lights_helper
state: "on"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.halo_lights_helper
- service: light.turn_off
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
- service: switch.turn_off
target:
entity_id: switch.solampa_plug
# Color cycling with Button 2 using HSV (no variables block)
- conditions:
- condition: template
value_template: >
{{ trigger.entity_id == 'event.haloremote_button_2'
and state_attr('event.haloremote_button_2', 'event_type') == 'press' }}
sequence:
- service: input_number.set_value
target:
entity_id: input_number.color_hue
data:
value: >
{% set hue = states('input_number.color_hue') | int(0) %}
{% set next = (hue + 10) if (hue + 10) < 360 else 0 %}
{{ next }}
- service: light.turn_on
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
hsv_color: ["{{ states('input_number.color_hue') | int(0) }}", 100, 100]
# Adjust brightness with Wheel (right=increase, left=decrease)
- conditions:
- condition: template
value_template: >
{{ trigger.entity_id == 'event.haloremote_dimmer'
and (state_attr('event.haloremote_dimmer', 'event_type') == 'rotate_left'
or state_attr('event.haloremote_dimmer', 'event_type') == 'rotate_right') }}
sequence:
- service: light.turn_on
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
brightness: >
{% set current = state_attr('light.bedroomspot1', 'brightness') | default(128) %}
{% set steps = state_attr('event.haloremote_dimmer', 'steps') | int %}
{% set event_type = state_attr('event.haloremote_dimmer', 'event_type') %}
{% set change = steps * 25 if event_type == 'rotate_right' else -1 * steps * 25 %}
{% set result = current + change %}
{% if result > 255 %} 255
{% elif result < 1 %} 1
{% else %} {{ result }}
{% endif %}
Have same remote for a week but BT is unreliable for me as well. It misses clicks and there is just basic functionality available through BT Home. I hope ZB support will be available here soon.
Here is an automation works pretty well, however I think if we can move these whole thing to ZB / MQTT it would be much smoother
alias: Halo Remote Control Bedroom Multi-Light Complete Final
trigger:
- platform: state
entity_id: event.haloremote_button_1
- platform: state
entity_id: event.haloremote_button_2
- platform: state
entity_id: event.haloremote_dimmer
condition:
- condition: state
entity_id: sensor.haloremote_channel
state: "0"
action:
- choose:
# Button 1: Toggle lights and plug
- conditions:
- condition: template
value_template: "{{ trigger.entity_id == 'event.haloremote_button_1' and state_attr('event.haloremote_button_1', 'event_type') == 'press' }}"
sequence:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.halo_lights_helper
state: "off"
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.halo_lights_helper
- service: light.turn_on
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
- service: switch.turn_on
target:
entity_id: switch.solampa_plug
- conditions:
- condition: state
entity_id: input_boolean.halo_lights_helper
state: "on"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.halo_lights_helper
- service: light.turn_off
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
- service: switch.turn_off
target:
entity_id: switch.solampa_plug
# Button 2: Cycle through 10 colors (blue to red spectrum)
- conditions:
- condition: template
value_template: "{{ trigger.entity_id == 'event.haloremote_button_2' and state_attr('event.haloremote_button_2', 'event_type') == 'press' }}"
sequence:
- choose:
# Color 0: Deep Blue
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 0 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [0, 0, 255, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.138, 0.08]
# Color 1: Cyan (Blue-Green)
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 1 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [0, 255, 255, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.169, 0.331]
# Color 2: Green
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 2 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [0, 255, 0, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.2151, 0.711]
# Color 3: Yellow-Green
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 3 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [128, 255, 0, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.325, 0.538]
# Color 4: Yellow
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 4 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [255, 255, 0, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.444, 0.517]
# Color 5: Orange
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 5 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [255, 165, 0, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.549, 0.387]
# Color 6: Red
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 6 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [255, 0, 0, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.704, 0.296]
# Color 7: Purple (Red-Blue)
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 7 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [255, 0, 255, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.418, 0.156]
# Color 8: Magenta
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 8 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [200, 0, 200, 0]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.366, 0.133]
# Color 9: Warm White
- conditions:
- condition: template
value_template: "{{ (now().timestamp() | int) % 10 == 9 }}"
sequence:
- service: light.turn_on
target:
entity_id: light.elefant
data:
rgbw_color: [255, 200, 100, 50]
- service: light.turn_on
target:
entity_id:
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
xy_color: [0.382, 0.388]
# Wheel: Aggressive brightness adjustment with fixed steps
- conditions:
- condition: template
value_template: "{{ trigger.entity_id == 'event.haloremote_dimmer' and (state_attr('event.haloremote_dimmer', 'event_type') == 'rotate_left' or state_attr('event.haloremote_dimmer', 'event_type') == 'rotate_right') }}"
sequence:
- variables:
current_brightness: "{{ state_attr('light.bedroomspot1', 'brightness') | default(128) | int }}"
steps: "{{ state_attr('event.haloremote_dimmer', 'steps') | int }}"
event_type: "{{ state_attr('event.haloremote_dimmer', 'event_type') }}"
change: "{{ (-steps * 5) if event_type == 'rotate_right' else (steps * 5) }}"
new_brightness: "{% set result = current_brightness + change | int %}{% if result > 255 %}255{% elif result < 10 %}10{% else %}{{ result }}{% endif %}"
- service: light.turn_on
target:
entity_id:
- light.elefant
- light.bedroomspot1
- light.bedroomspot2
- light.bedroomspot3
data:
brightness: "{{ new_brightness }}"
Do all features work with the external definition provided in the OP? If yes then I can add it.
Do all features work with the external definition provided in the OP? If yes then I can add it.
No it's missing a couple values - see https://github.com/Koenkk/zigbee2mqtt/issues/29104#issuecomment-3443343877
What values are missing?
{
"action": "brightness_step_up",
"action_group": 4,
"action_step_size": 15,
"action_transition_time": 0.03,
"battery": 100,
"linkquality": 43
}
action already shows up in Z2M but not in HA (battery and linkquality do)
action_group and action_step_size are missing and useful
I don't see any meaningful info stored in action_transition_time, it's always the same
action_step_size and action_transition_time are only included when action is brightness_step_(up|down), for (on|off) they are omitted:
{
"action": "off",
"action_group": 4,
"battery": 100,
"linkquality": 51
}
Some more info on the advanced functions here - https://shelly-api-docs.shelly.cloud/docs-ble/Devices/BLU_ZB/blu_remote although it seems to be more BTHome than Zigbee
For actions no sensor is discovered, this is expected, see https://www.zigbee2mqtt.io/guide/usage/integrations/home_assistant.html#via-mqtt-device-trigger-recommended
For actions no sensor is discovered, this is expected, see https://www.zigbee2mqtt.io/guide/usage/integrations/home_assistant.html#via-mqtt-device-trigger-recommended
Well I'll have to set aside my intense hate of device triggers and accept it as the only option then...
In that case action_group and action_step_size is all that's needed to use the device to its full extent
As an alternative, you can also directly respond to the published MQTT messages.
Since the device works now: Could you make a PR by clicking here?
The device also seems to support the identify cluster via the built-in buzzer.
I am using the following definition:
import * as m from 'zigbee-herdsman-converters/lib/modernExtend';
export default {
zigbeeModel: ['BLU Remote Control ZB'],
model: 'SBRC-005B',
vendor: 'Shelly',
description: 'BLU Remote Control ZB',
extend: [m.battery(), m.commandsOnOff({commands: ["on", "off"]}), m.commandsLevelCtrl({commands: ["brightness_step_up", "brightness_step_down"]}), m.identify()],
meta: {},
};
This also supports:
- The central volume wheel (albeit with a small delay after release)
- The left and right ring buttons (
onandoffrespectively, and perhaps counterintuitively)
Unfortunately, comparing with the BLE documentation, I could not find any way to:
- Identify long or simultaneous presses for the ring buttons
- Identify button presses for the bottom left/right buttons (only the
action_groupattribute changes) - Receive accelerometer data
- Set whether buzzer feedback is enabled.
I will create a pull request soon if no one beats me to it.
Just got my remote, didn't check if it was supported, just kind of assumed it. Is there any progress on this issue?
OK so I decided to follow the tested and proven principle of "instead of asking a question, post the wrong answer, the internet will correct you". Here's an external converter generated using Gemini (I know, I know...) and then fine-tuned a bit by hand. It works (as far as I can tell) but I'm sure is somehow horribly wrong. I will therefore not submit it formally until somebody who actually has an idea what they're doing validates it:
const exposes = require("zigbee-herdsman-converters/lib/exposes");
const fz = require("zigbee-herdsman-converters/converters/fromZigbee");
const e = exposes.presets;
const ea = exposes.access;
const device = {
zigbeeModel: ["BLU Remote Control ZB"],
model: "BLU Remote Control ZB",
vendor: "Shelly",
description: "Shelly Zigbee Remote (Adds action_group, action_step_size, and action_transition_time)",
// The exposes array defines which properties are made available to MQTT and the Z2M frontend.
exposes: [
// This is the main action trigger. Add other actions supported by the remote here.
e.action(["on", "off", "brightness_step_up", "brightness_step_down"]),
// The three missing properties from the request, exposed as state/event properties (ea.STATE = 4).
exposes
.numeric("action_group", ea.STATE)
.withDescription("Group ID associated with the action command."),
exposes.numeric("action_step_size", ea.STATE).withDescription("Step size value used for brightness step actions."),
exposes.numeric("action_transition_time", ea.STATE).withDescription("Transition time in seconds for the action."),
],
// We rely on the standard Z2M converters for handling the Level Control and Battery clusters.
fromZigbee: [fz.battery, fz.command_off, fz.command_on, fz.command_step, fz.linkquality_from_basic],
toZigbee: [], // This is a remote, so it typically doesn't listen for Z2M commands (read-only).
};
module.exports = device;
Hey, I got this device and wanted to experiment a little. My code skills are poor, but I succeeded in merging Plawasan and kongr45gpen scripts. Please review this code before using it for anything: This can be saved as my-first-converter.mjs:
import * as exposes from 'zigbee-herdsman-converters/lib/exposes';
import * as fz from 'zigbee-herdsman-converters/converters/fromZigbee';
import * as m from 'zigbee-herdsman-converters/lib/modernExtend';
const e = exposes.presets;
const ea = exposes.access;
const device = {
zigbeeModel: ['BLU Remote Control ZB'],
model: 'BLU Remote Control ZB',
vendor: 'Shelly',
description:
'Shelly Zigbee Remote (Adds action_group, action_step_size, and action_transition_time)',
exposes: [
e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down']),
e.numeric('action_group', ea.STATE)
.withDescription('Group ID associated with the action command.'),
e.numeric('action_step_size', ea.STATE)
.withDescription('Step size value used for brightness step actions.'),
e.numeric('action_transition_time', ea.STATE)
.withDescription('Transition time in seconds for the action.'),
],
extend: [
m.battery(),
m.commandsOnOff({commands: ['on', 'off']}),
m.commandsLevelCtrl({commands: ['brightness_step_up', 'brightness_step_down']}),
m.identify(),
],
};
export default device;
It adds battery and Identify to both Z2M and HA. And I can confirm the Identify button is working. It should be possible to make automatons from the sensors in HA now.
One thing i noticed however - I have created groups in Z2M with light bulbs in my different rooms, and they are assigned group id's from 1-9. This remote will start controlling the light in group id 1-4 using the 4 zones on the remote. It's an easy way to get started, but it could be a problem for some, so it would be nice to have an option to disable that feature.
has this device made it into the latest verion of z2m? I don't like updating to test :) thanks!
One thing i noticed however - I have created groups in Z2M with light bulbs in my different rooms, and they are assigned group id's from 1-9. This remote will start controlling the light in group id 1-4 using the 4 zones on the remote. It's an easy way to get started, but it could be a problem for some, so it would be nice to have an option to disable that feature.
@Koenkk Do you know if we can change that behavior? I had to delete the groups with ID 1-4 and recreate them with new IDs in order to control via HA.
@Grohnheit
Could you check if the issue is fixed with the following external converter:
- save this as file next to
configuration.yamlin theexternal_convertersdirectory (create if it doesn't exist yet) asext_converter.js(soexternal_converters/ext_converter.js) - start z2m,
- in the frontend, check if the description of this device now ends with
CUSTOM(this indicates the external converter has been loaded correctly) - check if issue is fixed
@Koenkk
I used your external converter instead of my own, and it loaded fine, but it didn't fix the problem unfortunately. Before I recreated a group with id 1, this error was written in the log, maybe it can be useful:
[2025-12-30 15:35:50] error: z2m: Failed to configure 'Shelly Remote Control', attempt 3 (Error: Unbind 0x694f69634762684a/1 genOnOff invalid target '1' (no group with this ID exists).
at Endpoint.unbind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:723:23)
at configure (file:///config/zigbee2mqtt/external_converters/.tmp-ed42d4f2-my-first-converter-a4f58458-2168-4786-a568-6a73b373c6a3.mjs:19:22)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:27)
at Configure.configure (/app/lib/extension/configure.ts:123:37)
at /app/lib/extension/configure.ts:79:62
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:23)
at EventEmitter.emit (node:events:530:35)
at EventBus.emitLastSeenChanged (/app/lib/eventBus.ts:90:22)
at Controller.<anonymous> (/app/lib/zigbee.ts:82:27)
at Controller.emit (node:events:518:28))
After I recreated a group with id 1, the Shelly controller controls that group, both on/off and brightness up/down are still working.
Can I provide you with some data to help fix the issue? In the log, this is written:
[30.12.2025, 15.51.09] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Shelly Remote Control', payload '{"action":"on","action_group":1,"battery":100,"identify":null,"linkquality":134}'
[30.12.2025, 15.51.09] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Shelly Remote Control/action', payload 'on'
Nothing regarding the light bulbs are logged.
After I recreated a group with id 1,
After recreating the group, could you configure it again?
If not: Could you provide the debug log when configuring the device via the frontend -> yellow refresh icon? Make sure to wake up the device right before doing so by clicking a button on it.
See this on how to enable debug logging.
After I recreated a group with id 1,
After recreating the group, could you configure it again?
If not: Could you provide the debug log when configuring the device via the frontend -> yellow refresh icon? Make sure to wake up the device right before doing so by clicking a button on it.
See this on how to enable debug logging.
I get this error when I try to reconfigure with group id 1 created, and group id 2-4 not created.
[1.1.2026, 10.33.14] z2m: Configuring 'Shelly Remote Control'
[1.1.2026, 10.33.14] z2m: Failed to configure 'Shelly Remote Control', attempt 5 (Error: Unbind 0x694f69634762684a/1 genOnOff invalid target '2' (no group with this ID exists).
at Endpoint.unbind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:723:23)
at configure (file:///config/zigbee2mqtt/external_converters/.tmp-ed42d4f2-my-first-converter-a4f58458-2168-4786-a568-6a73b373c6a3.mjs:19:22)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:21)
at Configure.configure (/app/lib/extension/configure.ts:123:13)
at Configure.onMQTTMessage (/app/lib/extension/configure.ts:46:25)
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:17))
[1.1.2026, 10.33.14] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{},"error":"Failed to configure (Unbind 0x694f69634762684a/1 genOnOff invalid target '2' (no group with this ID exists).)","status":"error","transaction":"gzvy3-1"}'
Then I created empty groups with id 2-4 and tried again, and got this error when reconfiguring:
[1.1.2026, 10.38.18] z2m: Failed to configure 'Shelly Remote Control', attempt 7 (Error: Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL')
at Endpoint.bind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:698:23)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/lib/modernExtend.ts:265:17)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:21)
at Configure.configure (/app/lib/extension/configure.ts:123:13)
at Configure.onMQTTMessage (/app/lib/extension/configure.ts:46:25)
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:17))
I get this error when I try to reconfigure with group id 1 created, and group id 2-4 not created.
Does it still control group 1 after this?
I get this error when I try to reconfigure with group id 1 created, and group id 2-4 not created.
Does it still control group 1 after this?
Yes.
Could you provide the debug log when configuring the device via the frontend -> yellow refresh icon? Make sure to wake up the device right before doing so by clicking a button on it.
See this on how to enable debug logging.
Could you provide the debug log when configuring the device via the frontend -> yellow refresh icon? Make sure to wake up the device right before doing so by clicking a button on it.
See this on how to enable debug logging.
I keep getting this error, when I reconfigure with the groups 1-4 created.
[4.1.2026, 09.51.35] z2m: Configuring 'Shelly Remote Control'
[4.1.2026, 09.51.38] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Shelly Remote Control', payload '{"battery":100,"identify":null,"linkquality":120}'
[4.1.2026, 09.51.40] z2m: Failed to configure 'Shelly Remote Control', attempt 5 (Error: Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL')
at Endpoint.bind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:722:23)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/lib/modernExtend.ts:265:17)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:21)
at Configure.configure (/app/lib/extension/configure.ts:123:13)
at Configure.onMQTTMessage (/app/lib/extension/configure.ts:46:25)
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:17))
[4.1.2026, 09.51.40] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{},"error":"Failed to configure (Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL'))","status":"error","transaction":"x295s-3"}'
From the "other" log:
[2026-01-04 09:51:33] info: z2m: Configuring 'Shelly Remote Control'
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genOnOff from '1' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genLevelCtrl from '1' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genOnOff from '2' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genLevelCtrl from '2' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genOnOff from '3' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genLevelCtrl from '3' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genOnOff from '4' no bind present, skipping.
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Unbind 0x694f69634762684a/1 genLevelCtrl from '4' no bind present, skipping.
[2026-01-04 09:51:33] debug: zhc:setupattribute: Configure reporting: true, read: true for 0x694f69634762684a/1 genPowerCfg [{"min":"1_HOUR","max":"MAX","change":10,"attribute":"batteryPercentageRemaining"}]
[2026-01-04 09:51:33] debug: zh:controller:endpoint: Bind 0x694f69634762684a/1 genPowerCfg from '0x00124b002a2e35c8/1'
[2026-01-04 09:51:33] debug: zh:zstack:unpi:writer: --> frame [254,23,37,33,137,99,74,104,98,71,99,105,79,105,1,1,0,3,200,53,46,42,0,75,18,0,1,112]
[2026-01-04 09:51:33] debug: zh:zstack:unpi:parser: <-- [254,1,101,33,0,69]
[2026-01-04 09:51:33] debug: zh:zstack:unpi:parser: --- parseNext [254,1,101,33,0,69]
[2026-01-04 09:51:33] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 5 - 33 - [0] - 69
[2026-01-04 09:51:33] debug: zh:zstack:znp: <-- SRSP: ZDO - bindReq
[2026-01-04 09:51:33] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,3,69,161,137,99,0,13]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,161,137,99,0,13]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 161 - [137,99,0] - 13
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - bindRsp
[2026-01-04 09:51:36] debug: zh:controller: Received ZDO response: clusterId=BIND_RESPONSE, status=SUCCESS, payload=undefined
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:controller:endpoint: ZCL command 0x694f69634762684a/1 genPowerCfg.configReport([{"minimumReportInterval":3600,"maximumReportInterval":65000,"reportableChange":10,"attribute":"batteryPercentageRemaining"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false})
[2026-01-04 09:51:36] debug: zh:controller:endpoint: Request Queue (0x694f69634762684a/1): send request
[2026-01-04 09:51:36] debug: zh:zstack: sendZclFrameToEndpointInternal 0x694f69634762684a:25481/1 (0,0,1)
[2026-01-04 09:51:36] debug: zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":25481,"destendpoint":1,"srcendpoint":1,"clusterid":1,"transid":136,"options":0,"radius":30,"len":12,"data":{"type":"Buffer","data":[16,26,6,0,33,0,32,16,14,232,253,10]}}
[2026-01-04 09:51:36] debug: zh:zstack:unpi:writer: --> frame [254,22,36,1,137,99,1,1,1,0,136,0,30,12,16,26,6,0,33,0,32,16,14,232,253,10,78]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,3,69,161,137,99,0,13,254,3,69,161,137,99,0,13]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,161,137,99,0,13,254,3,69,161,137,99,0,13]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 161 - [137,99,0] - 13
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - bindRsp
[2026-01-04 09:51:36] debug: zh:controller: Received ZDO response: clusterId=BIND_RESPONSE, status=SUCCESS, payload=undefined
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,161,137,99,0,13]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 161 - [137,99,0] - 13
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: ZDO - bindRsp
[2026-01-04 09:51:36] debug: zh:controller: Received ZDO response: clusterId=BIND_RESPONSE, status=SUCCESS, payload=undefined
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100,254,3,68,128,0,1,136,78]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100,254,3,68,128,0,1,136,78]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- SRSP: AF - dataRequest - {"status":0}
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,136,78]
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,136] - 78
[2026-01-04 09:51:36] debug: zh:zstack:znp: <-- AREQ: AF - dataConfirm - {"status":0,"endpoint":1,"transid":136}
[2026-01-04 09:51:36] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,24,68,129,0,0,1,0,137,99,1,1,0,120,0,105,205,142,0,0,4,8,26,7,0,21,211,28,175]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,24,68,129,0,0,1,0,137,99,1,1,0,120,0,105,205,142,0,0,4,8,26,7,0,21,211,28,175]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 24 - 2 - 4 - 129 - [0,0,1,0,137,99,1,1,0,120,0,105,205,142,0,0,4,8,26,7,0,21,211,28] - 175
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: AF - incomingMsg - {"groupid":0,"clusterid":1,"srcaddr":25481,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":120,"securityuse":0,"timestamp":9358697,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,26,7,0]}}
[2026-01-04 09:51:37] debug: zh:controller: Received payload: clusterID=1, address=25481, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=120, frame={"header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":26,"commandIdentifier":7},"payload":[{"status":0}],"command":{"ID":7,"name":"configReportRsp","parameters":[{"name":"status","type":48},{"name":"direction","type":8,"conditions":[{"type":"minimumRemainingBufferBytes","value":3}]},{"name":"attrId","type":9,"conditions":[{"type":"minimumRemainingBufferBytes","value":2}]}]}}
[2026-01-04 09:51:37] debug: zh:controller:endpoint: ZCL command 0x694f69634762684a/1 genPowerCfg.defaultRsp({"cmdId":7,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"reservedBits":0,"transactionSequenceNumber":26,"writeUndiv":false})
[2026-01-04 09:51:37] debug: zh:controller:endpoint: Request Queue (0x694f69634762684a/1): send defaultRsp request immediately (sendPolicy=undefined)
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack: sendZclFrameToEndpointInternal 0x694f69634762684a:25481/1 (0,0,1)
[2026-01-04 09:51:37] debug: zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":25481,"destendpoint":1,"srcendpoint":1,"clusterid":1,"transid":137,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,26,11,7,0]}}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:writer: --> frame [254,15,36,1,137,99,1,1,1,0,137,0,30,5,24,26,11,7,0,93]
[2026-01-04 09:51:37] debug: zh:controller:database: Writing database to '/config/zigbee2mqtt/database.db'
[2026-01-04 09:51:37] debug: zh:controller:endpoint: ZCL command 0x694f69634762684a/1 genPowerCfg.read(["batteryPercentageRemaining"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false})
[2026-01-04 09:51:37] debug: zh:controller:endpoint: Request Queue (0x694f69634762684a/1): send request
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100,254,3,68,128,0,1,137,79]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100,254,3,68,128,0,1,137,79]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- SRSP: AF - dataRequest - {"status":0}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,137,79]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,137] - 79
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: AF - dataConfirm - {"status":0,"endpoint":1,"transid":137}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack: sendZclFrameToEndpointInternal 0x694f69634762684a:25481/1 (0,0,1)
[2026-01-04 09:51:37] debug: zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":25481,"destendpoint":1,"srcendpoint":1,"clusterid":1,"transid":138,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,27,0,33,0]}}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:writer: --> frame [254,15,36,1,137,99,1,1,1,0,138,0,30,5,16,27,0,33,0,122]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100,254,3,68,128,0,1,138,76]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100,254,3,68,128,0,1,138,76]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- SRSP: AF - dataRequest - {"status":0}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,138,76]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,138] - 76
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: AF - dataConfirm - {"status":0,"endpoint":1,"transid":138}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,28,68,129,0,0,1,0,137,99,1,1,0,120,0,58,73,143,0,0,8,8,27,1,33,0,0,32,200,21,211,28,191]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,28,68,129,0,0,1,0,137,99,1,1,0,120,0,58,73,143,0,0,8,8,27,1,33,0,0,32,200,21,211,28,191]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 28 - 2 - 4 - 129 - [0,0,1,0,137,99,1,1,0,120,0,58,73,143,0,0,8,8,27,1,33,0,0,32,200,21,211,28] - 191
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: AF - incomingMsg - {"groupid":0,"clusterid":1,"srcaddr":25481,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":120,"securityuse":0,"timestamp":9390394,"transseqnumber":0,"len":8,"data":{"type":"Buffer","data":[8,27,1,33,0,0,32,200]}}
[2026-01-04 09:51:37] debug: zh:controller: Received payload: clusterID=1, address=25481, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=120, frame={"header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":27,"commandIdentifier":1},"payload":[{"attrId":33,"status":0,"dataType":32,"attrData":200}],"command":{"ID":1,"name":"readRsp","parameters":[{"name":"attrId","type":9},{"name":"status","type":8},{"name":"dataType","type":8,"conditions":[{"type":"fieldEquals","field":"status","value":0}]},{"name":"attrData","type":1000,"conditions":[{"type":"fieldEquals","field":"status","value":0}]}]}}
[2026-01-04 09:51:37] debug: zh:controller:endpoint: ZCL command 0x694f69634762684a/1 genPowerCfg.defaultRsp({"cmdId":1,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"reservedBits":0,"transactionSequenceNumber":27,"writeUndiv":false})
[2026-01-04 09:51:37] debug: zh:controller:endpoint: Request Queue (0x694f69634762684a/1): send defaultRsp request immediately (sendPolicy=undefined)
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: z2m: Received Zigbee message from 'Shelly Remote Control', type 'readResponse', cluster 'genPowerCfg', data '{"batteryPercentageRemaining":200}' from endpoint 1 with groupID 0
[2026-01-04 09:51:37] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Shelly Remote Control', payload '{"battery":100,"identify":null,"linkquality":120}'
[2026-01-04 09:51:37] debug: zh:zstack: sendZclFrameToEndpointInternal 0x694f69634762684a:25481/1 (0,0,1)
[2026-01-04 09:51:37] debug: zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":25481,"destendpoint":1,"srcendpoint":1,"clusterid":1,"transid":139,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,27,11,1,0]}}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:writer: --> frame [254,15,36,1,137,99,1,1,1,0,139,0,30,5,24,27,11,1,0,88]
[2026-01-04 09:51:37] debug: zh:controller:endpoint: Bind 0x694f69634762684a/1 genOnOff from '0x00124b002a2e35c8/1'
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100,254,3,68,128,0,1,139,77]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100,254,3,68,128,0,1,139,77]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- SRSP: AF - dataRequest - {"status":0}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,139,77]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,139] - 77
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- AREQ: AF - dataConfirm - {"status":0,"endpoint":1,"transid":139}
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:37] debug: zh:zstack:unpi:writer: --> frame [254,23,37,33,137,99,74,104,98,71,99,105,79,105,1,6,0,3,200,53,46,42,0,75,18,0,1,119]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: <-- [254,1,101,33,0,69]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext [254,1,101,33,0,69]
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 5 - 33 - [0] - 69
[2026-01-04 09:51:37] debug: zh:zstack:znp: <-- SRSP: ZDO - bindReq
[2026-01-04 09:51:37] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,3,69,161,137,99,0,13]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,161,137,99,0,13]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 161 - [137,99,0] - 13
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - bindRsp
[2026-01-04 09:51:38] debug: zh:controller: Received ZDO response: clusterId=BIND_RESPONSE, status=SUCCESS, payload=undefined
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:controller:endpoint: Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1'
[2026-01-04 09:51:38] debug: zh:zstack:unpi:writer: --> frame [254,23,37,33,137,99,74,104,98,71,99,105,79,105,1,8,0,3,200,53,46,42,0,75,18,0,1,121]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,1,101,33,0,69]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,1,101,33,0,69]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 5 - 33 - [0] - 69
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- SRSP: ZDO - bindReq
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169,254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,5,69,196,137,99,1,21,211,169]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [137,99,1,21,211] - 169
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - srcRtgInd
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: <-- [254,3,69,161,137,99,140,129]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,161,137,99,140,129]
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 161 - [137,99,140] - 129
[2026-01-04 09:51:38] debug: zh:zstack:znp: <-- AREQ: ZDO - bindRsp
[2026-01-04 09:51:38] debug: zh:controller: Received ZDO response: clusterId=BIND_RESPONSE, status=TABLE_FULL, payload=undefined
[2026-01-04 09:51:38] debug: zh:zstack:unpi:parser: --- parseNext []
[2026-01-04 09:51:38] debug: zh:controller:endpoint: Error: Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL')
at Endpoint.bind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:722:23)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/lib/modernExtend.ts:265:17)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:21)
at Configure.configure (/app/lib/extension/configure.ts:123:13)
at Configure.onMQTTMessage (/app/lib/extension/configure.ts:46:25)
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:17)
[2026-01-04 09:51:38] error: z2m: Failed to configure 'Shelly Remote Control', attempt 5 (Error: Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL')
at Endpoint.bind (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:722:23)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/lib/modernExtend.ts:265:17)
at Object.configure (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman-converters/src/index.ts:365:21)
at Configure.configure (/app/lib/extension/configure.ts:123:13)
at Configure.onMQTTMessage (/app/lib/extension/configure.ts:46:25)
at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:252:17))
[2026-01-04 09:51:38] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{},"error":"Failed to configure (Bind 0x694f69634762684a/1 genLevelCtrl from '0x00124b002a2e35c8/1' failed (Status 'TABLE_FULL'))","status":"error","transaction":"x295s-3"}'