Skip to content

Helper Manager

window.lcards.core.helperManager — Lifecycle management for LCARdS input_* helper entities.


Overview

LCARdSHelperManager extends BaseService and manages the set of HA input_select, input_boolean, and input_number entities that LCARdS requires for features like alert mode and sound schemes. It detects missing helpers, can create them via the WebSocket API, and provides a typed read/write interface.


Key Files

FileRole
core/helpers/lcards-helper-manager.jsService — lifecycle, subscriptions, value cache
core/helpers/lcards-helper-registry.jsSchema registry — defines all required helpers with types/defaults
core/helpers/lcards-helper-api.jsWebSocket operations — ensureHelper, getHelperValue, setHelperValue

Required Helpers

Helper entityTypePurpose
input_select.lcards_alert_modeinput_selectCurrent alert state (green/red/yellow/blue/gray/black)
input_select.lcards_sound_schemeinput_selectActive sound scheme
input_boolean.lcards_sounds_enabledinput_booleanGlobal sound on/off
input_number.lcards_sound_volumeinput_numberMaster volume 0–1

Helpers are defined in HELPER_REGISTRY and can be auto-created from the Config Panel.


Value API

javascript
const hm = window.lcards.core.helperManager;

// Read (synchronous from cache, or live from HASS)
const mode = hm.getValue('lcards_alert_mode');   // 'green'

// Write (WebSocket call)
await hm.setValue('lcards_alert_mode', 'red');

// Subscribe to changes
const unsub = hm.subscribe('lcards_alert_mode', (value) => {
  console.log('Alert mode changed to', value);
});

Auto-Create

javascript
// Ensure all required helpers exist; create any missing ones
await hm.ensureAllHelpers();

// Check individual
const missing = await hm.getMissingHelpers();

See Also