From 1543373b7f6060cba9248f930289e295f9aee77a Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Mon, 23 Apr 2018 21:44:06 +0200 Subject: [PATCH] Improve support current supported devices. --- lib/controller.js | 5 +++++ lib/converters/zigbee2mqtt.js | 10 +++++----- lib/devices.js | 8 ++++---- lib/homeassistant.js | 14 +++++++------- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/lib/controller.js b/lib/controller.js index c780c6526..62ddb7a36 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -62,6 +62,11 @@ class Controller { const device = message.endpoints[0].device; + if (!device) { + logger.warn('Message without device!'); + return; + } + // Check if this is a new device. if (!settings.getDevice(device.ieeeAddr)) { logger.info(`New device with address ${device.ieeeAddr} connected!`); diff --git a/lib/converters/zigbee2mqtt.js b/lib/converters/zigbee2mqtt.js index b9ebd1285..44b4ee76f 100644 --- a/lib/converters/zigbee2mqtt.js +++ b/lib/converters/zigbee2mqtt.js @@ -107,17 +107,17 @@ const parsers = [ } store[deviceID] = setTimeout(() => { - publish({occupancy: 'no_motion'}) + publish({occupancy: false}) store[deviceID] = null; }, noMotionTimeout * 60 * 1000); - return {occupancy: 'motion'}; + return {occupancy: true}; } }, { devices: ['MCCGQ01LM', 'MCCGQ11LM'], cid: 'genOnOff', type: 'attReport', - convert: (msg) => {return {state: msg.data.data['onOff'] ? 'open' : 'closed'}} + convert: (msg) => {return {contact: msg.data.data['onOff'] === 0}} }, { devices: ['LED1545G12', '7146060PH', 'LED1537R6'], @@ -188,13 +188,13 @@ const parsers = [ // Ignore parsers (these message dont need parsing). { - devices: ['WXKG11LM', 'MCCGQ11LM'], + devices: ['WXKG11LM', 'MCCGQ11LM', 'MCCGQ01LM', 'WXKG01LM', 'LED1545G12', '7146060PH', 'LED1537R6'], cid: 'genOnOff', type: 'devChange', convert: () => null }, { - devices: ['WXKG11LM', 'MCCGQ11LM', 'RTCGQ11LM', 'WSDCGQ11LM', 'SJCGQ11LM'], + devices: ['WXKG11LM', 'MCCGQ11LM', 'RTCGQ11LM', 'WSDCGQ11LM', 'SJCGQ11LM', 'MCCGQ01LM', 'RTCGQ01LM', 'WXKG01LM', 'WSDCGQ01LM'], cid: 'genBasic', type: 'devChange', convert: () => null diff --git a/lib/devices.js b/lib/devices.js index 6cbfbfcea..52f02877f 100644 --- a/lib/devices.js +++ b/lib/devices.js @@ -62,15 +62,15 @@ const devices = { model: 'MCCGQ01LM', vendor: 'Xiaomi', description: 'MiJia door & window contact sensor', - supports: 'open and closed state', - homeassistant: [homeassistant.binary_sensor_state] + supports: 'contact', + homeassistant: [homeassistant.binary_sensor_contact] }, 'lumi.sensor_magnet.aq2': { model: 'MCCGQ11LM', vendor: 'Xiaomi', description: 'Aqara door & window contact sensor', - supports: 'open and closed state', - homeassistant: [homeassistant.binary_sensor_state] + supports: 'contact', + homeassistant: [homeassistant.binary_sensor_contact] }, 'lumi.sensor_wleak.aq1': { model: 'SJCGQ11LM', diff --git a/lib/homeassistant.js b/lib/homeassistant.js index bbe3d41e4..7351adb31 100644 --- a/lib/homeassistant.js +++ b/lib/homeassistant.js @@ -4,20 +4,20 @@ const homeassistant = { type: 'binary_sensor', object_id: 'occupancy', discovery_payload: { - payload_on: 'motion', - payload_off: 'no_motion', + payload_on: true, + payload_off: false, value_template: '{{ value_json.occupancy }}', device_class: 'motion', json_attributes: ['battery'] } }, - 'binary_sensor_state': { + 'binary_sensor_contact': { type: 'binary_sensor', - object_id: 'state', + object_id: 'contact', discovery_payload: { - payload_on: 'open', - payload_off: 'closed', - value_template: '{{ value_json.state }}', + payload_on: false, + payload_off: true, + value_template: '{{ value_json.contact }}', device_class: 'door', json_attributes: ['battery'] }