mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-08-29 07:08:56 +00:00
Check availability for new devices. #775
This commit is contained in:
+2
-2
@@ -17,7 +17,7 @@ const ExtensionDeviceReceive = require('./extension/deviceReceive');
|
||||
const ExtensionMarkOnlineXiaomi = require('./extension/markOnlineXiaomi');
|
||||
const ExtensionBridgeConfig = require('./extension/bridgeConfig');
|
||||
const ExtensionGroups = require('./extension/groups');
|
||||
const ExtensionDeviceAvailability = require('./extension/deviceAvailability');
|
||||
const ExtensionAvailability = require('./extension/availability');
|
||||
const ExtensionBind = require('./extension/bind');
|
||||
const ExtensionCoordinatorGroup = require('./extension/coordinatorGroup');
|
||||
const ExtensionReporting = require('./extension/reporting');
|
||||
@@ -62,7 +62,7 @@ class Controller {
|
||||
}
|
||||
|
||||
if (settings.get().advanced.availability_timeout) {
|
||||
this.extensions.push(new ExtensionDeviceAvailability(
|
||||
this.extensions.push(new ExtensionAvailability(
|
||||
this.zigbee, this.mqtt, this.state, this.publishDeviceState
|
||||
));
|
||||
}
|
||||
|
||||
@@ -12,10 +12,9 @@ const pingableDevices = [
|
||||
const toZigbeeCandidates = ['state'];
|
||||
|
||||
/**
|
||||
* This extensions set availability based on optionally polling router devices
|
||||
* and optionally check device publish with attribute reporting
|
||||
* This extensions pings devices to check if they are online.
|
||||
*/
|
||||
class DeviceAvailabilityHandler {
|
||||
class Availability {
|
||||
constructor(zigbee, mqtt, state, publishDeviceState) {
|
||||
this.zigbee = zigbee;
|
||||
this.mqtt = mqtt;
|
||||
@@ -132,6 +131,9 @@ class DeviceAvailabilityHandler {
|
||||
// When a message is received and the device is marked as offline, mark it online.
|
||||
if (this.state.hasOwnProperty(device.ieeeAddr) && !this.state[device.ieeeAddr]) {
|
||||
this.publishAvailability(device.ieeeAddr, true);
|
||||
} else if (!this.state.hasOwnProperty(device.ieeeAddr)) {
|
||||
// A new device has been connected
|
||||
this.publishAvailability(device.ieeeAddr, true);
|
||||
}
|
||||
|
||||
this.setTimer(device.ieeeAddr);
|
||||
@@ -139,4 +141,4 @@ class DeviceAvailabilityHandler {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DeviceAvailabilityHandler;
|
||||
module.exports = Availability;
|
||||
Reference in New Issue
Block a user