Philips Hue Smart Button not working

I’m having trouble getting a “philips hue smart button” to work.

I have a CC2531 that I (erroneously?) assumed I needed to have 3.0 firmware on (which I flashed successfully, but absolutely nothing would bind).

info  2020-01-07 16:19:57: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.8.0-dev","commit":"8ed0124","coordinator":{"type":"zStack12","meta":{"transportrev":2,"product":0,"majorrel":2,"minorrel":6,"maintrel":3,"revision":20190608}},"log_level":"debug","permit_join":true}'

It pairs, but I don’t receive any press notifications. It might be the lack of a ‘converter’ which the below log complains of.

Where ought I look to the code to fix that?

info  2020-01-07 16:21:23: Device '0x00178801060766a4' joined
info  2020-01-07 16:21:23: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_connected","message":{"friendly_name":"0x00178801060766a4"}}'
info  2020-01-07 16:21:23: Starting interview of '0x00178801060766a4'
info  2020-01-07 16:21:23: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_started","meta":{"friendly_name":"0x00178801060766a4"}}'
debug 2020-01-07 16:21:23: Device '0x00178801060766a4' announced itself
debug 2020-01-07 16:21:23: Device '0x00178801060766a4' announced itself
debug 2020-01-07 16:21:24: Received Zigbee message from '0x00178801060766a4', type 'readResponse', cluster 'genBasic', data '{"modelId":"ROM001","manufacturerName":"Philips","powerSource":3}' from endpoint 1 with groupID 0
debug 2020-01-07 16:21:24: No converter available for '9290022230' with cluster 'genBasic' and type 'readResponse' and data '{"modelId":"ROM001","manufacturerName":"Philips","powerSource":3}'
debug 2020-01-07 16:21:24: Received Zigbee message from '0x00178801060766a4', type 'readResponse', cluster 'genBasic', data '{"zclVersion":2,"appVersion":2,"stackVersion":1}' from endpoint 1 with groupID 0
debug 2020-01-07 16:21:24: No converter available for '9290022230' with cluster 'genBasic' and type 'readResponse' and data '{"zclVersion":2,"appVersion":2,"stackVersion":1}'
debug 2020-01-07 16:21:24: Received Zigbee message from '0x00178801060766a4', type 'readResponse', cluster 'genBasic', data '{"hwVersion":1,"dateCode":"20190619","swBuildId":"2.21.0_r29784"}' from endpoint 1 with groupID 0
debug 2020-01-07 16:21:24: No converter available for '9290022230' with cluster 'genBasic' and type 'readResponse' and data '{"hwVersion":1,"dateCode":"20190619","swBuildId":"2.21.0_r29784"}'
info  2020-01-07 16:21:24: Successfully interviewed '0x00178801060766a4', device has successfully been paired
info  2020-01-07 16:21:24: Device '0x00178801060766a4' is supported, identified as: Philips Hue smart button (9290022230)
info  2020-01-07 16:21:24: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_successful","meta":{"friendly_name":"0x00178801060766a4","model":"9290022230","vendor":"Philips","description":"Hue smart button","supported":true}}'

Digging a bit further from other projects yields


and

So it feels to my untutored eye that it isn’t working because there is no ‘binding’ ?

Looking at the “hue dimmer switch” within herdsman-converters devices.js, it has a bunch of config:

meta: {configureKey: 1},
        configure: async (device, coordinatorEndpoint) => {
            const endpoint1 = device.getEndpoint(1);
            await bind(endpoint1, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);

            const endpoint2 = device.getEndpoint(2);
            const options = {manufacturerCode: 0x100B, disableDefaultResponse: true};
            await endpoint2.write('genBasic', {0x0031: {value: 0x000B, type: 0x19}}, options);
            await bind(endpoint2, coordinatorEndpoint, ['manuSpecificPhilips', 'genPowerCfg']);
            await configureReporting.batteryPercentageRemaining(endpoint2);
        },
        endpoint: (device) => {
            return {'ep1': 1, 'ep2': 2};
        },

Doing some naïf copy-paste doesn’t seem to help

zigbee2mqtt:error 2020-01-07 17:30:44: Failed to configure 'SmartButton', attempt 1 (Error: AREQ - ZDO - bindRsp after 10000ms
    at Timeout.object.timer.setTimeout [as _onTimeout] (/Users/magnayn/dev/github/zigbee2mqtt/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10))

I can’t find any documentation on what to expect (and to maybe translate the above links into something I could add to the configuration…) ?