@homebridge-plugins/homebridge-tuya 3.0.0-beta.2 → 3.0.0-beta.21
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/README.md +354 -142
- package/config.schema.json +1221 -893
- package/dist/cloud/api/TuyaOpenAPI.js +108 -60
- package/dist/cloud/api/TuyaOpenAPI.js.map +1 -1
- package/dist/cloud/api/TuyaOpenMQ.js +45 -22
- package/dist/cloud/api/TuyaOpenMQ.js.map +1 -1
- package/dist/cloud/device/{TuyaDeviceManager.js → TuyaCloudDeviceManager.js} +146 -96
- package/dist/cloud/device/TuyaCloudDeviceManager.js.map +1 -0
- package/dist/cloud/device/TuyaCustomDeviceManager.js +75 -5
- package/dist/cloud/device/TuyaCustomDeviceManager.js.map +1 -1
- package/dist/cloud/device/TuyaDevice.js.map +1 -1
- package/dist/cloud/device/TuyaHomeDeviceManager.js +81 -13
- 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 +16 -3
- package/dist/local/LocalDevice.js.map +1 -1
- package/dist/local/LocalDeviceManager.js +361 -164
- package/dist/local/LocalDeviceManager.js.map +1 -1
- package/dist/local/TuyaDiscovery.js +16 -7
- package/dist/local/TuyaDiscovery.js.map +1 -1
- package/dist/local/ZigbeeGatewayDetection.js +7 -4
- 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 +253 -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 +147 -0
- package/dist/shared/TuyaDeviceManager.js.map +1 -0
- package/dist/shared/TuyaHybridDeviceManager.js +215 -0
- package/dist/shared/TuyaHybridDeviceManager.js.map +1 -0
- package/dist/shared/accessory/AccessoryFactory.js +350 -0
- package/dist/shared/accessory/AccessoryFactory.js.map +1 -0
- package/dist/shared/{accessories → accessory}/AirConditionerAccessory.js +21 -15
- package/dist/shared/accessory/AirConditionerAccessory.js.map +1 -0
- 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 +2 -2
- package/dist/shared/accessory/CameraAccessory.js.map +1 -0
- 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/IRAdapter.js +167 -0
- package/dist/shared/accessory/IRAdapter.js.map +1 -0
- 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/IRFanAccessory.js +90 -0
- package/dist/shared/accessory/IRFanAccessory.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/{accessories → accessory}/characteristic/CurrentRelativeHumidity.js +3 -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/{accessories → accessory}/characteristic/CurrentWetBulbGlobeTemperature.js +3 -2
- 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 +28 -5
- package/dist/shared/accessory/characteristic/Light.js.map +1 -0
- package/dist/shared/accessory/characteristic/LightSensor.js.map +1 -0
- package/dist/shared/{accessories → accessory}/characteristic/LockPhysicalControls.js +3 -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/{accessories → accessory}/characteristic/RelativeHumidityDehumidifierThreshold.js +3 -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/{accessories → accessory}/characteristic/SwingMode.js +3 -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 +222 -0
- package/dist/shared/util/ConfigMigrator.js.map +1 -0
- package/dist/shared/util/FfmpegStreamingProcess.js +62 -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 +85 -10
- package/dist/shared/util/Logger.js.map +1 -1
- package/dist/shared/util/TuyaStreamDelegate.js +194 -97
- package/dist/shared/util/TuyaStreamDelegate.js.map +1 -1
- package/dist/shared/util/util.js +59 -4
- package/dist/shared/util/util.js.map +1 -1
- package/docs/ADVANCED_OPTIONS.md +603 -0
- package/docs/CONFIG_GUIDE.md +616 -0
- package/docs/Get-Local-Keys-for-Your-Devices.md +246 -0
- package/{SUPPORTED_DEVICES.md → docs/SUPPORTED_DEVICES.md} +24 -3
- package/eslint.config.mjs +0 -1
- package/{jest.config.js → jest.config.ts} +5 -2
- package/package.json +12 -9
- package/test/ConfigMigrator.test.ts +1060 -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/airConditioner.test.ts +742 -0
- 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/light.test.ts +250 -0
- package/test/localDevice.test.ts +21 -50
- package/test/localDeviceManager.behavior.test.ts +196 -31
- package/test/localDeviceManager.test.ts +124 -41
- package/test/mqttMessages.test.ts +33 -14
- package/test/platform.test.ts +337 -814
- 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 +107 -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 +19 -20
- package/test/zigbee/LocalDeviceManager.zigbee.test.ts +73 -35
- package/test/zigbee/ZigbeeGatewayDetection.test.ts +2 -2
- package/ADVANCED_OPTIONS.md +0 -267
- 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/AccessoryFactory.js +0 -276
- package/dist/shared/AccessoryFactory.js.map +0 -1
- package/dist/shared/accessories/AccessoryFactory.js +0 -305
- package/dist/shared/accessories/AccessoryFactory.js.map +0 -1
- package/dist/shared/accessories/AirConditionerAccessory.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/CameraAccessory.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/wiki/Get-Local-Keys-for-Your-Devices.md +0 -85
- /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}/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/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/LightSensor.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/RotationSpeed.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/SecuritySystemState.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/TargetTemperature.js +0 -0
- /package/dist/shared/{accessories → accessory}/characteristic/TemperatureDisplayUnits.js +0 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
|
|
7
|
+
const util_1 = require("../util/util");
|
|
8
|
+
const LightAccessory_1 = __importDefault(require("./LightAccessory"));
|
|
9
|
+
const DimmerAccessory_1 = __importDefault(require("./DimmerAccessory"));
|
|
10
|
+
const OutletAccessory_1 = __importDefault(require("./OutletAccessory"));
|
|
11
|
+
const SwitchAccessory_1 = __importDefault(require("./SwitchAccessory"));
|
|
12
|
+
const WirelessSwitchAccessory_1 = __importDefault(require("./WirelessSwitchAccessory"));
|
|
13
|
+
const SceneSwitchAccessory_1 = __importDefault(require("./SceneSwitchAccessory"));
|
|
14
|
+
const FanAccessory_1 = __importDefault(require("./FanAccessory"));
|
|
15
|
+
const GarageDoorAccessory_1 = __importDefault(require("./GarageDoorAccessory"));
|
|
16
|
+
const WindowAccessory_1 = __importDefault(require("./WindowAccessory"));
|
|
17
|
+
const WindowCoveringAccessory_1 = __importDefault(require("./WindowCoveringAccessory"));
|
|
18
|
+
const LockAccessory_1 = __importDefault(require("./LockAccessory"));
|
|
19
|
+
const ThermostatAccessory_1 = __importDefault(require("./ThermostatAccessory"));
|
|
20
|
+
const HeaterAccessory_1 = __importDefault(require("./HeaterAccessory"));
|
|
21
|
+
const HeaterAccessory_old_1 = __importDefault(require("./HeaterAccessory_old"));
|
|
22
|
+
const ValveAccessory_1 = __importDefault(require("./ValveAccessory"));
|
|
23
|
+
const ContactSensorAccessory_1 = __importDefault(require("./ContactSensorAccessory"));
|
|
24
|
+
const LeakSensorAccessory_1 = __importDefault(require("./LeakSensorAccessory"));
|
|
25
|
+
const CarbonMonoxideSensorAccessory_1 = __importDefault(require("./CarbonMonoxideSensorAccessory"));
|
|
26
|
+
const CarbonDioxideSensorAccessory_1 = __importDefault(require("./CarbonDioxideSensorAccessory"));
|
|
27
|
+
const SmokeSensorAccessory_1 = __importDefault(require("./SmokeSensorAccessory"));
|
|
28
|
+
const TemperatureHumiditySensorAccessory_1 = __importDefault(require("./TemperatureHumiditySensorAccessory"));
|
|
29
|
+
const LightSensorAccessory_1 = __importDefault(require("./LightSensorAccessory"));
|
|
30
|
+
const MotionSensorAccessory_1 = __importDefault(require("./MotionSensorAccessory"));
|
|
31
|
+
const AirQualitySensorAccessory_1 = __importDefault(require("./AirQualitySensorAccessory"));
|
|
32
|
+
const HumanPresenceSensorAccessory_1 = __importDefault(require("./HumanPresenceSensorAccessory"));
|
|
33
|
+
const HumidifierAccessory_1 = __importDefault(require("./HumidifierAccessory"));
|
|
34
|
+
const DehumidifierAccessory_1 = __importDefault(require("./DehumidifierAccessory"));
|
|
35
|
+
const DiffuserAccessory_1 = __importDefault(require("./DiffuserAccessory"));
|
|
36
|
+
const AirPurifierAccessory_1 = __importDefault(require("./AirPurifierAccessory"));
|
|
37
|
+
const ExtractionHoodAccessory_1 = __importDefault(require("./ExtractionHoodAccessory"));
|
|
38
|
+
const CameraAccessory_1 = __importDefault(require("./CameraAccessory"));
|
|
39
|
+
const SceneAccessory_1 = __importDefault(require("./SceneAccessory"));
|
|
40
|
+
const AirConditionerAccessory_1 = __importDefault(require("./AirConditionerAccessory"));
|
|
41
|
+
const IRControlHubAccessory_1 = __importDefault(require("./IRControlHubAccessory"));
|
|
42
|
+
const IRGenericAccessory_1 = __importDefault(require("./IRGenericAccessory"));
|
|
43
|
+
const IRAirConditionerAccessory_1 = __importDefault(require("./IRAirConditionerAccessory"));
|
|
44
|
+
const SecuritySystemAccessory_1 = __importDefault(require("./SecuritySystemAccessory"));
|
|
45
|
+
const VibrationSensorAccessory_1 = __importDefault(require("./VibrationSensorAccessory"));
|
|
46
|
+
const WeatherStationAccessory_1 = __importDefault(require("./WeatherStationAccessory"));
|
|
47
|
+
const DoorbellAccessory_1 = __importDefault(require("./DoorbellAccessory"));
|
|
48
|
+
const PetFeederAccessory_1 = __importDefault(require("./PetFeederAccessory"));
|
|
49
|
+
const WhiteNoiseLightAccessory_1 = __importDefault(require("./WhiteNoiseLightAccessory"));
|
|
50
|
+
const WetBulbGlobeTemperatureAccessory_1 = __importDefault(require("./WetBulbGlobeTemperatureAccessory"));
|
|
51
|
+
const IRControlHubSubAccessory_1 = __importDefault(require("./IRControlHubSubAccessory"));
|
|
52
|
+
const LocationWeatherAccessory_1 = __importDefault(require("./LocationWeatherAccessory"));
|
|
53
|
+
const TowerRackAccessory_1 = __importDefault(require("./TowerRackAccessory"));
|
|
54
|
+
const BlindsAccessory_1 = __importDefault(require("./BlindsAccessory"));
|
|
55
|
+
const IRFanAccessory_1 = __importDefault(require("./IRFanAccessory"));
|
|
56
|
+
class AccessoryFactory {
|
|
57
|
+
static { this.platformAccessoryOverrides = {
|
|
58
|
+
addService: ((original) => (...args) => {
|
|
59
|
+
if (1 < args.length) {
|
|
60
|
+
const arg1 = args[0];
|
|
61
|
+
const arg2 = args[1];
|
|
62
|
+
const left = args.slice(2);
|
|
63
|
+
return original(arg1, (0, util_1.sanitizeName)(arg2), ...left);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return original(...args);
|
|
67
|
+
}
|
|
68
|
+
}),
|
|
69
|
+
}; }
|
|
70
|
+
static createAccessory(platform, platformAccessory, device) {
|
|
71
|
+
const accessory = (0, util_1.createDelegate)(platformAccessory, AccessoryFactory.platformAccessoryOverrides);
|
|
72
|
+
let handler;
|
|
73
|
+
platform.log.debug(`device:${device.id}, category:${device.category}, accessory:${accessory.displayName}`);
|
|
74
|
+
handler = this.resolveAccessoryByProductID(platform, accessory, device.product_id)
|
|
75
|
+
|| this.resolveAccessoryByCategory(platform, accessory, device.category);
|
|
76
|
+
if (handler && !handler.checkRequirements()) {
|
|
77
|
+
handler = undefined;
|
|
78
|
+
}
|
|
79
|
+
// basically use should set the handler at the switch-case
|
|
80
|
+
if (!handler) {
|
|
81
|
+
platform.log.warn(`no handler for category:${device.category}`);
|
|
82
|
+
// IR Remote Control
|
|
83
|
+
if (device.isIRRemoteControl()) {
|
|
84
|
+
switch (device.remote_keys?.category_id) {
|
|
85
|
+
case 5: // AC
|
|
86
|
+
platform.log.warn('case IRAirConditionerAccessory');
|
|
87
|
+
handler = new IRAirConditionerAccessory_1.default(platform, accessory);
|
|
88
|
+
break;
|
|
89
|
+
case 8: // Fan
|
|
90
|
+
platform.log.warn('case IRFanAccessory');
|
|
91
|
+
handler = new IRFanAccessory_1.default(platform, accessory);
|
|
92
|
+
break;
|
|
93
|
+
case 1: // STB
|
|
94
|
+
case 2: // TV
|
|
95
|
+
case 3: // TV Box
|
|
96
|
+
case 4: // DVD
|
|
97
|
+
case 6: // Projector
|
|
98
|
+
case 7: // Audio
|
|
99
|
+
case 9: // Camera
|
|
100
|
+
case 10: // Light
|
|
101
|
+
case 11: // Air Purifier
|
|
102
|
+
case 12: // Water Heater
|
|
103
|
+
default:
|
|
104
|
+
if (device.sub) {
|
|
105
|
+
platform.log.warn('case IRControlHubSubAccessory');
|
|
106
|
+
handler = new IRControlHubSubAccessory_1.default(platform, accessory);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
platform.log.warn('case IRGenericAccessory');
|
|
110
|
+
handler = new IRGenericAccessory_1.default(platform, accessory);
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (handler && !handler.checkRequirements()) {
|
|
117
|
+
platform.log.warn('checkRequirements');
|
|
118
|
+
handler = undefined;
|
|
119
|
+
}
|
|
120
|
+
if (!handler) {
|
|
121
|
+
platform.log.warn(`Unsupported device: ${device.name}.`);
|
|
122
|
+
handler = new BaseAccessory_1.default(platform, accessory);
|
|
123
|
+
}
|
|
124
|
+
handler.configureServices();
|
|
125
|
+
handler.configureStatusActive();
|
|
126
|
+
handler.updateAllValues();
|
|
127
|
+
handler.initialized = true;
|
|
128
|
+
return handler;
|
|
129
|
+
}
|
|
130
|
+
static resolveAccessoryByProductID(platform, accessory, product_id) {
|
|
131
|
+
switch (product_id) {
|
|
132
|
+
case 'scene': // see TuyaHomeDeviceManager#getSceneList
|
|
133
|
+
return new SceneAccessory_1.default(platform, accessory);
|
|
134
|
+
case 'virtual-product-id-wbgt':
|
|
135
|
+
return new WetBulbGlobeTemperatureAccessory_1.default(platform, accessory);
|
|
136
|
+
case 'virtual-product-id-weather':
|
|
137
|
+
return new LocationWeatherAccessory_1.default(platform, accessory);
|
|
138
|
+
default:
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
static resolveAccessoryByCategory(platform, accessory, category) {
|
|
143
|
+
switch (category) {
|
|
144
|
+
// Lighting
|
|
145
|
+
case 'dj':
|
|
146
|
+
case 'dsd':
|
|
147
|
+
case 'xdd':
|
|
148
|
+
case 'fwd':
|
|
149
|
+
case 'dc':
|
|
150
|
+
case 'dd':
|
|
151
|
+
case 'gyd':
|
|
152
|
+
case 'tyndj':
|
|
153
|
+
case 'sxd':
|
|
154
|
+
return new LightAccessory_1.default(platform, accessory);
|
|
155
|
+
case 'tgq':
|
|
156
|
+
case 'tgkg':
|
|
157
|
+
return new DimmerAccessory_1.default(platform, accessory);
|
|
158
|
+
// Electrical Products
|
|
159
|
+
case 'dlq':
|
|
160
|
+
case 'kg':
|
|
161
|
+
case 'tdq':
|
|
162
|
+
case 'qjdcz':
|
|
163
|
+
case 'szjqr':
|
|
164
|
+
return new SwitchAccessory_1.default(platform, accessory);
|
|
165
|
+
case 'cz':
|
|
166
|
+
case 'pc':
|
|
167
|
+
case 'wkcz':
|
|
168
|
+
return new OutletAccessory_1.default(platform, accessory);
|
|
169
|
+
case 'wxkg':
|
|
170
|
+
return new WirelessSwitchAccessory_1.default(platform, accessory);
|
|
171
|
+
case 'cjkg':
|
|
172
|
+
return new SceneSwitchAccessory_1.default(platform, accessory);
|
|
173
|
+
case 'bzyd':
|
|
174
|
+
return new WhiteNoiseLightAccessory_1.default(platform, accessory);
|
|
175
|
+
// Large Home Appliances
|
|
176
|
+
case 'kt':
|
|
177
|
+
case 'ktkzq':
|
|
178
|
+
return new AirConditionerAccessory_1.default(platform, accessory);
|
|
179
|
+
// Small Home Appliances
|
|
180
|
+
case 'qn':
|
|
181
|
+
return new HeaterAccessory_1.default(platform, accessory);
|
|
182
|
+
case 'qn_old':
|
|
183
|
+
return new HeaterAccessory_old_1.default(platform, accessory);
|
|
184
|
+
case 'kj':
|
|
185
|
+
return new AirPurifierAccessory_1.default(platform, accessory);
|
|
186
|
+
case 'xxj':
|
|
187
|
+
return new DiffuserAccessory_1.default(platform, accessory);
|
|
188
|
+
case 'ckmkzq':
|
|
189
|
+
return new GarageDoorAccessory_1.default(platform, accessory);
|
|
190
|
+
case 'mg':
|
|
191
|
+
case 'mgmt':
|
|
192
|
+
return new BlindsAccessory_1.default(platform, accessory);
|
|
193
|
+
case 'cl':
|
|
194
|
+
case 'clkg':
|
|
195
|
+
return new WindowCoveringAccessory_1.default(platform, accessory);
|
|
196
|
+
case 'cwwsq':
|
|
197
|
+
return new PetFeederAccessory_1.default(platform, accessory);
|
|
198
|
+
case 'mc':
|
|
199
|
+
return new WindowAccessory_1.default(platform, accessory);
|
|
200
|
+
case 'wk':
|
|
201
|
+
case 'wkf':
|
|
202
|
+
return new ThermostatAccessory_1.default(platform, accessory);
|
|
203
|
+
case 'mjj':
|
|
204
|
+
return new TowerRackAccessory_1.default(platform, accessory);
|
|
205
|
+
case 'ggq':
|
|
206
|
+
case 'sfkzq':
|
|
207
|
+
return new ValveAccessory_1.default(platform, accessory);
|
|
208
|
+
case 'jsq':
|
|
209
|
+
return new HumidifierAccessory_1.default(platform, accessory);
|
|
210
|
+
case 'cs':
|
|
211
|
+
return new DehumidifierAccessory_1.default(platform, accessory);
|
|
212
|
+
case 'fs':
|
|
213
|
+
case 'fsd':
|
|
214
|
+
case 'fskg':
|
|
215
|
+
return new FanAccessory_1.default(platform, accessory);
|
|
216
|
+
case 'yyj':
|
|
217
|
+
return new ExtractionHoodAccessory_1.default(platform, accessory);
|
|
218
|
+
// Security & Video Surveillance
|
|
219
|
+
case 'sp':
|
|
220
|
+
return new CameraAccessory_1.default(platform, accessory);
|
|
221
|
+
case 'ywbj':
|
|
222
|
+
return new SmokeSensorAccessory_1.default(platform, accessory);
|
|
223
|
+
case 'mcs':
|
|
224
|
+
return new ContactSensorAccessory_1.default(platform, accessory);
|
|
225
|
+
case 'zd':
|
|
226
|
+
return new VibrationSensorAccessory_1.default(platform, accessory);
|
|
227
|
+
case 'rqbj':
|
|
228
|
+
case 'jwbj':
|
|
229
|
+
case 'sj':
|
|
230
|
+
return new LeakSensorAccessory_1.default(platform, accessory);
|
|
231
|
+
case 'cobj':
|
|
232
|
+
case 'cocgq':
|
|
233
|
+
return new CarbonMonoxideSensorAccessory_1.default(platform, accessory);
|
|
234
|
+
case 'co2bj':
|
|
235
|
+
case 'co2cgq':
|
|
236
|
+
return new CarbonDioxideSensorAccessory_1.default(platform, accessory);
|
|
237
|
+
case 'wsdcg':
|
|
238
|
+
return new TemperatureHumiditySensorAccessory_1.default(platform, accessory);
|
|
239
|
+
case 'ldcg':
|
|
240
|
+
return new LightSensorAccessory_1.default(platform, accessory);
|
|
241
|
+
case 'pir':
|
|
242
|
+
return new MotionSensorAccessory_1.default(platform, accessory);
|
|
243
|
+
case 'pm25':
|
|
244
|
+
case 'pm2.5':
|
|
245
|
+
case 'pm25cgq':
|
|
246
|
+
case 'hjjcy':
|
|
247
|
+
return new AirQualitySensorAccessory_1.default(platform, accessory);
|
|
248
|
+
case 'hps':
|
|
249
|
+
return new HumanPresenceSensorAccessory_1.default(platform, accessory);
|
|
250
|
+
case 'ms':
|
|
251
|
+
case 'jtmspro':
|
|
252
|
+
return new LockAccessory_1.default(platform, accessory);
|
|
253
|
+
case 'mal':
|
|
254
|
+
return new SecuritySystemAccessory_1.default(platform, accessory);
|
|
255
|
+
case 'wxml':
|
|
256
|
+
return new DoorbellAccessory_1.default(platform, accessory);
|
|
257
|
+
case 'qxj':
|
|
258
|
+
return new WeatherStationAccessory_1.default(platform, accessory);
|
|
259
|
+
// IR Control
|
|
260
|
+
case 'wnykq':
|
|
261
|
+
case 'hwktwkq':
|
|
262
|
+
case 'wsdykq':
|
|
263
|
+
return new IRControlHubAccessory_1.default(platform, accessory);
|
|
264
|
+
case 'infrared_ac':
|
|
265
|
+
return new IRAirConditionerAccessory_1.default(platform, accessory);
|
|
266
|
+
case 'infrared_fan':
|
|
267
|
+
return new IRFanAccessory_1.default(platform, accessory);
|
|
268
|
+
case 'qt':
|
|
269
|
+
platform.log.debug('early product. add switch-case at function resolveAccessoryByProductID()');
|
|
270
|
+
// eslint-disable-next-line max-len
|
|
271
|
+
platform.log.warn('use plugin options and config category to another. https://github.com/homebridge-plugins/homebridge-tuya/blob/develop_1.7.0/ADVANCED_OPTIONS.md https://github.com/homebridge-plugins/homebridge-tuya/blob/develop_1.7.0/SUPPORTED_DEVICES.md');
|
|
272
|
+
// Since it's a DIY, it might be better to handle it with resolveAccessoryByProductID.
|
|
273
|
+
return new IRControlHubSubAccessory_1.default(platform, accessory);
|
|
274
|
+
default:
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
static configAccessory(platform, accessory) {
|
|
279
|
+
// Always sanitize existing Name/ConfiguredName loaded from persist
|
|
280
|
+
try {
|
|
281
|
+
const info = accessory.getService(platform.Service.AccessoryInformation);
|
|
282
|
+
if (info) {
|
|
283
|
+
const currentConfigured = info.getCharacteristic(platform.Characteristic.ConfiguredName).value;
|
|
284
|
+
const currentName = info.getCharacteristic(platform.Characteristic.Name).value;
|
|
285
|
+
const safeConfigured = (0, util_1.sanitizeName)(currentConfigured) ?? undefined;
|
|
286
|
+
const safeName = (0, util_1.sanitizeName)(currentName) ?? undefined;
|
|
287
|
+
if (safeName && safeName !== currentName) {
|
|
288
|
+
info.getCharacteristic(platform.Characteristic.Name).updateValue(safeName);
|
|
289
|
+
platform.log.info(`Sanitized Name: ${currentName} -> ${safeName}`);
|
|
290
|
+
}
|
|
291
|
+
if (safeConfigured && safeConfigured !== currentConfigured) {
|
|
292
|
+
info.getCharacteristic(platform.Characteristic.ConfiguredName).updateValue(safeConfigured);
|
|
293
|
+
platform.log.info(`Sanitized ConfiguredName: ${currentConfigured} -> ${safeConfigured}`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch (e) {
|
|
298
|
+
platform.log.debug('Failed to sanitize accessory name:', e);
|
|
299
|
+
}
|
|
300
|
+
const configs = platform.platformConfig.cloud?.serviceInformationOverrides;
|
|
301
|
+
if (!configs) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const sn = accessory.getService(platform.Service.AccessoryInformation)?.getCharacteristic(platform.Characteristic.SerialNumber).value;
|
|
305
|
+
configs.filter(config => config.device_id === sn).forEach(config => {
|
|
306
|
+
try {
|
|
307
|
+
const service = accessory.services[config.index];
|
|
308
|
+
if (config.manifacturer) {
|
|
309
|
+
const before = service.getCharacteristic(platform.Characteristic.Manufacturer).value;
|
|
310
|
+
if (before !== config.manifacturer) {
|
|
311
|
+
service.getCharacteristic(platform.Characteristic.Manufacturer).updateValue(config.manifacturer);
|
|
312
|
+
platform.log.info(`manifacturer updated. ${before} -> ${config.manifacturer}`);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
if (config.model) {
|
|
316
|
+
const before = service.getCharacteristic(platform.Characteristic.Model).value;
|
|
317
|
+
if (before !== config.model) {
|
|
318
|
+
service.getCharacteristic(platform.Characteristic.Model).updateValue(config.model);
|
|
319
|
+
platform.log.info(`model updated. ${before} -> ${config.model}`);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (config.firmwareRevision) {
|
|
323
|
+
const before = service.getCharacteristic(platform.Characteristic.FirmwareRevision).value;
|
|
324
|
+
if (before !== config.firmwareRevision) {
|
|
325
|
+
service.getCharacteristic(platform.Characteristic.FirmwareRevision).updateValue(config.firmwareRevision);
|
|
326
|
+
platform.log.info(`firmwareRevision updated. ${before} -> ${config.firmwareRevision}`);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
if (config.configuredName) {
|
|
330
|
+
const safe = (0, util_1.sanitizeName)(config.configuredName)
|
|
331
|
+
?? config.configuredName
|
|
332
|
+
.replace(/[^A-Za-z0-9 '\s]/g, ' ')
|
|
333
|
+
.replace(/\s+/g, ' ')
|
|
334
|
+
.trim();
|
|
335
|
+
const before = service.getCharacteristic(platform.Characteristic.ConfiguredName).value;
|
|
336
|
+
if (before !== safe) {
|
|
337
|
+
service.getCharacteristic(platform.Characteristic.Name).updateValue(safe);
|
|
338
|
+
service.getCharacteristic(platform.Characteristic.ConfiguredName).updateValue(safe);
|
|
339
|
+
platform.log.info(`configuredName updated. ${before} -> ${safe}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
catch (_e) {
|
|
344
|
+
platform.log.error(`index out of bound.:${config.index}, error:%o`, _e);
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
exports.default = AccessoryFactory;
|
|
350
|
+
//# sourceMappingURL=AccessoryFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../../src/shared/accessory/AccessoryFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,13 @@ const SCHEMA_CODE = {
|
|
|
27
27
|
CURRENT_HUMIDITY: ['humidity_current'],
|
|
28
28
|
TARGET_HUMIDITY: ['humidity_set'],
|
|
29
29
|
};
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
const
|
|
30
|
+
// Mode values
|
|
31
|
+
const AC_HEAT_MODES = ['hot', 'heat'];
|
|
32
|
+
const AC_COOL_MODES = ['cold', 'cool'];
|
|
33
|
+
const AC_MODES = ['auto', ...AC_HEAT_MODES, ...AC_COOL_MODES];
|
|
34
|
+
// Added support for dyr, which is included because some devices return a misspelled code value.
|
|
35
|
+
const DEHUMIDIFIER_MODE = ['wet', 'dry', 'dyr'];
|
|
36
|
+
const FAN_MODE = ['wind', 'fan'];
|
|
33
37
|
class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
34
38
|
requiredSchema() {
|
|
35
39
|
return [SCHEMA_CODE.ACTIVE, SCHEMA_CODE.MODE, SCHEMA_CODE.WORK_STATE, SCHEMA_CODE.CURRENT_TEMP];
|
|
@@ -86,7 +90,8 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
86
90
|
const activeSchema = this.getSchema(...SCHEMA_CODE.ACTIVE);
|
|
87
91
|
const modeSchema = this.getSchema(...SCHEMA_CODE.MODE);
|
|
88
92
|
const property = modeSchema.property;
|
|
89
|
-
|
|
93
|
+
const dehumidifierCode = property.range.find(code => DEHUMIDIFIER_MODE.includes(code.toLowerCase()));
|
|
94
|
+
if (!dehumidifierCode) {
|
|
90
95
|
return;
|
|
91
96
|
}
|
|
92
97
|
const service = this.dehumidifierService();
|
|
@@ -96,7 +101,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
96
101
|
.onGet(() => {
|
|
97
102
|
const activeStatus = this.getStatus(activeSchema.code);
|
|
98
103
|
const modeStatus = this.getStatus(modeSchema.code);
|
|
99
|
-
return (activeStatus.value === true && modeStatus.value ===
|
|
104
|
+
return (activeStatus.value === true && modeStatus.value === dehumidifierCode) ? ACTIVE : INACTIVE;
|
|
100
105
|
})
|
|
101
106
|
.onSet(async (value) => {
|
|
102
107
|
await this.sendCommands([{
|
|
@@ -104,7 +109,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
104
109
|
value: (value === ACTIVE) ? true : false,
|
|
105
110
|
}, {
|
|
106
111
|
code: modeSchema.code,
|
|
107
|
-
value:
|
|
112
|
+
value: dehumidifierCode,
|
|
108
113
|
}], true);
|
|
109
114
|
});
|
|
110
115
|
const { DEHUMIDIFYING } = this.Characteristic.CurrentHumidifierDehumidifierState;
|
|
@@ -129,7 +134,8 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
129
134
|
const activeSchema = this.getSchema(...SCHEMA_CODE.ACTIVE);
|
|
130
135
|
const modeSchema = this.getSchema(...SCHEMA_CODE.MODE);
|
|
131
136
|
const property = modeSchema.property;
|
|
132
|
-
|
|
137
|
+
const fanCode = property.range.find(code => FAN_MODE.includes(code.toLowerCase()));
|
|
138
|
+
if (!fanCode) {
|
|
133
139
|
return;
|
|
134
140
|
}
|
|
135
141
|
const service = this.fanService();
|
|
@@ -139,7 +145,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
139
145
|
.onGet(() => {
|
|
140
146
|
const activeStatus = this.getStatus(activeSchema.code);
|
|
141
147
|
const modeStatus = this.getStatus(modeSchema.code);
|
|
142
|
-
return (activeStatus.value === true && modeStatus.value ===
|
|
148
|
+
return (activeStatus.value === true && modeStatus.value === fanCode) ? ACTIVE : INACTIVE;
|
|
143
149
|
})
|
|
144
150
|
.onSet(async (value) => {
|
|
145
151
|
await this.sendCommands([{
|
|
@@ -147,7 +153,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
147
153
|
value: (value === ACTIVE) ? true : false,
|
|
148
154
|
}, {
|
|
149
155
|
code: modeSchema.code,
|
|
150
|
-
value:
|
|
156
|
+
value: fanCode,
|
|
151
157
|
}], true);
|
|
152
158
|
});
|
|
153
159
|
// Optional Characteristics
|
|
@@ -198,10 +204,10 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
198
204
|
if (property.range.includes('auto')) {
|
|
199
205
|
validValues.push(AUTO);
|
|
200
206
|
}
|
|
201
|
-
if (property.range.includes(
|
|
207
|
+
if (property.range.some(mode => AC_HEAT_MODES.includes(mode.toLowerCase()))) {
|
|
202
208
|
validValues.push(HEAT);
|
|
203
209
|
}
|
|
204
|
-
if (property.range.includes(
|
|
210
|
+
if (property.range.some(mode => AC_COOL_MODES.includes(mode.toLowerCase()))) {
|
|
205
211
|
validValues.push(COOL);
|
|
206
212
|
}
|
|
207
213
|
if (validValues.length === 0) {
|
|
@@ -211,10 +217,10 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
211
217
|
this.mainService().getCharacteristic(this.Characteristic.TargetHeaterCoolerState)
|
|
212
218
|
.onGet(() => {
|
|
213
219
|
const status = this.getStatus(schema.code);
|
|
214
|
-
if (status.value
|
|
220
|
+
if (AC_HEAT_MODES.includes(String(status.value).toLowerCase())) {
|
|
215
221
|
return HEAT;
|
|
216
222
|
}
|
|
217
|
-
else if (status.value
|
|
223
|
+
else if (AC_COOL_MODES.includes(String(status.value).toLowerCase())) {
|
|
218
224
|
return COOL;
|
|
219
225
|
}
|
|
220
226
|
return validValues.includes(AUTO) ? AUTO : validValues[0];
|
|
@@ -222,10 +228,10 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
|
|
|
222
228
|
.onSet(async (value) => {
|
|
223
229
|
let mode;
|
|
224
230
|
if (value === HEAT) {
|
|
225
|
-
mode =
|
|
231
|
+
mode = property.range.find(m => AC_HEAT_MODES.includes(m.toLowerCase())) || AC_HEAT_MODES[0];
|
|
226
232
|
}
|
|
227
233
|
else if (value === COOL) {
|
|
228
|
-
mode =
|
|
234
|
+
mode = property.range.find(m => AC_COOL_MODES.includes(m.toLowerCase())) || AC_COOL_MODES[0];
|
|
229
235
|
}
|
|
230
236
|
else {
|
|
231
237
|
mode = 'auto';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../../src/shared/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirPurifierAccessory.js","sourceRoot":"","sources":["../../../src/shared/
|
|
1
|
+
{"version":3,"file":"AirPurifierAccessory.js","sourceRoot":"","sources":["../../../src/shared/accessory/AirPurifierAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirQualitySensorAccessory.js","sourceRoot":"","sources":["../../../src/shared/accessory/AirQualitySensorAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,4DAAkE;AAClE,sFAA4F;AAC5F,4EAAkF;AAElF,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,KAAK,EAAE,CAAC,YAAY,CAAC;IACrB,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;IAC5B,GAAG,EAAE,CAAC,WAAW,CAAC;IAClB,YAAY,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,cAAc,CAAC;IAC/D,gBAAgB,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;CACpD,CAAC;AAEF,MAAqB,yBAA0B,SAAQ,uBAAa;IAEzD,cAAc;QACrB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAEQ,iBAAiB;QACxB,IAAA,gCAAmB,EACjB,IAAI,EACJ,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EACnC,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CACnC,CAAC;QAEF,QAAQ;QACR,IAAA,gDAA2B,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1F,IAAA,0DAAgC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrG,CAAC;CAEF;AArBD,4CAqBC"}
|