@homebridge-plugins/homebridge-tuya 3.0.0-beta.7 → 3.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ADVANCED_OPTIONS.md +17 -0
- package/README.md +3 -1
- package/config.schema.json +387 -582
- package/dist/cloud/api/TuyaOpenAPI.js +5 -9
- package/dist/cloud/api/TuyaOpenAPI.js.map +1 -1
- package/dist/cloud/api/TuyaOpenMQ.js +3 -4
- package/dist/cloud/api/TuyaOpenMQ.js.map +1 -1
- package/dist/cloud/device/{TuyaDeviceManager.js → TuyaCloudDeviceManager.js} +98 -80
- package/dist/cloud/device/TuyaCloudDeviceManager.js.map +1 -0
- package/dist/cloud/device/TuyaCustomDeviceManager.js +74 -5
- package/dist/cloud/device/TuyaCustomDeviceManager.js.map +1 -1
- package/dist/cloud/device/TuyaHomeDeviceManager.js +76 -9
- package/dist/cloud/device/TuyaHomeDeviceManager.js.map +1 -1
- package/dist/config.js +26 -5
- package/dist/config.js.map +1 -1
- package/dist/local/DynamicChildDiscovery.js +2 -1
- package/dist/local/DynamicChildDiscovery.js.map +1 -1
- package/dist/local/LocalDevice.js +3 -2
- package/dist/local/LocalDevice.js.map +1 -1
- package/dist/local/LocalDeviceManager.js +120 -127
- package/dist/local/LocalDeviceManager.js.map +1 -1
- package/dist/local/TuyaDiscovery.js +14 -7
- package/dist/local/TuyaDiscovery.js.map +1 -1
- package/dist/local/ZigbeeGatewayDetection.js +2 -2
- package/dist/local/ZigbeeGatewayDetection.js.map +1 -1
- package/dist/local/protocol/ProtocolUtilities.js +34 -17
- package/dist/local/protocol/ProtocolUtilities.js.map +1 -1
- package/dist/local/protocol/ProtocolV31V32.js +4 -2
- package/dist/local/protocol/ProtocolV31V32.js.map +1 -1
- package/dist/local/protocol/ProtocolV33.js +4 -2
- package/dist/local/protocol/ProtocolV33.js.map +1 -1
- package/dist/local/protocol/ProtocolV34.js +10 -5
- package/dist/local/protocol/ProtocolV34.js.map +1 -1
- package/dist/local/protocol/ProtocolV35.js +8 -4
- package/dist/local/protocol/ProtocolV35.js.map +1 -1
- package/dist/platform.js +229 -493
- package/dist/platform.js.map +1 -1
- package/dist/settings.js +0 -2
- package/dist/settings.js.map +1 -1
- package/dist/shared/TuyaDeviceManager.js +97 -0
- package/dist/shared/TuyaDeviceManager.js.map +1 -0
- package/dist/shared/TuyaHybridDeviceManager.js +145 -0
- package/dist/shared/TuyaHybridDeviceManager.js.map +1 -0
- package/dist/shared/accessory/AccessoryFactory.js +334 -0
- package/dist/shared/accessory/AccessoryFactory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/AirConditionerAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/AirPurifierAccessory.js.map +1 -1
- package/dist/shared/accessory/AirQualitySensorAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/BaseAccessory.js +16 -95
- package/dist/shared/accessory/BaseAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/BlindsAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/CameraAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/CarbonDioxideSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/CarbonMonoxideSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/ContactSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/DehumidifierAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/DiffuserAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/DimmerAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/DoorbellAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/ExtractionHoodAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/FanAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/GarageDoorAccessory.js +19 -2
- package/dist/shared/accessory/GarageDoorAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/HeaterAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/HeaterAccessory_old.js.map +1 -1
- package/dist/shared/accessory/HumanPresenceSensorAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/HumidifierAccessory.js.map +1 -1
- package/dist/shared/accessory/IRAirConditionerAccessory.js.map +1 -0
- package/dist/shared/accessory/IRControlHubAccessory.js.map +1 -0
- package/dist/shared/accessory/IRControlHubSubAccessory.js.map +1 -0
- package/dist/shared/accessory/IRGenericAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/LeakSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/LightAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/LightSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/LocationWeatherAccessory.js +1 -1
- package/dist/shared/accessory/LocationWeatherAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/LockAccessory.js +3 -3
- package/dist/shared/{accessories → accessory}/LockAccessory.js.map +1 -1
- package/dist/shared/accessory/MotionSensorAccessory.js.map +1 -0
- package/dist/shared/accessory/OutletAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/PetFeederAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/SceneAccessory.js +1 -1
- package/dist/shared/accessory/SceneAccessory.js.map +1 -0
- package/dist/shared/accessory/SceneSwitchAccessory.js.map +1 -0
- package/dist/shared/accessory/SecuritySystemAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/SmokeSensorAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/SwitchAccessory.js +1 -45
- package/dist/shared/accessory/SwitchAccessory.js.map +1 -0
- package/dist/shared/accessory/TemperatureHumiditySensorAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/ThermostatAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/TowerRackAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/ValveAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/VibrationSensorAccessory.js.map +1 -1
- package/dist/shared/accessory/WeatherStationAccessory.js.map +1 -0
- package/dist/shared/accessory/WetBulbGlobeTemperatureAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/WhiteNoiseLightAccessory.js +1 -0
- package/dist/shared/accessory/WhiteNoiseLightAccessory.js.map +1 -0
- package/dist/shared/accessory/WindowAccessory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/WindowCoveringAccessory.js.map +1 -1
- package/dist/shared/{accessories → accessory}/WirelessSwitchAccessory.js.map +1 -1
- package/dist/shared/accessory/characteristic/Active.js.map +1 -0
- package/dist/shared/accessory/characteristic/AirQuality.js.map +1 -0
- package/dist/shared/accessory/characteristic/CurrentRelativeHumidity.js.map +1 -0
- package/dist/shared/accessory/characteristic/CurrentTemperature.js.map +1 -0
- package/dist/shared/accessory/characteristic/CurrentWeather.js.map +1 -0
- package/dist/shared/accessory/characteristic/CurrentWeatherByOpenMeteo.js.map +1 -0
- package/dist/shared/accessory/characteristic/CurrentWetBulbGlobeTemperature.js.map +1 -0
- package/dist/shared/{accessories → accessory}/characteristic/EnergyUsage.js +0 -5
- package/dist/shared/accessory/characteristic/EnergyUsage.js.map +1 -0
- package/dist/shared/{accessories → accessory}/characteristic/Light.js +5 -3
- package/dist/shared/accessory/characteristic/Light.js.map +1 -0
- package/dist/shared/accessory/characteristic/LightSensor.js.map +1 -0
- package/dist/shared/accessory/characteristic/LockPhysicalControls.js.map +1 -0
- package/dist/shared/accessory/characteristic/MotionDetected.js.map +1 -0
- package/dist/shared/accessory/characteristic/Name.js.map +1 -0
- package/dist/shared/accessory/characteristic/OccupancyDetected.js.map +1 -0
- package/dist/shared/{accessories → accessory}/characteristic/On.js +1 -0
- package/dist/shared/accessory/characteristic/On.js.map +1 -0
- package/dist/shared/accessory/characteristic/OutletInUse.js.map +1 -0
- package/dist/shared/accessory/characteristic/ProgrammableSwitchEvent.js.map +1 -0
- package/dist/shared/accessory/characteristic/RelativeHumidityDehumidifierThreshold.js.map +1 -0
- package/dist/shared/accessory/characteristic/RotationSpeed.js.map +1 -0
- package/dist/shared/accessory/characteristic/SecuritySystemState.js.map +1 -0
- package/dist/shared/accessory/characteristic/SwingMode.js.map +1 -0
- package/dist/shared/accessory/characteristic/TargetTemperature.js.map +1 -0
- package/dist/shared/accessory/characteristic/TemperatureDisplayUnits.js.map +1 -0
- package/dist/shared/util/ConfigHash.js +2 -2
- package/dist/shared/util/ConfigHash.js.map +1 -1
- package/dist/shared/util/ConfigMigrator.js +173 -0
- package/dist/shared/util/ConfigMigrator.js.map +1 -0
- package/dist/shared/util/FfmpegStreamingProcess.js.map +1 -1
- package/dist/shared/util/InfraredTool.js +0 -2
- package/dist/shared/util/InfraredTool.js.map +1 -1
- package/dist/shared/util/Logger.js +69 -10
- package/dist/shared/util/Logger.js.map +1 -1
- package/dist/shared/util/TuyaStreamDelegate.js +2 -8
- package/dist/shared/util/TuyaStreamDelegate.js.map +1 -1
- package/dist/shared/util/util.js +13 -4
- package/dist/shared/util/util.js.map +1 -1
- package/eslint.config.mjs +0 -1
- package/{jest.config.js → jest.config.ts} +5 -2
- package/package.json +11 -8
- package/test/ConfigMigrator.test.ts +799 -0
- package/test/Logger.test.ts +482 -0
- package/test/accessoryFactory.data.test.ts +172 -0
- package/test/accessoryFactory.test.ts +64 -35
- package/test/config.test.ts +17 -13
- package/test/custom.test.ts +2 -2
- package/test/errorHandling.test.ts +12 -12
- package/test/home.test.ts +1 -1
- package/test/hybridDeviceManager.test.ts +808 -0
- package/test/localDevice.test.ts +21 -50
- package/test/localDeviceManager.behavior.test.ts +16 -30
- package/test/localDeviceManager.test.ts +23 -39
- package/test/mqttMessages.test.ts +33 -14
- package/test/platform.test.ts +340 -810
- package/test/platform.validation.local.test.ts +58 -119
- package/test/tuyaCustomDeviceManager.test.ts +106 -16
- package/test/tuyaDeviceManager.test.ts +636 -639
- package/test/tuyaDiscovery.test.ts +21 -33
- package/test/tuyaHomeDeviceManager.test.ts +109 -18
- package/test/tuyaOpenAPI.test.ts +25 -44
- package/test/tuyaOpenMQ.test.ts +15 -23
- package/test/util.test.ts +87 -7
- package/test/zigbee/LocalDevice.zigbee.test.ts +14 -18
- package/test/zigbee/LocalDeviceManager.cloud-discovery.test.ts +19 -20
- package/test/zigbee/LocalDeviceManager.zigbee.reconnect.test.ts +18 -20
- package/test/zigbee/LocalDeviceManager.zigbee.test.ts +31 -34
- package/test/zigbee/ZigbeeGatewayDetection.test.ts +2 -2
- package/dist/cloud/device/TuyaDeviceManager.js.map +0 -1
- package/dist/local/CloudLocalReconciliation.js +0 -180
- package/dist/local/CloudLocalReconciliation.js.map +0 -1
- package/dist/shared/accessories/AccessoryFactory.js +0 -309
- package/dist/shared/accessories/AccessoryFactory.js.map +0 -1
- package/dist/shared/accessories/AirQualitySensorAccessory.js.map +0 -1
- package/dist/shared/accessories/BaseAccessory.js.map +0 -1
- package/dist/shared/accessories/GarageDoorAccessory.js.map +0 -1
- package/dist/shared/accessories/HumanPresenceSensorAccessory.js.map +0 -1
- package/dist/shared/accessories/IRAirConditionerAccessory.js.map +0 -1
- package/dist/shared/accessories/IRControlHubAccessory.js.map +0 -1
- package/dist/shared/accessories/IRControlHubSubAccessory.js.map +0 -1
- package/dist/shared/accessories/IRGenericAccessory.js.map +0 -1
- package/dist/shared/accessories/LocationWeatherAccessory.js.map +0 -1
- package/dist/shared/accessories/MotionSensorAccessory.js.map +0 -1
- package/dist/shared/accessories/OutletAccessory.js.map +0 -1
- package/dist/shared/accessories/SceneAccessory.js.map +0 -1
- package/dist/shared/accessories/SceneSwitchAccessory.js.map +0 -1
- package/dist/shared/accessories/SecuritySystemAccessory.js.map +0 -1
- package/dist/shared/accessories/SwitchAccessory.js.map +0 -1
- package/dist/shared/accessories/TemperatureHumiditySensorAccessory.js.map +0 -1
- package/dist/shared/accessories/WeatherStationAccessory.js.map +0 -1
- package/dist/shared/accessories/WetBulbGlobeTemperatureAccessory.js.map +0 -1
- package/dist/shared/accessories/WhiteNoiseLightAccessory.js.map +0 -1
- package/dist/shared/accessories/WindowAccessory.js.map +0 -1
- package/dist/shared/accessories/characteristic/Active.js.map +0 -1
- package/dist/shared/accessories/characteristic/AirQuality.js.map +0 -1
- package/dist/shared/accessories/characteristic/CurrentRelativeHumidity.js.map +0 -1
- package/dist/shared/accessories/characteristic/CurrentTemperature.js.map +0 -1
- package/dist/shared/accessories/characteristic/CurrentWeather.js.map +0 -1
- package/dist/shared/accessories/characteristic/CurrentWeatherByOpenMeteo.js.map +0 -1
- package/dist/shared/accessories/characteristic/CurrentWetBulbGlobeTemperature.js.map +0 -1
- package/dist/shared/accessories/characteristic/EnergyUsage.js.map +0 -1
- package/dist/shared/accessories/characteristic/Light.js.map +0 -1
- package/dist/shared/accessories/characteristic/LightSensor.js.map +0 -1
- package/dist/shared/accessories/characteristic/LockPhysicalControls.js.map +0 -1
- package/dist/shared/accessories/characteristic/MotionDetected.js.map +0 -1
- package/dist/shared/accessories/characteristic/Name.js.map +0 -1
- package/dist/shared/accessories/characteristic/OccupancyDetected.js.map +0 -1
- package/dist/shared/accessories/characteristic/On.js.map +0 -1
- package/dist/shared/accessories/characteristic/OutletInUse.js.map +0 -1
- package/dist/shared/accessories/characteristic/ProgrammableSwitchEvent.js.map +0 -1
- package/dist/shared/accessories/characteristic/RelativeHumidityDehumidifierThreshold.js.map +0 -1
- package/dist/shared/accessories/characteristic/RotationSpeed.js.map +0 -1
- package/dist/shared/accessories/characteristic/SecuritySystemState.js.map +0 -1
- package/dist/shared/accessories/characteristic/SwingMode.js.map +0 -1
- package/dist/shared/accessories/characteristic/TargetTemperature.js.map +0 -1
- package/dist/shared/accessories/characteristic/TemperatureDisplayUnits.js.map +0 -1
- package/test/zigbee/CloudLocalReconciliation.test.ts +0 -284
- package/tuya-local-configs/dev-1.hash +0 -1
- package/tuya-local-configs/device1.hash +0 -1
- /package/dist/shared/{accessories → accessory}/AirConditionerAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/AirPurifierAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/AirQualitySensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/BlindsAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/CameraAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/CarbonDioxideSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/CarbonMonoxideSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/ContactSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/DehumidifierAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/DiffuserAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/DimmerAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/DoorbellAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/ExtractionHoodAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/FanAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/HeaterAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/HeaterAccessory_old.js +0 -0
- /package/dist/shared/{accessories → accessory}/HumanPresenceSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/HumidifierAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/IRAirConditionerAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/IRControlHubAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/IRControlHubSubAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/IRGenericAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/LeakSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/LightAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/LightSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/MotionSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/OutletAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/PetFeederAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/SceneSwitchAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/SecuritySystemAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/SmokeSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/TemperatureHumiditySensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/ThermostatAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/TowerRackAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/ValveAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/VibrationSensorAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/WeatherStationAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/WetBulbGlobeTemperatureAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/WindowAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/WindowCoveringAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/WirelessSwitchAccessory.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/Active.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/AirQuality.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/CurrentRelativeHumidity.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/CurrentTemperature.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/CurrentWeather.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/CurrentWeatherByOpenMeteo.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/CurrentWetBulbGlobeTemperature.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/LightSensor.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/LockPhysicalControls.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/MotionDetected.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/Name.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/OccupancyDetected.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/OutletInUse.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/ProgrammableSwitchEvent.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/RelativeHumidityDehumidifierThreshold.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/RotationSpeed.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/SecuritySystemState.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/SwingMode.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/TargetTemperature.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/TemperatureDisplayUnits.js +0 -0
|
@@ -37,14 +37,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const TuyaDevice_1 = __importStar(require("../cloud/device/TuyaDevice"));
|
|
40
|
-
const
|
|
41
|
-
const TuyaDeviceManager_1 = __importDefault(require("../cloud/device/TuyaDeviceManager"));
|
|
40
|
+
const TuyaDeviceManager_1 = __importDefault(require("../shared/TuyaDeviceManager"));
|
|
42
41
|
const TuyaDiscovery_1 = __importDefault(require("./TuyaDiscovery"));
|
|
43
42
|
const LocalDevice_1 = __importDefault(require("./LocalDevice"));
|
|
44
|
-
const Logger_1 = require("../shared/util/Logger");
|
|
45
43
|
const ConfigHash_1 = require("../shared/util/ConfigHash");
|
|
46
44
|
const ZigbeeGatewayDetection_1 = require("./ZigbeeGatewayDetection");
|
|
47
45
|
const DynamicChildDiscovery_1 = require("./DynamicChildDiscovery");
|
|
46
|
+
const config_1 = require("../config");
|
|
48
47
|
/**
|
|
49
48
|
* Default DP-to-code mapping used when the user hasn't supplied one.
|
|
50
49
|
* Keys are Tuya standard instruction codes; values are typical DP numbers.
|
|
@@ -92,12 +91,8 @@ function buildDpToCodeMap(dpMapping) {
|
|
|
92
91
|
*/
|
|
93
92
|
class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
94
93
|
// ──────────────────────────────────────────────────────────────────────────
|
|
95
|
-
constructor(localConfig,
|
|
96
|
-
|
|
97
|
-
const dummyLog = new Logger_1.PrefixLogger(log, 'LocalDummy', false);
|
|
98
|
-
const dummyApi = new TuyaOpenAPI_1.default('', '', '', dummyLog);
|
|
99
|
-
super(dummyApi, false);
|
|
100
|
-
this.localDevices = [];
|
|
94
|
+
constructor(localConfig, debugMode = false) {
|
|
95
|
+
super(debugMode);
|
|
101
96
|
this.localConnections = new Map();
|
|
102
97
|
this.discoveryTimeout = null;
|
|
103
98
|
this.rediscoveryTimeout = null;
|
|
@@ -113,20 +108,66 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
113
108
|
this.discoveredVersions = new Map();
|
|
114
109
|
// Pending local response watches to cancel superseded commands
|
|
115
110
|
this.pendingLocalResponseWatchers = new Map();
|
|
116
|
-
// Tracks which devices had config changes
|
|
117
|
-
this.configChanged = new Map();
|
|
118
111
|
// ── Zigbee gateway/child support ──────────────────────────────────────────
|
|
119
112
|
/** Parent gateway ID → GatewayRelationship (derived from config at init). */
|
|
120
113
|
this.gatewayRelationships = new Map();
|
|
121
114
|
/** Parent gateway device ID → its active LocalDevice connection. */
|
|
122
115
|
this.gatewayConnections = new Map();
|
|
123
|
-
// Stop the MQ that the parent started
|
|
124
|
-
this.mq.stop();
|
|
125
|
-
this.parentLog = log;
|
|
126
|
-
this.log = new Logger_1.PrefixLogger(log, 'LocalDeviceManager', false);
|
|
127
116
|
this.config = localConfig;
|
|
128
|
-
this.discovery = new TuyaDiscovery_1.default(
|
|
129
|
-
|
|
117
|
+
this.discovery = new TuyaDiscovery_1.default();
|
|
118
|
+
}
|
|
119
|
+
async pullDevices() {
|
|
120
|
+
await this.initLocalDevices();
|
|
121
|
+
this.connectAllDevices();
|
|
122
|
+
const devices = [...this.devices];
|
|
123
|
+
this.log.info(`Registered ${devices.length} local device(s).`);
|
|
124
|
+
return devices;
|
|
125
|
+
}
|
|
126
|
+
createDeviceConfigHash(device) {
|
|
127
|
+
const cfg = this.config.devices?.find(config => config.tuyaDeviceId === device.id);
|
|
128
|
+
if (!cfg) {
|
|
129
|
+
return '';
|
|
130
|
+
}
|
|
131
|
+
// Check if config has changed since last run
|
|
132
|
+
// Hash the config fields that affect device behavior
|
|
133
|
+
const configToHash = {
|
|
134
|
+
tuyaDeviceId: cfg.tuyaDeviceId,
|
|
135
|
+
name: cfg.name,
|
|
136
|
+
tuyaKey: cfg.tuyaKey,
|
|
137
|
+
dpMapping: this.dpMaps.get(cfg.tuyaDeviceId),
|
|
138
|
+
switchCount: cfg.switchCount ?? device['switchCount'],
|
|
139
|
+
outletCount: cfg.outletCount ?? device['outletCount'],
|
|
140
|
+
protocolVersion: cfg.protocolVersion,
|
|
141
|
+
category: cfg.category,
|
|
142
|
+
};
|
|
143
|
+
return ConfigHash_1.ConfigHash.computeHash(configToHash);
|
|
144
|
+
}
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
146
|
+
configDevice(device) {
|
|
147
|
+
// In the Local case, device objects are generally created from the LocalConfig, so there is nothing that needs to be handled here.
|
|
148
|
+
}
|
|
149
|
+
getDeviceSchemaConfig(device, dpCode) {
|
|
150
|
+
const schemaConfig = this.getDeviceConfig(device)?.schema?.find(s => s.code === dpCode);
|
|
151
|
+
return schemaConfig;
|
|
152
|
+
}
|
|
153
|
+
enableGarageDoorUseContactSensorForState(device) {
|
|
154
|
+
return this.getDeviceConfig(device)?.garageDoorUseContactSensorForState === true;
|
|
155
|
+
}
|
|
156
|
+
getDeviceConfig(device) {
|
|
157
|
+
if (!this.config) {
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
// Find matching override, respecting source filtering
|
|
161
|
+
const matches = this.config.deviceOverrides?.filter(config => {
|
|
162
|
+
const sourceMatch = config.configFor === config_1.TuyaPluginMode.local;
|
|
163
|
+
const idMatch = config.id === device.id || config.id === device.uuid ||
|
|
164
|
+
config.id === device.product_id || config.id === 'global';
|
|
165
|
+
return sourceMatch && idMatch;
|
|
166
|
+
}) ?? [];
|
|
167
|
+
// Return device-specific config, then product, then global
|
|
168
|
+
return matches.find(config => config.id === device.id || config.id === device.uuid) ||
|
|
169
|
+
matches.find(config => config.id === device.product_id) ||
|
|
170
|
+
matches.find(config => config.id === 'global');
|
|
130
171
|
}
|
|
131
172
|
/**
|
|
132
173
|
* Initialise discovery and register manually configured devices.
|
|
@@ -160,7 +201,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
160
201
|
this._registerDeviceConfig(cfg);
|
|
161
202
|
}
|
|
162
203
|
// Validate devices have keys if auto-discovery is disabled
|
|
163
|
-
if (this.config.autoDiscoverDevices
|
|
204
|
+
if (!this.config.autoDiscoverDevices) {
|
|
164
205
|
for (const cfg of this.config.devices) {
|
|
165
206
|
if (!cfg.tuyaKey && !ZigbeeGatewayDetection_1.ZigbeeGatewayDetection.isChild(cfg)) {
|
|
166
207
|
const deviceName = cfg.name || cfg.tuyaDeviceId;
|
|
@@ -172,7 +213,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
172
213
|
}
|
|
173
214
|
// Start UDP discovery unless explicitly disabled
|
|
174
215
|
if (this.config.autoDiscoverDevices !== false) {
|
|
175
|
-
this.discovery.on(
|
|
216
|
+
this.discovery.on(TuyaDiscovery_1.default.Events.DEVICE_DISCOVER, (result) => {
|
|
176
217
|
this._onDiscovered(result);
|
|
177
218
|
});
|
|
178
219
|
this._startDiscoveryPhase();
|
|
@@ -209,7 +250,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
209
250
|
}
|
|
210
251
|
/** Returns ALL devices (both local shadow entries from this manager). */
|
|
211
252
|
getDevice(deviceID) {
|
|
212
|
-
return this.
|
|
253
|
+
return this.devices.find(d => d.id === deviceID);
|
|
213
254
|
}
|
|
214
255
|
/**
|
|
215
256
|
* Send commands to a local device.
|
|
@@ -235,7 +276,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
235
276
|
return;
|
|
236
277
|
}
|
|
237
278
|
// Log the command for user visibility
|
|
238
|
-
const device = this.
|
|
279
|
+
const device = this.getDevice(deviceID);
|
|
239
280
|
const deviceName = device?.name || deviceID;
|
|
240
281
|
const commandStr = commands.map(c => `${c.code}=${c.value}`).join(', ');
|
|
241
282
|
this.log.info(`[${deviceName}] Sending command (local): ${commandStr}`);
|
|
@@ -349,52 +390,11 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
349
390
|
this.pendingLocalResponseWatchers.delete(deviceID);
|
|
350
391
|
}
|
|
351
392
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
const dpMap = this.dpMaps.get(deviceID) ?? {};
|
|
358
|
-
const statusDps = new Set();
|
|
359
|
-
for (const status of statusUpdates) {
|
|
360
|
-
const dp = dpMap[status.code];
|
|
361
|
-
statusDps.add(dp !== undefined ? String(dp) : String(status.code));
|
|
362
|
-
const existing = device.status.find(s => s.code === status.code);
|
|
363
|
-
if (existing) {
|
|
364
|
-
existing.value = status.value;
|
|
365
|
-
}
|
|
366
|
-
else {
|
|
367
|
-
device.status.push({ code: status.code, value: status.value });
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
const watchers = this.pendingLocalResponseWatchers.get(deviceID);
|
|
371
|
-
if (!watchers || watchers.length === 0) {
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
374
|
-
const remaining = [];
|
|
375
|
-
for (const watcher of watchers) {
|
|
376
|
-
let matched = false;
|
|
377
|
-
for (const dp of watcher.expectedDps) {
|
|
378
|
-
if (statusDps.has(dp)) {
|
|
379
|
-
matched = true;
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
if (matched) {
|
|
384
|
-
watcher.cleanup();
|
|
385
|
-
watcher.resolve(true);
|
|
386
|
-
}
|
|
387
|
-
else {
|
|
388
|
-
remaining.push(watcher);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
if (remaining.length > 0) {
|
|
392
|
-
this.pendingLocalResponseWatchers.set(deviceID, remaining);
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
this.pendingLocalResponseWatchers.delete(deviceID);
|
|
396
|
-
}
|
|
397
|
-
this.emit(TuyaDeviceManager_1.default.Events.DEVICE_STATUS_UPDATE, device, statusUpdates);
|
|
393
|
+
/**
|
|
394
|
+
* Logic to suppress unnecessary discovery processes.
|
|
395
|
+
*/
|
|
396
|
+
static isTargetDevice(device) {
|
|
397
|
+
return !device.isVirtualDevice();
|
|
398
398
|
}
|
|
399
399
|
// ── Private helpers ────────────────────────────────────────────────────────
|
|
400
400
|
/**
|
|
@@ -407,7 +407,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
407
407
|
}
|
|
408
408
|
this.isDiscoveryActive = true;
|
|
409
409
|
this.discoveredInCurrentPhase.clear();
|
|
410
|
-
this.log.
|
|
410
|
+
this.log.debug('Starting discovery phase');
|
|
411
411
|
this.discovery.start();
|
|
412
412
|
// Stop after configurable timeout (config is in seconds, default 60s)
|
|
413
413
|
// Convert to milliseconds
|
|
@@ -420,16 +420,16 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
420
420
|
this.discovery.stop();
|
|
421
421
|
// Report discovery results for clarity
|
|
422
422
|
if (this.discoveredInCurrentPhase.size > 0) {
|
|
423
|
-
this.log.
|
|
423
|
+
this.log.debug(`Ended discovery phase – rediscovered ${this.discoveredInCurrentPhase.size} device(s)`);
|
|
424
424
|
}
|
|
425
425
|
else {
|
|
426
426
|
// No devices found; they may be using cached IPs from previous discovery
|
|
427
|
-
const knownDevices = this.
|
|
427
|
+
const knownDevices = this.devices.filter(d => d.localKey);
|
|
428
428
|
if (knownDevices.length > 0) {
|
|
429
|
-
this.log.
|
|
429
|
+
this.log.debug(`Ended discovery phase – no new devices found (${knownDevices.length} configured device(s) using cached IP)`);
|
|
430
430
|
}
|
|
431
431
|
else {
|
|
432
|
-
this.log.
|
|
432
|
+
this.log.debug('Ended discovery phase – no devices found');
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
435
|
this.discoveryTimeout = null;
|
|
@@ -460,30 +460,21 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
460
460
|
return;
|
|
461
461
|
}
|
|
462
462
|
const effectiveMap = Object.assign({}, DEFAULT_DP_MAP, cfg.dpMapping ?? {});
|
|
463
|
+
// override dpcodes
|
|
464
|
+
for (const [dpCode, dpID] of Object.entries(effectiveMap)) {
|
|
465
|
+
const schemaConfig = this.getDeviceSchemaConfig({ id: cfg.tuyaDeviceId }, dpCode);
|
|
466
|
+
if (!!schemaConfig && !!schemaConfig.newCode) {
|
|
467
|
+
effectiveMap[schemaConfig.newCode] = dpID;
|
|
468
|
+
delete effectiveMap[dpCode];
|
|
469
|
+
}
|
|
470
|
+
}
|
|
463
471
|
this.dpMaps.set(cfg.tuyaDeviceId, effectiveMap);
|
|
464
472
|
this.reverseDpMaps.set(cfg.tuyaDeviceId, buildDpToCodeMap(effectiveMap));
|
|
465
|
-
const existing = this.
|
|
466
|
-
// Check if config has changed since last run
|
|
467
|
-
// Hash the config fields that affect device behavior
|
|
468
|
-
const configToHash = {
|
|
469
|
-
tuyaDeviceId: cfg.tuyaDeviceId,
|
|
470
|
-
name: cfg.name,
|
|
471
|
-
tuyaKey: cfg.tuyaKey,
|
|
472
|
-
dpMapping: cfg.dpMapping,
|
|
473
|
-
switchCount: cfg.switchCount,
|
|
474
|
-
outletCount: cfg.outletCount,
|
|
475
|
-
protocolVersion: cfg.protocolVersion,
|
|
476
|
-
category: cfg.category,
|
|
477
|
-
};
|
|
478
|
-
const { changed: configChanged } = this.configHash.hasConfigChanged(cfg.tuyaDeviceId, configToHash);
|
|
479
|
-
this.configChanged.set(cfg.tuyaDeviceId, configChanged);
|
|
480
|
-
if (configChanged && existing) {
|
|
481
|
-
this.log.info(`Device ${cfg.tuyaDeviceId}: config changed, rebuilding schema`);
|
|
482
|
-
}
|
|
473
|
+
const existing = this.getDevice(cfg.tuyaDeviceId);
|
|
483
474
|
if (!existing) {
|
|
484
|
-
const device = this._buildTuyaDevice(cfg
|
|
485
|
-
this.
|
|
486
|
-
this.devices.push(device);
|
|
475
|
+
const device = this._buildTuyaDevice(cfg);
|
|
476
|
+
this.configDevice(device);
|
|
477
|
+
this.devices.push(device);
|
|
487
478
|
this.emit(TuyaDeviceManager_1.default.Events.DEVICE_ADD, device);
|
|
488
479
|
}
|
|
489
480
|
}
|
|
@@ -527,28 +518,12 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
527
518
|
this.log.info(`[AutoDetect] Auto-detected ${detectedCount} switch(es) for "${cfg.name}" (${deviceId}): ` +
|
|
528
519
|
`switches=[${switchList}]`);
|
|
529
520
|
// Update device schema with detected switch count
|
|
530
|
-
device.schema = this._buildSyntheticSchema(this.dpMaps.get(deviceId) ?? DEFAULT_DP_MAP, detectedCount);
|
|
521
|
+
device.schema = this._buildSyntheticSchema(device, this.dpMaps.get(deviceId) ?? DEFAULT_DP_MAP, detectedCount);
|
|
531
522
|
device.switchCount = detectedCount;
|
|
532
523
|
// Auto-detection is now complete
|
|
533
524
|
device.isAutoDetecting = false;
|
|
534
|
-
//
|
|
535
|
-
|
|
536
|
-
const updatedConfigToHash = {
|
|
537
|
-
tuyaDeviceId: cfg.tuyaDeviceId,
|
|
538
|
-
name: cfg.name,
|
|
539
|
-
tuyaKey: cfg.tuyaKey,
|
|
540
|
-
dpMapping: cfg.dpMapping,
|
|
541
|
-
switchCount: detectedCount,
|
|
542
|
-
outletCount: cfg.outletCount,
|
|
543
|
-
protocolVersion: cfg.protocolVersion,
|
|
544
|
-
category: cfg.category,
|
|
545
|
-
};
|
|
546
|
-
const { changed: schemaChanged } = this.configHash.hasConfigChanged(deviceId, updatedConfigToHash);
|
|
547
|
-
if (schemaChanged) {
|
|
548
|
-
this.log.debug('[AutoDetect] Schema changed after auto-detection, marking config as changed');
|
|
549
|
-
device.configChanged = true;
|
|
550
|
-
this.configChanged.set(deviceId, true);
|
|
551
|
-
}
|
|
525
|
+
// update config
|
|
526
|
+
cfg.switchCount = detectedCount;
|
|
552
527
|
// Notify the platform so configureServices() is re-run and switch_2+ services are added.
|
|
553
528
|
this.emit(TuyaDeviceManager_1.default.Events.DEVICE_INFO_UPDATE, device, { schemaUpdated: true });
|
|
554
529
|
}
|
|
@@ -568,7 +543,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
568
543
|
this.discoveredVersions.set(result.id, result.version);
|
|
569
544
|
this.discoveredInCurrentPhase.add(result.id);
|
|
570
545
|
// If we already have a TuyaDevice for this ID (from manual config), update its IP
|
|
571
|
-
const existing = this.
|
|
546
|
+
const existing = this.getDevice(result.id);
|
|
572
547
|
if (existing) {
|
|
573
548
|
this.log.info(`Device ${result.id} (v${result.version}) rediscovered @ ${result.ip} ` +
|
|
574
549
|
'– updating connection');
|
|
@@ -594,14 +569,14 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
594
569
|
// New device discovered via UDP – create a placeholder TuyaDevice
|
|
595
570
|
// (it won't be controllable until the user provides a tuyaKey via config)
|
|
596
571
|
const device = this._buildDiscoveredDevice(result);
|
|
597
|
-
this.
|
|
572
|
+
this.configDevice(device);
|
|
598
573
|
this.devices.push(device);
|
|
599
574
|
const productInfo = result.productKey ? ` productKey=${result.productKey}` : '';
|
|
600
575
|
this.log.info(`Local device discovered: ${result.id} @ ${result.ip} (v${result.version}${productInfo}) ` +
|
|
601
576
|
'– add to config with tuyaKey to control');
|
|
602
577
|
this.emit(TuyaDeviceManager_1.default.Events.DEVICE_ADD, device);
|
|
603
578
|
}
|
|
604
|
-
_buildTuyaDevice(cfg
|
|
579
|
+
_buildTuyaDevice(cfg) {
|
|
605
580
|
const device = new TuyaDevice_1.default({});
|
|
606
581
|
const deviceId = cfg.tuyaDeviceId ?? '';
|
|
607
582
|
device.id = deviceId;
|
|
@@ -626,7 +601,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
626
601
|
const autoDetectNote = !cfg.switchCount && !cfg.outletCount && cfg.tuyaKey ? ' (auto-detecting on connect)' : '';
|
|
627
602
|
const isAutoDetecting = !!(cfg.tuyaKey && !cfg.switchCount && !cfg.outletCount);
|
|
628
603
|
this.log.info(`Building synthetic schema for ${cfg.name} with switchCount=${switchCount}${autoDetectNote}`);
|
|
629
|
-
device.schema = this._buildSyntheticSchema(Object.assign({}, DEFAULT_DP_MAP, cfg.dpMapping ?? {}), switchCount);
|
|
604
|
+
device.schema = this._buildSyntheticSchema(device, this.dpMaps.get(device.id) ?? Object.assign({}, DEFAULT_DP_MAP, cfg.dpMapping ?? {}), switchCount);
|
|
630
605
|
this.log.info(`Device "${cfg.name}" schema includes ${device.schema.length} codes: ${device.schema.map(s => s.code).join(', ')}`);
|
|
631
606
|
// Store local-specific metadata directly on the device object for later use
|
|
632
607
|
device.localKey = cfg.tuyaKey;
|
|
@@ -638,8 +613,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
638
613
|
device.isLocal = true;
|
|
639
614
|
device.switchCount = switchCount;
|
|
640
615
|
device.isAutoDetecting = isAutoDetecting;
|
|
641
|
-
|
|
642
|
-
device.configChanged = configChanged;
|
|
616
|
+
this.log.debug(`_buildTuyaDevice local device:${JSON.stringify(device)}`);
|
|
643
617
|
return device;
|
|
644
618
|
}
|
|
645
619
|
_buildDiscoveredDevice(result) {
|
|
@@ -665,9 +639,10 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
665
639
|
device.schema = [];
|
|
666
640
|
device.isLocal = true;
|
|
667
641
|
device.localVersion = result.version;
|
|
642
|
+
this.log.info(`_buildDiscoveredDevice local device:${JSON.stringify(device)}`);
|
|
668
643
|
return device;
|
|
669
644
|
}
|
|
670
|
-
_buildSyntheticSchema(dpMapping, switchCount = 1) {
|
|
645
|
+
_buildSyntheticSchema(device, dpMapping, switchCount = 1) {
|
|
671
646
|
// If switchCount is limited, filter switch-related entries to only the needed ones
|
|
672
647
|
let filteredMapping = dpMapping;
|
|
673
648
|
if (switchCount > 0) {
|
|
@@ -694,15 +669,33 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
694
669
|
this.log.debug(`Filtered switches: kept [${switchCodes.join(', ')}], excluded others`);
|
|
695
670
|
}
|
|
696
671
|
}
|
|
697
|
-
|
|
672
|
+
this.log.debug(`local device schema codes:${JSON.stringify(filteredMapping)}`);
|
|
673
|
+
const schemas = Object.keys(filteredMapping).map(code => ({
|
|
698
674
|
code,
|
|
699
675
|
mode: TuyaDevice_1.TuyaDeviceSchemaMode.READ_WRITE,
|
|
700
676
|
type: TuyaDevice_1.TuyaDeviceSchemaType.Boolean, // best-effort default; handlers may override
|
|
701
677
|
property: {},
|
|
702
678
|
}));
|
|
679
|
+
// apply overrides
|
|
680
|
+
this.getDeviceConfig(device)?.schema?.forEach(s => {
|
|
681
|
+
const schema = schemas.find(t => t.code === s.newCode);
|
|
682
|
+
if (!!schema) {
|
|
683
|
+
schema.type = s.type ?? schema.type;
|
|
684
|
+
schema.property = s.property ?? schema.property;
|
|
685
|
+
}
|
|
686
|
+
else {
|
|
687
|
+
schemas.push({
|
|
688
|
+
code: s.newCode,
|
|
689
|
+
mode: TuyaDevice_1.TuyaDeviceSchemaMode.READ_WRITE,
|
|
690
|
+
type: s.type ?? TuyaDevice_1.TuyaDeviceSchemaType.Boolean,
|
|
691
|
+
property: s.property ?? {},
|
|
692
|
+
});
|
|
693
|
+
}
|
|
694
|
+
});
|
|
695
|
+
return schemas;
|
|
703
696
|
}
|
|
704
697
|
_createConnection(deviceID) {
|
|
705
|
-
const device = this.
|
|
698
|
+
const device = this.getDevice(deviceID);
|
|
706
699
|
if (!device) {
|
|
707
700
|
return undefined;
|
|
708
701
|
}
|
|
@@ -725,7 +718,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
725
718
|
ip,
|
|
726
719
|
version,
|
|
727
720
|
name: device.name,
|
|
728
|
-
}
|
|
721
|
+
});
|
|
729
722
|
conn.on('connect', () => {
|
|
730
723
|
device.online = true;
|
|
731
724
|
this.emit(TuyaDeviceManager_1.default.Events.DEVICE_INFO_UPDATE, device, { online: true });
|
|
@@ -797,7 +790,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
797
790
|
* Preserves the child's state and event listeners while updating the parent reference.
|
|
798
791
|
*/
|
|
799
792
|
_reconnectZigbeeChild(childDeviceId, cid, childConn, newParentConn) {
|
|
800
|
-
const childTuyaDevice = this.
|
|
793
|
+
const childTuyaDevice = this.getDevice(childDeviceId);
|
|
801
794
|
if (!childTuyaDevice) {
|
|
802
795
|
this.log.warn(`Zigbee child ${childDeviceId}: TuyaDevice not found during reconnect`);
|
|
803
796
|
return;
|
|
@@ -837,10 +830,10 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
837
830
|
this.log.debug(`Zigbee child ${childDeviceId}: using per-child category override`);
|
|
838
831
|
}
|
|
839
832
|
// Register TuyaDevice if not already present
|
|
840
|
-
if (!this.
|
|
833
|
+
if (!this.getDevice(childDeviceId)) {
|
|
841
834
|
this._registerDeviceConfig(effectiveChildCfg);
|
|
842
835
|
}
|
|
843
|
-
const childTuyaDevice = this.
|
|
836
|
+
const childTuyaDevice = this.getDevice(childDeviceId);
|
|
844
837
|
if (!childTuyaDevice) {
|
|
845
838
|
this.log.warn(`Could not build TuyaDevice for Zigbee child ${childDeviceId}`);
|
|
846
839
|
return;
|
|
@@ -852,7 +845,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
852
845
|
ip: parentConn['context'].ip,
|
|
853
846
|
version: parentConn['context'].version,
|
|
854
847
|
name: cfg.name ?? childDeviceId,
|
|
855
|
-
}
|
|
848
|
+
});
|
|
856
849
|
// Link parent ↔ child
|
|
857
850
|
childConn.parentDevice = parentConn;
|
|
858
851
|
childConn.childId = cid;
|
|
@@ -958,7 +951,7 @@ class LocalDeviceManager extends TuyaDeviceManager_1.default {
|
|
|
958
951
|
}
|
|
959
952
|
/** Connect all configured local devices eagerly (called after init). */
|
|
960
953
|
connectAllDevices() {
|
|
961
|
-
for (const device of this.
|
|
954
|
+
for (const device of this.devices) {
|
|
962
955
|
const localKey = device.localKey;
|
|
963
956
|
if (!localKey) {
|
|
964
957
|
continue; // Skip if no local key configured
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDeviceManager.js","sourceRoot":"","sources":["../../src/local/LocalDeviceManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocalDeviceManager.js","sourceRoot":"","sources":["../../src/local/LocalDeviceManager.ts"],"names":[],"mappings":"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"}
|