Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scene commands require group - spec allows creating with no group #381

Open
tube0013 opened this issue Feb 17, 2025 · 1 comment
Open

Scene commands require group - spec allows creating with no group #381

tube0013 opened this issue Feb 17, 2025 · 1 comment

Comments

@tube0013
Copy link

I was looking into a question from a customer, and was testing some things, and it seemed like using zigbee scenes was a valid solution. In my case I was testing with a single bulb, and I had to create a group with the bulb within to add, update, recall the scene. I dug into the zigbee cluster spec and it says you can use '0' to apply the scene to a single device (3.7.23).

Image

However when specifying 0 as the group in the manage device cluster command, it fails because the helper converts it to 0.x0000

Image

see below, as i read the spec, sending just a 0 should allow sending the scene commands unicast to a single device. - maybe someone can test this more easily than i can. Am I even reading the spec correctly?

2025-02-17 00:11:05.437 DEBUG (MainThread) [zha.application.helpers] Converted ZCL schema field(group_id) value from: 0 to: 0x0000
2025-02-17 00:11:05.437 DEBUG (MainThread) [zha.application.helpers] Converted ZCL schema field(scene_id) value from: 5 to: 5
2025-02-17 00:11:05.437 DEBUG (MainThread) [zha.application.helpers] Converted ZCL schema field(transition_time) value from: 0 to: 0
2025-02-17 00:11:05.437 DEBUG (MainThread) [zha.application.helpers] Converted ZCL schema field(scene_name) value from: test to: test
2025-02-17 00:11:05.437 DEBUG (MainThread) [zigpy.zcl] [0x2BFE:1:0x0005] Sending request header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=5, command_id=0, *direction=<Direction.Client_to_Server: 0>)
2025-02-17 00:11:05.438 DEBUG (MainThread) [zigpy.zcl] [0x2BFE:1:0x0005] Sending request: add(group_id=0x0000, scene_id=5, transition_time=0, scene_name='test')
2025-02-17 00:11:05.438 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2025, 2, 17, 5, 11, 5, 438435, tzinfo=datetime.timezone.utc), priority=<PacketPriority.NORMAL: 0>, src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x2BFE), dst_ep=1, source_route=[0x6D47, 0x8316], extended_timeout=False, tsn=5, profile_id=260, cluster_id=5, data=Serialized[b'\x01\x05\x00\x00\x00\x05\x00\x00\x04test'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2025-02-17 00:11:05.445 DEBUG (MainThread) [bellows.ash] Received data 366ea1a9602a157d31b6687e
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=3, re_tx=0, ack_num=6, ezsp_frame=b',\x80\x014\x00\x00\xa3')
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=4) + FLAG
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ash] Sending data  8430fc7e
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ezsp.protocol] Received command sendUnicast: {'status': <EmberStatus.SUCCESS: 0>, 'sequence': 163}
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ezsp.protocol] Sending command  sendUnicast: () {'type': <EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 'indexOrDestination': 0x2BFE, 'apsFrame': EmberApsFrame(profileId=260, clusterId=5, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ADDRESS_DISCOVERY: 4160>, groupId=0, sequence=5), 'messageTag': 166, 'messageContents': b'\x01\x05\x00\x00\x00\x05\x00\x00\x04test'}
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ash] Sending frame DataFrame(frm_num=6, re_tx=False, ack_num=4, ezsp_frame=b'-\x00\x014\x00\x00\xfe+\x04\x01\x05\x00\x01\x01@\x10\x00\x00\x05\xa6\r\x01\x05\x00\x00\x00\x05\x00\x00\x04test') + FLAG
2025-02-17 00:11:05.446 DEBUG (MainThread) [bellows.ash] Sending data  646f21a9602a154c72904b20aa5493098c4e27ae4bc3668efdc6638cfc7d5e3bd38ebeaa32577e
2025-02-17 00:11:05.479 DEBUG (MainThread) [bellows.ash] Received data 476fa1a9602a151689317e
2025-02-17 00:11:05.479 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=4, re_tx=0, ack_num=7, ezsp_frame=b'-\x80\x014\x00\x00\xa4')
2025-02-17 00:11:05.479 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=5) + FLAG
2025-02-17 00:11:05.479 DEBUG (MainThread) [bellows.ash] Sending data  8520dd7e
2025-02-17 00:11:05.479 DEBUG (MainThread) [bellows.ezsp.protocol] Received command sendUnicast: {'status': <EmberStatus.SUCCESS: 0>, 'sequence': 164}
2025-02-17 00:11:05.560 DEBUG (MainThread) [bellows.ash] Received data 576fb1a97d312a15b658904124ab1592499ca6431e93ae9874f5de2683f77b16c3ebcfb59b7e676fb1a96b2a15f961904b27ad5493098c4e270848ce67856a7e
2025-02-17 00:11:05.560 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=5, re_tx=0, ack_num=7, ezsp_frame=b'-\x90\x01E\x00\x00\x04\x01\x04\x0b\x01\x01@\x00\x00\x00\xe8d\xb5~`\xff\xff\x08\x18E\n\x0b\x05)d\x00\x02')
2025-02-17 00:11:05.560 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=6) + FLAG
2025-02-17 00:11:05.560 DEBUG (MainThread) [bellows.ash] Sending data  8610be7e
2025-02-17 00:11:05.561 DEBUG (MainThread) [bellows.ezsp.protocol] Received command incomingMessageHandler: {'type': <EmberIncomingMessageType.INCOMING_UNICAST: 0>, 'apsFrame': EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY: 64>, groupId=0, sequence=232), 'lastHopLqi': 100, 'lastHopRssi': -75, 'sender': 0x607E, 'bindingIndex': 255, 'addressIndex': 255, 'messageContents': b'\x18E\n\x0b\x05)d\x00'}
2025-02-17 00:11:05.562 DEBUG (MainThread) [bellows.ezsp.protocol] Frame contains trailing data: b'\x02'
2025-02-17 00:11:05.562 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY: 64>, groupId=0, sequence=232), 100, -75, 0x607E, 255, 255, b'\x18E\n\x0b\x05)d\x00']
2025-02-17 00:11:05.562 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2025, 2, 17, 5, 11, 5, 562391, tzinfo=datetime.timezone.utc), priority=0, src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x607E), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=232, profile_id=260, cluster_id=2820, data=Serialized[b'\x18E\n\x0b\x05)d\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=100, rssi=-75)
2025-02-17 00:11:05.563 DEBUG (MainThread) [zigpy.zcl] [0x607E:1:0x0b04] Received ZCL frame: b'\x18E\n\x0b\x05)d\x00'
2025-02-17 00:11:05.563 DEBUG (MainThread) [zigpy.zcl] [0x607E:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x18>(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=69, command_id=10, *direction=<Direction.Server_to_Client: 1>)
2025-02-17 00:11:05.564 DEBUG (MainThread) [zigpy.zcl] [0x607E:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Report_Attributes(attribute_reports=[Attribute(attrid=0x050B, value=TypeValue(type=int16s, value=100))])
2025-02-17 00:11:05.564 DEBUG (MainThread) [zigpy.zcl] [0x607E:1:0x0b04] Received command 0x0A (TSN 69): Report_Attributes(attribute_reports=[Attribute(attrid=0x050B, value=TypeValue(type=int16s, value=100))])
2025-02-17 00:11:05.565 DEBUG (MainThread) [zigpy.zcl] [0x607E:1:0x0b04] Attribute report received: active_power=100
2025-02-17 00:11:05.565 DEBUG (MainThread) [zha.zigbee.cluster_handlers] [0x607E:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[active_power] value[100]
2025-02-17 00:11:05.565 DEBUG (MainThread) [zha] Emitting event cluster_handler_attribute_updated with data ClusterAttributeUpdatedEvent(attribute_id=1291, attribute_name='active_power', attribute_value=100, cluster_handler_unique_id='94:de:b8:ff:fe:45:9d:0f:1:0x0b04', cluster_id=2820, event_type='cluster_handler_event', event='cluster_handler_attribute_updated') (1 listeners)
2025-02-17 00:11:05.565 DEBUG (MainThread) [zha] Emitting event state_changed with data EntityStateChangedEvent(event_type='entity', event='state_changed', platform=<Platform.SENSOR: 'sensor'>, unique_id='94:de:b8:ff:fe:45:9d:0f-1-2820', device_ieee=94:de:b8:ff:fe:45:9d:0f, endpoint_id=1, group_id=None) (1 listeners)
2025-02-17 00:11:05.565 DEBUG (MainThread) [homeassistant.components.zha.entity] sensor.inovelli_vzm31_sn_active_power: Handling event from entity: EntityStateChangedEvent(event_type='entity', event='state_changed', platform=<Platform.SENSOR: 'sensor'>, unique_id='94:de:b8:ff:fe:45:9d:0f-1-2820', device_ieee=94:de:b8:ff:fe:45:9d:0f, endpoint_id=1, group_id=None)
2025-02-17 00:11:05.567 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=6, re_tx=0, ack_num=7, ezsp_frame=b'-\x90\x01?\x00\x00K8\x04\x01\x02\x07\x01\x01@\x10\x00\x00\xa3\xa5\x00\x00')
2025-02-17 00:11:05.567 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=7) + FLAG
2025-02-17 00:11:05.567 DEBUG (MainThread) [bellows.ash] Sending data  87009f7e
2025-02-17 00:11:05.568 DEBUG (MainThread) [bellows.ezsp.protocol] Received command messageSentHandler: {'type': <EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 'indexOrDestination': 14411, 'apsFrame': EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ADDRESS_DISCOVERY: 4160>, groupId=0, sequence=163), 'messageTag': 165, 'status': <EmberStatus.SUCCESS: 0>, 'messageContents': b''}
2025-02-17 00:11:05.568 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 14411, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ADDRESS_DISCOVERY: 4160>, groupId=0, sequence=163), 165, <EmberStatus.SUCCESS: 0>, b'']
2025-02-17 00:11:05.571 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'UPDATE devices_v13\n                    SET last_seen=:ts\n                    WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1739769065.562391, 'ieee': 94:de:b8:ff:fe:45:9d:0f, 'min_update_delta': 30.0})
2025-02-17 00:11:05.572 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'UPDATE devices_v13\n                    SET last_seen=:ts\n                    WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1739769065.562391, 'ieee': 94:de:b8:ff:fe:45:9d:0f, 'min_update_delta': 30.0}) completed
2025-02-17 00:11:05.573 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>)
2025-02-17 00:11:05.573 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>) completed
2025-02-17 00:11:05.574 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, '\n            INSERT INTO attributes_cache_v13\n            VALUES (:ieee, :endpoint_id, :cluster_type, :cluster_id, :attr_id, :value, :timestamp)\n                ON CONFLICT (ieee, endpoint_id, cluster_type, cluster_id, attr_id) DO UPDATE\n                SET value=excluded.value, last_updated=excluded.last_updated\n                WHERE\n                    value != excluded.value\n                    OR :timestamp - last_updated > :min_update_delta\n            ', {'ieee': 94:de:b8:ff:fe:45:9d:0f, 'endpoint_id': 1, 'cluster_type': <ClusterType.Server: 0>, 'cluster_id': 2820, 'attr_id': 1291, 'value': 100, 'timestamp': 1739769065.565162, 'min_update_delta': 30.0})
2025-02-17 00:11:05.574 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, '\n            INSERT INTO attributes_cache_v13\n            VALUES (:ieee, :endpoint_id, :cluster_type, :cluster_id, :attr_id, :value, :timestamp)\n                ON CONFLICT (ieee, endpoint_id, cluster_type, cluster_id, attr_id) DO UPDATE\n                SET value=excluded.value, last_updated=excluded.last_updated\n                WHERE\n                    value != excluded.value\n                    OR :timestamp - last_updated > :min_update_delta\n            ', {'ieee': 94:de:b8:ff:fe:45:9d:0f, 'endpoint_id': 1, 'cluster_type': <ClusterType.Server: 0>, 'cluster_id': 2820, 'attr_id': 1291, 'value': 100, 'timestamp': 1739769065.565162, 'min_update_delta': 30.0}) completed
2025-02-17 00:11:05.575 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>)
2025-02-17 00:11:05.576 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>) completed
2025-02-17 00:11:05.578 DEBUG (MainThread) [bellows.ash] Received data 776fb1a90d2aeb991be023db55726fcdf8fb25c77177a315557e
2025-02-17 00:11:05.578 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=7, re_tx=0, ack_num=7, ezsp_frame=b"-\x90\x01Y\x00\xfe+Bti\xfe\xff'\xfd\x84d\xb5\x02l\x9c\xb9\xc4")
2025-02-17 00:11:05.578 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=0) + FLAG
2025-02-17 00:11:05.578 DEBUG (MainThread) [bellows.ash] Sending data  8070787e
2025-02-17 00:11:05.580 DEBUG (MainThread) [bellows.ezsp.protocol] Received command incomingRouteRecordHandler: {'source': 0x2BFE, 'sourceEui': 84:fd:27:ff:fe:69:74:42, 'lastHopLqi': 100, 'lastHopRssi': -75, 'relayList': [0x9C6C, 0xC4B9]}
2025-02-17 00:11:05.580 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x2BFE, 84:fd:27:ff:fe:69:74:42, 100, -75, [0x9C6C, 0xC4B9]]
2025-02-17 00:11:05.580 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x2BFE, 84:fd:27:ff:fe:69:74:42, 100, -75, [0x9C6C, 0xC4B9])
2025-02-17 00:11:05.580 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'INSERT INTO relays_v13 VALUES (:ieee, :relays)\n                        ON CONFLICT (ieee)\n                        DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 84:fd:27:ff:fe:69:74:42, 'relays': b'\x02l\x9c\xb9\xc4'})
2025-02-17 00:11:05.580 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'INSERT INTO relays_v13 VALUES (:ieee, :relays)\n                        ON CONFLICT (ieee)\n                        DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 84:fd:27:ff:fe:69:74:42, 'relays': b'\x02l\x9c\xb9\xc4'}) completed
2025-02-17 00:11:05.581 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>)
2025-02-17 00:11:05.581 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>) completed
2025-02-17 00:11:05.610 DEBUG (MainThread) [bellows.ash] Received data 076fb1a90d2aeb991be023db55726fcdf8fb25c77177a384177e
2025-02-17 00:11:05.610 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=0, re_tx=0, ack_num=7, ezsp_frame=b"-\x90\x01Y\x00\xfe+Bti\xfe\xff'\xfd\x84d\xb5\x02l\x9c\xb9\xc4")
2025-02-17 00:11:05.610 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=1) + FLAG
2025-02-17 00:11:05.610 DEBUG (MainThread) [bellows.ash] Sending data  8160597e
2025-02-17 00:11:05.611 DEBUG (MainThread) [bellows.ezsp.protocol] Received command incomingRouteRecordHandler: {'source': 0x2BFE, 'sourceEui': 84:fd:27:ff:fe:69:74:42, 'lastHopLqi': 100, 'lastHopRssi': -75, 'relayList': [0x9C6C, 0xC4B9]}
2025-02-17 00:11:05.612 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0x2BFE, 84:fd:27:ff:fe:69:74:42, 100, -75, [0x9C6C, 0xC4B9]]
2025-02-17 00:11:05.612 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0x2BFE, 84:fd:27:ff:fe:69:74:42, 100, -75, [0x9C6C, 0xC4B9])
2025-02-17 00:11:05.612 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'INSERT INTO relays_v13 VALUES (:ieee, :relays)\n                        ON CONFLICT (ieee)\n                        DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 84:fd:27:ff:fe:69:74:42, 'relays': b'\x02l\x9c\xb9\xc4'})
2025-02-17 00:11:05.613 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0xffff65fc8400>, 'INSERT INTO relays_v13 VALUES (:ieee, :relays)\n                        ON CONFLICT (ieee)\n                        DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 84:fd:27:ff:fe:69:74:42, 'relays': b'\x02l\x9c\xb9\xc4'}) completed
2025-02-17 00:11:05.614 DEBUG (Thread-6) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>)
2025-02-17 00:11:05.614 DEBUG (Thread-6) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0xffff65fc8400>) completed
2025-02-17 00:11:05.627 DEBUG (MainThread) [bellows.ash] Received data 176fb1a97d312a15b658914a24ab1593499c3d431e7d33e59874facf6689797d5e3fa2ed0a2f7e
2025-02-17 00:11:05.627 DEBUG (MainThread) [bellows.ash] Received frame DataFrame(frm_num=1, re_tx=0, ack_num=7, ezsp_frame=b'-\x90\x01E\x00\x00\x04\x01\x05\x00\x01\x01@\x01\x00\x00sd\xb5\xfe+\xff\xff\x07\t\x05\x00\x85\x00\x00\x05\x06')
2025-02-17 00:11:05.627 DEBUG (MainThread) [bellows.ash] Sending frame AckFrame(res=0, ncp_ready=0, ack_num=2) + FLAG
2025-02-17 00:11:05.627 DEBUG (MainThread) [bellows.ash] Sending data  82503a7e
2025-02-17 00:11:05.627 DEBUG (MainThread) [bellows.ezsp.protocol] Received command incomingMessageHandler: {'type': <EmberIncomingMessageType.INCOMING_UNICAST: 0>, 'apsFrame': EmberApsFrame(profileId=260, clusterId=5, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=115), 'lastHopLqi': 100, 'lastHopRssi': -75, 'sender': 0x2BFE, 'bindingIndex': 255, 'addressIndex': 255, 'messageContents': b'\t\x05\x00\x85\x00\x00\x05'}
2025-02-17 00:11:05.628 DEBUG (MainThread) [bellows.ezsp.protocol] Frame contains trailing data: b'\x06'
2025-02-17 00:11:05.628 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=5, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=115), 100, -75, 0x2BFE, 255, 255, b'\t\x05\x00\x85\x00\x00\x05']
2025-02-17 00:11:05.628 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2025, 2, 17, 5, 11, 5, 628319, tzinfo=datetime.timezone.utc), priority=0, src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x2BFE), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=115, profile_id=260, cluster_id=5, data=Serialized[b'\t\x05\x00\x85\x00\x00\x05'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=100, rssi=-75)
2025-02-17 00:11:05.628 DEBUG (MainThread) [zigpy.zcl] [0x2BFE:1:0x0005] Received ZCL frame: b'\t\x05\x00\x85\x00\x00\x05'
2025-02-17 00:11:05.628 DEBUG (MainThread) [zigpy.zcl] [0x2BFE:1:0x0005] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x09>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Server_to_Client: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=5, command_id=0, *direction=<Direction.Server_to_Client: 1>)
2025-02-17 00:11:05.629 DEBUG (MainThread) [zigpy.zcl] [0x2BFE:1:0x0005] Decoded ZCL frame: Scenes:add_scene_response(status=<Status.INVALID_FIELD: 133>, group_id=0x0000, scene_id=5)

Zigbee2MQTT seems to support setting a scene on a device or group:

https://www.zigbee2mqtt.io/guide/usage/scenes.html

@TheJulianJES
Copy link
Contributor

There's some info in the wiki here, but it uses non-zero group IDs: https://github.com/zigpy/zigpy/wiki/Zigbee-Scenes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants