Update zigbee-shepherd-converters to 7.0.12.

This commit is contained in:
Koen Kanters
2019-01-08 22:07:13 +01:00
parent 26083a62d9
commit 6fdd58be8a
10 changed files with 143 additions and 19 deletions
+22 -1
View File
@@ -29,6 +29,27 @@ I start with bulb on, then off, and then 6 “ons”, where I kill the light
* To factory reset the TRADFRI drivers (ICPSHC24-10EU-IL-1 and ICPSHC24-30EU-IL-1) use a small pin or paperclip to push the reset button once.
### IKEA TRADFRI remote control (E1524)
This device requires extra setup as it is meant to only control groups. Therefore it does not send any information directly to the coordinator. As the group ID is randomized upon factor reset we need to find out the group ID where it sends its commands to. This can be done by using Zigbee sniffing.
1. Pair the remote to Zigbee2mqtt by holding it close to the coordinator and pressing the button next to the battery 4 times. The red light on the remote will now flash a few times.
2. Setup your Zigbee traffic sniffer by following [How to sniff Zigbee traffic](../how_tos/how_to_sniff_zigbee_traffic.md).
3. Press the middle (power) button on the remote, this will produce the following message in Wireshark:
![E1524 group](../images/E1524_group.png)
4. Retrieve the group from the message, which is `0xeb12` in the above example.
5. Add the group to the device in `configuration.yaml`, example:
```yaml
devices:
'0x000b57fffecb472d':
friendly_name: '0x000b57fffecb472d'
retain: false
coordinator_group: 0xeb12
```
6. Restart Zigbee2mqtt, when everything went OK you will see:
```
zigbee2mqtt:info 1/8/2019, 8:42:40 PM Sucesfully applied coordinator group for IKEA TRADFRI remote control (0x000b57fffecb472d)
```
## Philips Hue
Factory reset the light bulb see [HOWTO: Factory reset a Hue bulb](https://www.youtube.com/watch?v=qvlEAELiJKs). After resetting the bulb will automatically connect.
@@ -68,7 +89,7 @@ will rapidly flash green.
- After fast flashes, Z809A will reboot, and the restore is completed. The socket will automatically connect now.
## Gledopto
Some of the Gledopto devices are not providing a `modelID`, in that case the modelID `undefined` is shown. Sometimes it helps to repair the device while keeping it close to the coordinator (less than one meter).
Some of the Gledopto devices are not providing a `modelID`, in that case the modelID `undefined` is shown. Sometimes it helps to repair the device while keeping it close to the coordinator (less than one meter).
If this fails, the `modelID` has to be set manually in `data/database.db`. First find out the `modelID` of your devices from the [Supported devices page](../information/supported_devices.md). Then open `data/database.db` and add the `modelId` as highlighted in **bold** below.
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+2 -1
View File
@@ -2,7 +2,7 @@
*NOTE: This file has been generated, do not edit this file manually!*
Currently **174** devices are supported from **34** different vendors.
Currently **175** devices are supported from **34** different vendors.
In case you own a Zigbee device which is **NOT** listed here, please see
[How to support new devices](https://koenkk.github.io/zigbee2mqtt/how_tos/how_to_support_new_devices.html).
@@ -138,6 +138,7 @@ In case you own a Zigbee device which is **NOT** listed here, please see
| L1528 | IKEA FLOALT LED light panel, dimmable, white spectrum (30x90 cm) (on/off, brightness, color temperature) | ![../images/devices/L1528.jpg](../images/devices/L1528.jpg) |
| L1531 | IKEA SURTE door light panel, dimmable, white spectrum (38x64 cm) (on/off, brightness, color temperature) | ![../images/devices/L1531.jpg](../images/devices/L1531.jpg) |
| E1603 | IKEA TRADFRI control outlet (on/off) | ![../images/devices/E1603.jpg](../images/devices/E1603.jpg) |
| E1524 | IKEA TRADFRI remote control (toggle, arrow left/right click/hold/release, brightness up/down click/hold/release (**[requires additional setup!](https://github.com/Koenkk/zigbee2mqtt/blob/dev/docs/getting_started/pairing_devices.md)**)) | ![../images/devices/E1524.jpg](../images/devices/E1524.jpg) |
### Innr
+27
View File
@@ -1247,6 +1247,33 @@ switch:
```
{% endraw %}
### E1524
{% raw %}
```yaml
sensor:
- platform: "mqtt"
state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
availability_topic: "zigbee2mqtt/bridge/state"
icon: "mdi:gesture-double-tap"
value_template: "{{ value_json.action }}"
json_attributes:
- "linkquality"
- "angle"
- "side"
- "from_side"
- "to_side"
- "brightness"
- "angle_x_absolute"
- "angle_y_absolute"
- "angle_z"
- "angle_y"
- "angle_x"
- "unknown_data"
- "last_seen"
force_update: true
```
{% endraw %}
### 7299760PH
{% raw %}
```yaml
+4 -2
View File
@@ -17,8 +17,9 @@ const ExtensionDeviceReceive = require('./extension/deviceReceive');
const ExtensionMarkOnlineXiaomi = require('./extension/markOnlineXiaomi');
const ExtensionBridgeConfig = require('./extension/bridgeConfig');
const ExtensionGroups = require('./extension/groups');
const DeviceAvailability = require('./extension/deviceAvailability');
const ExtensionDeviceAvailability = require('./extension/deviceAvailability');
const ExtensionBind = require('./extension/bind');
const ExtensionCoordinatorGroup = require('./extension/coordinatorGroup');
class Controller {
constructor() {
@@ -43,6 +44,7 @@ class Controller {
new ExtensionBridgeConfig(this.zigbee, this.mqtt, this.state, this.publishDeviceState),
new ExtensionGroups(this.zigbee, this.mqtt, this.state, this.publishDeviceState),
new ExtensionBind(this.zigbee, this.mqtt, this.state, this.publishDeviceState),
new ExtensionCoordinatorGroup(this.zigbee, this.mqtt, this.state, this.publishDeviceState),
];
if (settings.get().homeassistant) {
@@ -58,7 +60,7 @@ class Controller {
}
if (settings.get().experimental.availability_timeout) {
this.extensions.push(new DeviceAvailability(
this.extensions.push(new ExtensionDeviceAvailability(
this.zigbee, this.mqtt, this.state, this.publishDeviceState
));
}
+63
View File
@@ -0,0 +1,63 @@
const zigbeeShepherdConvertersDevices = require('zigbee-shepherd-converters').devices;
const settings = require('../util/settings');
const logger = require('../util/logger');
// IKEA TRADFRI remote control
const E1524 = zigbeeShepherdConvertersDevices.find((d) => d.model === 'E1524');
const devices = [E1524];
/**
* This extensions adds the coordinator to a group which is required for some devices to work properly.
*/
class CoordinatorGroup {
constructor(zigbee, mqtt, state, publishDeviceState) {
this.zigbee = zigbee;
this.mqtt = mqtt;
this.state = state;
this.publishDeviceState = publishDeviceState;
}
onZigbeeStarted() {
this.zigbee.getAllClients().forEach((device) => {
devices.forEach((mappedDevice) => {
if (mappedDevice.zigbeeModel.includes(device.modelId)) {
this.setup(mappedDevice, device);
}
});
});
}
setup(mappedDevice, device) {
const deviceLog = `${mappedDevice.vendor} ${mappedDevice.description} (${device.ieeeAddr})`;
// Check if there is a coordinator_group defined for this device.
const deviceSettings = settings.getDevice(device.ieeeAddr);
if (!deviceSettings || !deviceSettings.coordinator_group) {
logger.error(
`Device ${deviceLog} requires extra configuration!` +
` Please see https://github.com/Koenkk/zigbee2mqtt/blob/dev/docs/getting_started/pairing_devices.md`
);
return;
}
// Add the coordinator to the group, first check if it's already in the group.
const findPayload = {endpoint: 1, groupid: deviceSettings.coordinator_group};
this.zigbee.shepherd.controller.request('ZDO', 'extFindGroup', findPayload, (error, data) => {
if (error) {
const addPayload = {endpoint: 1, groupid: deviceSettings.coordinator_group, namelen: 0, groupname: ''};
this.zigbee.shepherd.controller.request('ZDO', 'extAddGroup', addPayload, (error, data) => {
if (!error) {
logger.info(`Sucesfully applied coordinator group for ${deviceLog}`);
} else {
logger.error(`Failed to apply coordinator group for ${deviceLog}`);
}
});
}
logger.info(`Sucesfully applied coordinator group for ${deviceLog}`);
});
}
}
module.exports = CoordinatorGroup;
+1
View File
@@ -479,6 +479,7 @@ const mapping = {
'D1532': [configurations.light_brightness],
'AV2010/32': [],
'HGZB-07A': [configurations.light_brightness_colortemp_colorxy],
'E1524': [configurations.sensor_action],
};
/**
+22 -13
View File
@@ -4776,13 +4776,23 @@
}
},
"zcl-packet": {
"version": "git+https://github.com/Koenkk/zcl-packet.git#fbd8c936bbd4be0597ad3e934be0ca722b0128a6",
"from": "git+https://github.com/Koenkk/zcl-packet.git#fbd8c936bbd4be0597ad3e934be0ca722b0128a6",
"version": "git+https://github.com/Koenkk/zcl-packet.git#9fdecf5d684fb664b416bde982436c4a22187062",
"from": "git+https://github.com/Koenkk/zcl-packet.git#9fdecf5d684fb664b416bde982436c4a22187062",
"requires": {
"concentrate": "^0.2.3",
"dissolve-chunks": "^1.3.0",
"enum": "^2.3.0",
"zcl-id": "^0.2.0"
"zcl-id": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db"
},
"dependencies": {
"zcl-id": {
"version": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db",
"from": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db",
"requires": {
"busyman": "^0.3.0",
"enum": "^2.5.0"
}
}
}
},
"ziee": {
@@ -4795,8 +4805,8 @@
}
},
"zigbee-shepherd": {
"version": "git+https://github.com/Koenkk/zigbee-shepherd.git#bc2445dc0bb7a2a1d5b4a461c231e28d07f517e7",
"from": "git+https://github.com/Koenkk/zigbee-shepherd.git#bc2445dc0bb7a2a1d5b4a461c231e28d07f517e7",
"version": "git+https://github.com/Koenkk/zigbee-shepherd.git#43278a2219d1733180ed353deb4b724b2b9437fa",
"from": "git+https://github.com/Koenkk/zigbee-shepherd.git#43278a2219d1733180ed353deb4b724b2b9437fa",
"requires": {
"areq": "^0.2.0",
"busyman": "^0.3.0",
@@ -4805,16 +4815,15 @@
"objectbox": "^0.3.0",
"proving": "^0.1.0",
"q": "^1.5.1",
"zcl-id": "^0.4.0",
"zcl-packet": "git+https://github.com/Koenkk/zcl-packet.git#fbd8c936bbd4be0597ad3e934be0ca722b0128a6",
"zcl-id": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db",
"zcl-packet": "git+https://github.com/Koenkk/zcl-packet.git#9fdecf5d684fb664b416bde982436c4a22187062",
"ziee": "^0.3.0",
"zstack-constants": "^0.2.0"
},
"dependencies": {
"zcl-id": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/zcl-id/-/zcl-id-0.4.0.tgz",
"integrity": "sha512-XN7diHjvF/qQmrs78xURDEpZcw7Y5+R0ScuNwR3X+xfUfJo94Dj9UGkKniSzOATEZWlLZjg/P23y4GwKFRMptA==",
"version": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db",
"from": "git+https://github.com/Koenkk/zcl-id.git#509f77ab620ece6ad8e83a008283457a5280c8db",
"requires": {
"busyman": "^0.3.0",
"enum": "^2.5.0"
@@ -4823,9 +4832,9 @@
}
},
"zigbee-shepherd-converters": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/zigbee-shepherd-converters/-/zigbee-shepherd-converters-7.0.11.tgz",
"integrity": "sha512-VaInDvJDKKxvwRnis2dWdJX9fDOx34tzeb2eDYmZqjP3poHnEhQpue9Qvbay+JOeLLGy8YdDNn2nHkM69ARB0Q==",
"version": "7.0.12",
"resolved": "https://registry.npmjs.org/zigbee-shepherd-converters/-/zigbee-shepherd-converters-7.0.12.tgz",
"integrity": "sha512-72Q6WgRN4qbe7VCAnI9U947otx7blAl5Ai/ap9y54kkbfnGhqR+b/cgKGAorrqMntFW5UqKd76rhY8b7QORHdw==",
"requires": {
"debounce": "*",
"debug": "3.2.6",
+2 -2
View File
@@ -45,8 +45,8 @@
"semver": "*",
"winston": "2.4.2",
"ziee": "*",
"zigbee-shepherd": "git+https://github.com/Koenkk/zigbee-shepherd.git#bc2445dc0bb7a2a1d5b4a461c231e28d07f517e7",
"zigbee-shepherd-converters": "7.0.11",
"zigbee-shepherd": "git+https://github.com/Koenkk/zigbee-shepherd.git#43278a2219d1733180ed353deb4b724b2b9437fa",
"zigbee-shepherd-converters": "7.0.12",
"zive": "*"
},
"devDependencies": {