[ST Edge] Zigbee Driver for MOES 4-Button Scene Switch (TS004F) Plus Some Smart Knob Models

@pgbunce Can you please share if the timestamp got updated?

The thing is that I found an issue that could be related, but I really doubt it, and it is related to the invite to enroll the hub into the channel.

So the thing is that the first invite made expired and I had to create a new one just after you began writing. Such invite is available at the top of this post.

Try the new link, although it should be redirecting you to the channel it self.


So far this was just a label and worked for over a year, but I’ll give it a try.

Try with the latest: button-battery-v1.4.5a


If you’re comfortable working with the terminal and dangling with Lua code feel free to fork and contribute back at some point. That would be really awesome.

Thanks, @erickv

The timestamp was updated, one of the first things I checked too.

image

I’ll clear out the existing driver, and unenroll, then enroll using the 2026-02-09 updated invite. I’ll keep you posted.

Thanks for all the help.

Got the newest, 1.4.5a, and same issue, just a single button. :confused:

image

I will see about trying out some stuff this weekend.

I installed the CLI, and grabbed the logs while adding one of the remotes. This is the line where it’s deciding on a single button

2026-02-13T21:11:13.089901439Z INFO button-battery-v1.4.5a <ZigbeeDevice: 93630ad6-d316-4b0b-99b4-3aa051c29027 [0xBCD8] (Scene Switch)> emitting event: {“attribute_id”:“numberOfButtons”,“capability_id”:“button”,“component_id”:“main”,“state”:{“value”:1}}

I exported the json view of the profile in the webapp, and it shows a different fingerprint than we’d expect (“fingerprintId”: “_TZ3000_kaflzta4/TS004F”)

{
  "deviceId": "93630ad6-d316-4b0b-99b4-3aa051c29027",
  "ownerId": "244ac892-77ff-e623-f175-d166efb84f0b",
  "name": "button-battery",
  "label": "4 button remote- living room",
  "deviceManufacturerCode": "_TZ3000_g9g2xnch",
  "manufacturerName": "SmartThingsCommunity",
  "deviceModel": "TS004F",
  "presentationId": "173a6dcd-4d36-3aa9-847c-bfdeddf658db",
  "locationId": "768885ea-9c97-4b21-8523-7562a98b636d",
  "roomId": "2a752d4b-87a2-4975-994f-63ec7702febd",
  "components": [
    {
      "id": "main",
      "label": "main",
      "capabilities": [
        {
          "id": "button",
          "version": 1,
          "optional": false,
          "status": {
            "button": {
              "value": null
            },
            "numberOfButtons": {
              "value": 1,
              "timestamp": "2026-02-13T21:11:13.181Z"
            },
            "supportedButtonValues": {
              "value": [
                "pushed",
                "double",
                "held"
              ],
              "timestamp": "2026-02-13T21:11:13.211Z"
            }
          }
        },
        {
          "id": "switchLevel",
          "version": 1,
          "optional": false,
          "status": {
            "levelRange": {
              "value": null
            },
            "level": {
              "value": 50,
              "unit": "%",
              "timestamp": "2026-02-13T21:11:13.195Z"
            }
          }
        },
        {
          "id": "switch",
          "version": 1,
          "optional": false,
          "status": {
            "switch": {
              "value": null
            }
          }
        }
      ],
      "categories": [
        {
          "name": "RemoteController",
          "categoryType": "manufacturer"
        }
      ],
      "optional": false
    },
    {
      "id": "battery",
      "label": "battery",
      "capabilities": [
        {
          "id": "battery",
          "version": 1,
          "optional": false,
          "status": {
            "quantity": {
              "value": null
            },
            "battery": {
              "value": 100,
              "unit": "%",
              "timestamp": "2026-02-13T21:11:14.854Z"
            },
            "type": {
              "value": null
            }
          }
        }
      ],
      "categories": [
        {
          "name": "RemoteController",
          "categoryType": "manufacturer"
        }
      ],
      "optional": false
    }
  ],
  "createTime": "2026-02-13T21:11:10.885Z",
  "healthState": {
    "state": "ONLINE",
    "lastUpdatedDate": "2026-02-13T21:11:26.688Z"
  },
  "parentDeviceId": "bbdef60d-d884-4d7e-a277-f5590e5b58a4",
  "profile": {
    "id": "4ba02f88-7daf-3c92-b05a-c64b190b21d0"
  },
  "zigbee": {
    "eui": "A4C1382E2805F2B8",
    "networkId": "BCD8",
    "driverId": "d327f7c9-d070-4831-8741-e0177764a150",
    "executingLocally": true,
    "hubId": "bbdef60d-d884-4d7e-a277-f5590e5b58a4",
    "provisioningState": "PROVISIONED",
    "fingerprintType": "ZIGBEE_MANUFACTURER",
    "fingerprintId": "_TZ3000_kaflzta4/TS004F"
  },
  "type": "ZIGBEE",
  "vid": "173a6dcd-4d36-3aa9-847c-bfdeddf658db",
  "mnmn": "SmartThingsCommunity",
  "ocfDeviceType": "x.com.st.d.remotecontroller",
  "restrictionTier": 0,
  "allowed": [
    "w:devices",
    "w:devices:locationId",
    "w:devices:roomId",
    "d:devices",
    "x:devices",
    "r:devices:visible"
  ],
  "executionContext": "LOCAL",
  "relationships": []
}

@pgbunce That’s an amazing discovery, and it makes sense that points to the single-button profile, so, let’s keep digging to see if it’s actually possible to overwrite the current profile.

@songby69 last year we merged your device’s fingerprint which happens to be that same as Phil’s device (PR: Update fingerprints.yaml by songby69-ai · Pull Request #43 · erickvneri/erickv-edge-drivers · GitHub*)*

So, for now I will push a profile change to use 4 buttons instead of 1.

Also, I will queue the development of the profile update feature from within the settings view to be able to switch from supported profiles. This will allow you and Phil to use the same fingerprint even if the device’s model is different.

But, please let me know that your device is actually a 1-button device.

Looking forward to your response.

Thanks!

@erickv We updated to the latest 1.4.5a, and the device now shows up as a 4-button-battery, which is fantastic! Thank you!

@pgbunce Your welcome and most importantly, thank you for this amazing contribution and pair-development experience :rocket: