feat(smarthome): add smart home features and Home Assistant integration (WebSocket protocol, discovery, factories, interfaces)

This commit is contained in:
2026-01-09 16:20:54 +00:00
parent 7bcec69658
commit 38a6e5c250
23 changed files with 4786 additions and 5 deletions

View File

@@ -30,6 +30,15 @@ export {
VolumeFeature,
PowerFeature,
SnmpFeature,
// Smart home features
SwitchFeature,
SensorFeature,
LightFeature,
CoverFeature,
LockFeature,
FanFeature,
ClimateFeature,
CameraFeature,
type TDeviceReference,
type IScanFeatureOptions,
type IPrintFeatureOptions,
@@ -38,6 +47,14 @@ export {
type IVolumeController,
type IPowerFeatureOptions,
type ISnmpFeatureOptions,
type ISwitchFeatureOptions,
type ISensorFeatureOptions,
type ILightFeatureOptions,
type ICoverFeatureOptions,
type ILockFeatureOptions,
type IFanFeatureOptions,
type IClimateFeatureOptions,
type ICameraFeatureOptions,
} from './features/index.js';
// ============================================================================
@@ -51,12 +68,29 @@ export {
createUpsDevice,
createSpeaker,
createDlnaRenderer,
// Smart home factories
createSmartSwitch,
createSmartSensor,
createSmartLight,
createSmartCover,
createSmartLock,
createSmartFan,
createSmartClimate,
createSmartCamera,
type IScannerDiscoveryInfo,
type IPrinterDiscoveryInfo,
type ISnmpDiscoveryInfo,
type IUpsDiscoveryInfo,
type ISpeakerDiscoveryInfo,
type IDlnaRendererDiscoveryInfo,
type ISmartSwitchDiscoveryInfo,
type ISmartSensorDiscoveryInfo,
type ISmartLightDiscoveryInfo,
type ISmartCoverDiscoveryInfo,
type ISmartLockDiscoveryInfo,
type ISmartFanDiscoveryInfo,
type ISmartClimateDiscoveryInfo,
type ISmartCameraDiscoveryInfo,
} from './factories/index.js';
// ============================================================================
@@ -77,6 +111,8 @@ export {
UPNP_DEVICE_TYPES,
UpsSnmpHandler,
UPS_SNMP_OIDS,
// Home Assistant protocol
HomeAssistantProtocol,
type ISnmpOptions,
type ISnmpVarbind,
type TSnmpValueType,
@@ -96,6 +132,9 @@ export {
type IUpsSnmpStatus,
} from './protocols/index.js';
// Home Assistant Discovery
export { HomeAssistantDiscovery, HA_SERVICE_TYPE } from './discovery/discovery.classes.homeassistant.js';
// ============================================================================
// Helpers
// ============================================================================