diff --git a/docs/configuration/configuration.md b/docs/configuration/configuration.md index 68496bc6f..bc51ad4c0 100644 --- a/docs/configuration/configuration.md +++ b/docs/configuration/configuration.md @@ -61,4 +61,7 @@ advanced: last_seen: 'disable' # Optional: Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg elapsed: false + # Availability timeout in seconds, disabled by default (0). + # When enabled, devices will be checked if they are still online. + availability_timeout: 0, ``` diff --git a/docs/information/groups.md b/docs/information/groups.md index f5a541699..65532749f 100644 --- a/docs/information/groups.md +++ b/docs/information/groups.md @@ -1,5 +1,5 @@ # Groups -*This is an experimental feature, ongoing discussion can be found here: https://github.com/Koenkk/zigbee2mqtt/issues/764* +*Ongoing discussion can be found here: https://github.com/Koenkk/zigbee2mqtt/issues/764* Zigbee2mqtt has support for Zigbee groups. By using Zigbee groups you can control multiple devices simultaneously with one command. diff --git a/lib/controller.js b/lib/controller.js index 04d942ee7..c65778437 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -59,7 +59,7 @@ class Controller { )); } - if (settings.get().experimental.availability_timeout) { + if (settings.get().advanced.availability_timeout) { this.extensions.push(new ExtensionDeviceAvailability( this.zigbee, this.mqtt, this.state, this.publishDeviceState )); diff --git a/lib/extension/deviceAvailability.js b/lib/extension/deviceAvailability.js index 81d575674..0b08922ab 100644 --- a/lib/extension/deviceAvailability.js +++ b/lib/extension/deviceAvailability.js @@ -18,7 +18,7 @@ class DeviceAvailabilityHandler { constructor(zigbee, mqtt, state, publishDeviceState) { this.zigbee = zigbee; this.mqtt = mqtt; - this.availability_timeout = settings.get().experimental.availability_timeout; + this.availability_timeout = settings.get().advanced.availability_timeout; this.timers = {}; this.pending = []; diff --git a/lib/extension/homeassistant.js b/lib/extension/homeassistant.js index 0c7b29135..ff4161e61 100644 --- a/lib/extension/homeassistant.js +++ b/lib/extension/homeassistant.js @@ -546,9 +546,9 @@ class HomeAssistant { }; // Set availability payload - // When using experimental availability_timeout each device has it's own availability topic. + // When using availability_timeout each device has it's own availability topic. // If not, use the availability topic of zigbee2mqtt. - if (settings.get().experimental.availability_timeout) { + if (settings.get().advanced.availability_timeout) { payload.availability_topic = `${settings.get().mqtt.base_topic}/${friendlyName}/availability`; } else { payload.availability_topic = `${settings.get().mqtt.base_topic}/bridge/state`; diff --git a/lib/util/settings.js b/lib/util/settings.js index 90f1c93ab..ff96760e6 100644 --- a/lib/util/settings.js +++ b/lib/util/settings.js @@ -21,6 +21,9 @@ const defaults = { baudrate: 115200, rtscts: true, + // Availability timeout in seconds, disabled by default. + availability_timeout: 0, + /** * Home Assistant requires ALL attributes to be present in ALL MQTT messages send by the device. * https://community.home-assistant.io/t/missing-value-with-mqtt-only-last-data-set-is-shown/47070/9 @@ -50,10 +53,6 @@ const defaults = { */ network_key: [1, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 10, 12, 13], }, - experimental: { - // Availability timeout in seconds, disabled by default. - availability_timeout: 0, - }, }; let settings = read();