feat: add Indicator LED control capability with session keepalive refs #4875

Add a CanIndicatorLight capability and status-aware Indicator toggle button. The indicator LED on the ASH21-B, ADC2W and ASH42-B is controlled via the LightGlobal config (configManager get/setConfig); add indicatorLightOn/Off/Status to Dahua_RPC and a model-specific 'Amcrest ASH42-B RPC' Controls row, with the capability also enabled on the ASH21-B/ADC2W/generic rows. Migration zm_update-1.39.13.sql adds the column.

Add Dahua_RPC keepAlive (global.keepAlive) wired into a 30s zmcontrol idle tick, plus session-expiry re-login retry in set_config and the status queries, so the long-running control daemon does not silently fail after the ~60s session timeout.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Isaac ConnorandClaude Opus 4.8 committed 2026-06-03 20:00:00 -04:00
1 parent fd83672a11
commit f02bc29c0d
12 files changed
+153 -7

No files matched your search

+3
View File
@@ -99,6 +99,7 @@ class Control extends ZM_Object {
'MinWhiteSpeed' => NULL,
'MaxWhiteSpeed' => NULL,
'CanLight' => 0,
'CanIndicatorLight' => 0,
'HasPresets' => 0,
'NumPresets' => 0,
'HasHomePreset' => 0,
@@ -125,6 +126,8 @@ class Control extends ZM_Object {
$cmds['Reboot'] = 'reboot';
$cmds['LightOn'] = 'lightOn';
$cmds['LightOff'] = 'lightOff';
$cmds['IndicatorLightOn'] = 'indicatorLightOn';
$cmds['IndicatorLightOff'] = 'indicatorLightOff';
$cmds['PresetSet'] = 'presetSet';
$cmds['PresetGoto'] = 'presetGoto';