This PR includes a re-write of the HomeSeer polling and device-value updating mechanism to allow fast/frequent polling update from HomeSeer. Users can also access this update by "npm -g install homebridge-homeseer-plugin-2018"
The new polling implementation in this -2018 version plugin replaces the prior one HomeKit device Characteristic update per HomeSeer poll mechanism with one in which all the various HomeKit device Characteristics updates are retrieved from HomeSeer in a single poll and then applied individually in the plugin. For large z-Wave networks, this can substantially reduce the polling load on HomeSeer. For example, a 100 node Z-wave network with a 10 second poll period would require 600 polls / minute under the prior mechanism, while only requiring 6 polls / minute under this new implementation. The new polling mechanism also adds a few other improvements such as improvements to status updating for HomeKit devices with multiple Services / multiple Characteristics that each need updating on a poll cycle (previously, only 1 status characteristic was supported). The update drops support for several device types such as "door" and "garage door". The code also provides a simplified function to map between HomeKit and HomeSeer values -- E.g., rather than having numerous device-specific mappign function, such as individual functions to set values between HomeKit / HomeSeer, a single setHSValue() function is used which looks at the HAP Characteristic of the item being updated to determine what to do.
It is recommended that platform polling period be set at about 35-10 seconds. A longer period makes the Home app. interface less responsive. On the other hand, if the period is too short (e.g., 1 second), it appears that the hap-nodejs system can become bogged down by processing too many updates (I suspect this may have to do with the number of updates being sent between HAP-nodejs and the Apple TV / Apple Servers, but am unsure of that point).
This PR includes a re-write of the HomeSeer polling and device-value updating mechanism to allow fast/frequent polling update from HomeSeer. Users can also access this update by "npm -g install homebridge-homeseer-plugin-2018"
The new polling implementation in this -2018 version plugin replaces the prior one HomeKit device Characteristic update per HomeSeer poll mechanism with one in which all the various HomeKit device Characteristics updates are retrieved from HomeSeer in a single poll and then applied individually in the plugin. For large z-Wave networks, this can substantially reduce the polling load on HomeSeer. For example, a 100 node Z-wave network with a 10 second poll period would require 600 polls / minute under the prior mechanism, while only requiring 6 polls / minute under this new implementation. The new polling mechanism also adds a few other improvements such as improvements to status updating for HomeKit devices with multiple Services / multiple Characteristics that each need updating on a poll cycle (previously, only 1 status characteristic was supported). The update drops support for several device types such as "door" and "garage door". The code also provides a simplified function to map between HomeKit and HomeSeer values -- E.g., rather than having numerous device-specific mappign function, such as individual functions to set values between HomeKit / HomeSeer, a single setHSValue() function is used which looks at the HAP Characteristic of the item being updated to determine what to do.
It is recommended that platform polling period be set at about 35-10 seconds. A longer period makes the Home app. interface less responsive. On the other hand, if the period is too short (e.g., 1 second), it appears that the hap-nodejs system can become bogged down by processing too many updates (I suspect this may have to do with the number of updates being sent between HAP-nodejs and the Apple TV / Apple Servers, but am unsure of that point).