WebThingsIO / zigbee-adapter

Zigbee adapter add-on for WebThings Gateway
Mozilla Public License 2.0
46 stars 29 forks source link

Full support of Sylvania Lightify 8 Function/4 button switch #273

Open nbackous opened 3 years ago

nbackous commented 3 years ago

In the United States, Sylvania markets a Zigbee switch, the Lightify Smart Conected Light Smart Switch. Model: E21265

It's a battery operated four button switch with a mountable magnetic backing.

I've able to successfully pair it to my webthings gateway, but unfortunately, only buttons 1 and 2 seem to trigger an event.

I was hoping that all four buttons could record single taps, and ideally double taps or long presses and/or step through levels with long presses similar to other Zigbee buttons I've used.

When paired a quite expansive list of properties are shown, but they don't seem to work.

image

After pairing, here are the logs I'm seeing:

2021-01-04 15:53:01.698 INFO : Successfully created new thing Sylvania Button 2021-01-04 15:53:01.825 INFO : date-time-adapter: AddonManagerProxy: recv: {'messageType': 8207, 'data': {'deviceId': 'zb-000d6f000ec901bc', 'device': {'title': 'Sylvania Button', '@context': 'https://webthings.io/schemas', '@type': ['PushButton'], 'description': '', 'href': '/things/zb-000d6f000ec901bc', 'properties': {'on': {'name': 'on', 'value': False, 'visible': True, 'title': 'On/Off', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on'}], 'profileId': 260, 'endpoint': 1, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level': {'name': 'level', 'value': 0, 'visible': True, 'title': 'Level', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level'}], 'profileId': 260, 'endpoint': 1, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'on1': {'name': 'on1', 'value': False, 'visible': True, 'title': 'On/Off (1)', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on1'}], 'profileId': 260, 'endpoint': 2, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level1': {'name': 'level1', 'value': 0, 'visible': True, 'title': 'Level (1)', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level1'}], 'profileId': 260, 'endpoint': 2, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'on2': {'name': 'on2', 'value': False, 'visible': True, 'title': 'On/Off (2)', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on2'}], 'profileId': 260, 'endpoint': 3, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level2': {'name': 'level2', 'value': 0, 'visible': True, 'title': 'Level (2)', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level2'}], 'profileId': 260, 'endpoint': 3, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'on3': {'name': 'on3', 'value': False, 'visible': True, 'title': 'On/Off (3)', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on3'}], 'profileId': 260, 'endpoint': 4, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level3': {'name': 'level3', 'value': 0, 'visible': True, 'title': 'Level (3)', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level3'}], 'profileId': 260, 'endpoint': 4, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'on4': {'name': 'on4', 'value': False, 'visible': True, 'title': 'On/Off (4)', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on4'}], 'profileId': 260, 'endpoint': 5, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level4': {'name': 'level4', 'value': 0, 'visible': True, 'title': 'Level (4)', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level4'}], 'profileId': 260, 'endpoint': 5, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'on5': {'name': 'on5', 'value': False, 'visible': True, 'title': 'On/Off (5)', 'type': 'boolean', '@type': 'BooleanProperty', 'readOnly': True, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/on5'}], 'profileId': 260, 'endpoint': 6, 'clusterId': 6, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'level5': {'name': 'level5', 'value': 0, 'visible': True, 'title': 'Level (5)', 'type': 'number', '@type': 'LevelProperty', 'unit': 'percent', 'minimum': 0, 'maximum': 100, 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/level5'}], 'profileId': 260, 'endpoint': 6, 'clusterId': 8, 'attr': '', 'fireAndForget': True, 'bindNeeded': True, 'configReportNeeded': False, 'initialReadNeeded': False}, 'batteryVoltage': {'name': 'batteryVoltage', 'visible': True, 'title': 'Battery Voltage', 'type': 'number', '@type': 'VoltageProperty', 'unit': 'volt', 'readOnly': True, 'multipleOf': 0.1, 'links': [{'rel': 'property', 'href': '/things/zb-000d6f000ec901bc/properties/batteryVoltage'}], 'profileId': 260, 'endpoint': 1, 'clusterId': 1, 'attr': 'batteryVoltage', 'attrId': 32, 'fireAndForget': False, 'bindNeeded': True, 'configReportNeeded': True, 'initialReadNeeded': True}}, 'actions': {}, 'events': {'1-pressed': {'@type': 'PressedEvent', 'description': 'On button pressed and released', 'links': [{'rel': 'event', 'href': '/things/zb-000d6f000ec901bc/events/1-pressed'}]}, '2-pressed': {'@type': 'PressedEvent', 'description': 'Off button pressed and released', 'links': [{'rel': 'event', 'href': '/things/zb-000d6f000ec901bc/events/2-pressed'}]}}, 'links': [{'rel': 'properties', 'href': '/things/zb-000d6f000ec901bc/properties'}, {'rel': 'actions', 'href': '/things/zb-000d6f000ec901bc/actions'}, {'rel': 'events', 'href': '/things/zb-000d6f000ec901bc/events'}, {'rel': 'alternate', 'mediaType': 'text/html', 'href': '/things/zb-000d6f000ec901bc'}], 'layoutIndex': 54, 'selectedCapability': 'PushButton', 'iconHref': None}, 'adapterId': 'date-time-adapter', 'pluginId': 'date-time-adapter'}}