stas-demydiuk / domoticz-zigbee2mqtt-plugin

zigbee2mqtt plugin for domoticz
MIT License
136 stars 98 forks source link

Konke 2AJZ4KPKEY - my solution #137

Closed elpaul closed 5 years ago

elpaul commented 5 years ago

Hi all. zigbee2mqtt added support for KONKE button

    // Konke
    {
        zigbeeModel: ['3AFE170100510001'],
        model: '2AJZ4KPKEY',
        vendor: 'Konke',
        description: 'Multi-function button',
        supports: 'single, double and long click',
        fromZigbee: [
            fz.konke_click, fz.ignore_onoff_change,
            fz.generic_change_batteryvoltage_3000_2500, fz.generic_batteryvoltage_3000_2500,
        ],
        toZigbee: [],
        configure: (ieeeAddr, shepherd, coordinator, callback) => {
            const device = shepherd.find(ieeeAddr, 1);
            const actions = [
                (cb) => device.bind('genPowerCfg', coordinator, cb),
                (cb) => device.report('genPowerCfg', 'batteryVoltage', repInterval.HOUR, repInterval.MAX, cb),
            ];
            execute(device, actions, callback);
        },

fromzigbee:

    konke_click: {
        cid: 'genOnOff',
        type: ['attReport', 'readRsp'],
        convert: (model, msg, publish, options) => {
            const value = msg.data.data['onOff'];
            const lookup = {
                128: {click: 'single'}, // single click
                129: {click: 'double'}, // double and many click
                130: {click: 'long'}, // hold
            };

But in Domoticz I get info:

2019-08-11 08:28:48.896 (Zigbee2MQTT) MQTT message: zigbee2mqtt/0x086bd7fffebfe5ee {'linkquality': 0, 'battery': '100.00', 'voltage': 3000, 'click': 'single'}
2019-08-11 08:28:48.896 (Zigbee2MQTT) Unsupported zigbee device type with model "2AJZ4KPKEY"
2019-08-11 08:28:53.004 (Zigbee2MQTT) MQTT message: zigbee2mqtt/0x086bd7fffebfe5ee {'linkquality': 0, 'battery': '100.00', 'voltage': 3000, 'click': 'double'}
2019-08-11 08:28:53.005 (Zigbee2MQTT) Unsupported zigbee device type with model "2AJZ4KPKEY"
2019-08-11 08:33:50.041 (Zigbee2MQTT) MQTT message: zigbee2mqtt/0x086bd7fffebfe5ee {'linkquality': 0, 'battery': '100.00', 'voltage': 3000, 'click': 'long'}
2019-08-11 08:33:50.041 (Zigbee2MQTT) Unsupported zigbee device type with model "2AJZ4KPKEY"

Can we expect plugin updates?

elpaul commented 5 years ago

OK. I made a new adapter based on it WXKG01LM in directory .adapters/lumi. I called him "konkekey.py":

from adapters.adapter_with_battery import AdapterWithBattery
from devices.switch.selector_switch import SelectorSwitch

class konkekey(AdapterWithBattery):
    def __init__(self, devices):
        super().__init__(devices)

        self.switch = SelectorSwitch(devices, 'switch', 'click')
        self.switch.add_level('Off', None)
        self.switch.add_level('Click', 'single')
        self.switch.add_level('Double Click', 'double')
        self.switch.add_level('Long Click', 'long')

        self.switch.set_selector_style(SelectorSwitch.SELECTOR_TYPE_MENU)
        self.switch.disable_value_check_on_update()

        self.devices.append(self.switch)

    def handleCommand(self, alias, device, device_data, command, level, color):
        self.switch.handle_command(device_data, command, level, color)

In the "init.py" file I added:

from adapters.lumi.konkekey import konkekey

and:

'2AJZ4KPKEY': konkekey

and after plugin restart... Przechwytywanie

Przechwytywanie1

Yupi!