iobroker.iot 3.6.0 → 4.0.2
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 +8 -4
- package/admin/assets/index-5zouxn2w.js +680 -0
- package/admin/index_m.html +1 -1
- package/admin/rules/assets/{index-BRdNnGcA.js → index-DwYdaT5M.js} +80 -81
- package/admin/rules/customRuleBlocks.js +2 -2
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/AlexaResponse.js +101 -95
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/AlexaResponse.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/Base.js +22 -36
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +16 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js +27 -28
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +25 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +37 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +32 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +29 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js +34 -27
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +39 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ReportState.js +19 -22
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ReportState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +36 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +57 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +57 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +12 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +16 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +127 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +18 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js +20 -29
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +23 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/LockState.js +9 -12
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/LockState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +34 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +18 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/PowerState.js +9 -9
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +31 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +22 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +49 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +20 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +26 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js +148 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js +13 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +17 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Control.js +73 -104
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Control.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js +182 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js +127 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js +208 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Light.js +15 -22
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Light.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js +35 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js +17 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +26 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js +85 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +27 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js +116 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js +121 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Device.js +29 -30
- package/build-backend/lib/AlexaSmartHomeV3/Device.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js +392 -0
- package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/AdapterProvider.js +12 -21
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/AdapterProvider.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +53 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/IotProxy.js +9 -26
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/IotProxy.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js +93 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +112 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js +625 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js.map +1 -0
- package/build-backend/lib/Utils.js +96 -0
- package/build-backend/lib/Utils.js.map +1 -0
- package/build-backend/lib/adminCommonSocket.js +715 -0
- package/build-backend/lib/adminCommonSocket.js.map +1 -0
- package/build-backend/lib/alexaCustom.js +542 -0
- package/build-backend/lib/alexaCustom.js.map +1 -0
- package/{lib → build-backend/lib}/alexaSmartHomeV2.js +4 -8
- package/{lib → build-backend/lib}/alexaSmartHomeV3.js +25 -45
- package/build-backend/lib/alexaSmartHomeV3.js.map +1 -0
- package/{lib → build-backend/lib}/alisa.js +41 -44
- package/{lib → build-backend/lib}/devices.js +11 -8
- package/build-backend/lib/devices.js.map +1 -0
- package/{lib → build-backend/lib}/functions.js +11 -8
- package/build-backend/lib/functions.js.map +1 -0
- package/{lib → build-backend/lib}/googleHome.js +25 -26
- package/{lib → build-backend/lib}/notifications.js +15 -22
- package/build-backend/lib/notifications.js.map +1 -0
- package/{lib → build-backend/lib}/remote.js +615 -636
- package/build-backend/lib/remote.js.map +1 -0
- package/{lib → build-backend/lib}/rooms.js +11 -8
- package/build-backend/lib/rooms.js.map +1 -0
- package/{lib → build-backend/lib}/texts.js +6 -4
- package/build-backend/lib/texts.js.map +1 -0
- package/build-backend/lib/translate.js +21 -0
- package/build-backend/lib/translate.js.map +1 -0
- package/{lib → build-backend/lib}/visuApp.js +45 -65
- package/build-backend/lib/visuApp.js.map +1 -0
- package/build-backend/main.js +1361 -0
- package/build-backend/main.js.map +1 -0
- package/io-package.json +14 -14
- package/package.json +18 -15
- package/admin/assets/index-DCbOB3g_.js +0 -681
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +0 -20
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +0 -34
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +0 -27
- package/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +0 -39
- package/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +0 -13
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +0 -38
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +0 -55
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +0 -56
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +0 -11
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +0 -108
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +0 -40
- package/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +0 -22
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +0 -32
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +0 -17
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +0 -28
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +0 -20
- package/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +0 -52
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +0 -19
- package/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +0 -22
- package/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +0 -28
- package/lib/AlexaSmartHomeV3/Controls/AirCondition.js +0 -144
- package/lib/AlexaSmartHomeV3/Controls/Blind.js +0 -12
- package/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +0 -17
- package/lib/AlexaSmartHomeV3/Controls/Ct.js +0 -172
- package/lib/AlexaSmartHomeV3/Controls/Dimmer.js +0 -124
- package/lib/AlexaSmartHomeV3/Controls/Door.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/Gate.js +0 -42
- package/lib/AlexaSmartHomeV3/Controls/Hue.js +0 -207
- package/lib/AlexaSmartHomeV3/Controls/Lock.js +0 -36
- package/lib/AlexaSmartHomeV3/Controls/Motion.js +0 -17
- package/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +0 -25
- package/lib/AlexaSmartHomeV3/Controls/Slider.js +0 -10
- package/lib/AlexaSmartHomeV3/Controls/Socket.js +0 -21
- package/lib/AlexaSmartHomeV3/Controls/Temperature.js +0 -22
- package/lib/AlexaSmartHomeV3/Controls/Thermostat.js +0 -86
- package/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +0 -28
- package/lib/AlexaSmartHomeV3/Controls/Volume.js +0 -109
- package/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/Window.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/index.js +0 -14
- package/lib/AlexaSmartHomeV3/DeviceManager.js +0 -415
- package/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +0 -8
- package/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +0 -5
- package/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +0 -5
- package/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +0 -70
- package/lib/AlexaSmartHomeV3/Helpers/Logger.js +0 -95
- package/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +0 -82
- package/lib/AlexaSmartHomeV3/Helpers/Utils.js +0 -583
- package/lib/Utils.js +0 -608
- package/lib/adminCommonSocket.js +0 -781
- package/lib/alexaCustom.js +0 -622
- package/lib/translate.js +0 -19
- package/main.js +0 -1454
|
@@ -0,0 +1,17 @@
|
|
|
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 MotionSensor_1 = __importDefault(require("../Alexa/Capabilities/MotionSensor"));
|
|
7
|
+
const ReadOnlyDetector_1 = __importDefault(require("./ReadOnlyDetector"));
|
|
8
|
+
class Motion extends ReadOnlyDetector_1.default {
|
|
9
|
+
get capability() {
|
|
10
|
+
return new MotionSensor_1.default();
|
|
11
|
+
}
|
|
12
|
+
get categories() {
|
|
13
|
+
return ['MOTION_SENSOR'];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.default = Motion;
|
|
17
|
+
//# sourceMappingURL=Motion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Motion.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Motion.ts"],"names":[],"mappings":";;;;;AACA,sFAA8D;AAC9D,0EAAkD;AAGlD,MAAqB,MAAO,SAAQ,0BAAgB;IAChD,IAAI,UAAU;QACV,OAAO,IAAI,sBAAY,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC;CACJ;AARD,yBAQC","sourcesContent":["import type { AlexaV3Category } from '../types';\nimport MotionSensor from '../Alexa/Capabilities/MotionSensor';\nimport ReadOnlyDetector from './ReadOnlyDetector';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\n\nexport default class Motion extends ReadOnlyDetector {\n get capability(): CapabilitiesBase | undefined {\n return new MotionSensor();\n }\n\n get categories(): AlexaV3Category[] {\n return ['MOTION_SENSOR'];\n }\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 AlexaResponse_1 = __importDefault(require("../Alexa/AlexaResponse"));
|
|
7
|
+
const Control_1 = __importDefault(require("./Control"));
|
|
8
|
+
class ReadOnlyDetector extends Control_1.default {
|
|
9
|
+
get capability() {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
initCapabilities() {
|
|
13
|
+
const result = [this.capability];
|
|
14
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
15
|
+
property.init(this.detectedStateInitObject());
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
async handle(event) {
|
|
20
|
+
this.log.error(`Setting value is not supported by ${this.name} control`);
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
22
|
+
return Promise.reject(AlexaResponse_1.default.directiveNotSupportedByControl(this.name, event.directive.header.namespace, event.directive.header.messageId, event.directive.header.payloadVersion).get());
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = ReadOnlyDetector;
|
|
26
|
+
//# sourceMappingURL=ReadOnlyDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadOnlyDetector.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.ts"],"names":[],"mappings":";;;;;AAAA,2EAAmD;AACnD,wDAAgC;AAIhC,MAAqB,gBAAiB,SAAQ,iBAAO;IACjD,IAAI,UAAU;QACV,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAClC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC;QAEzE,2EAA2E;QAC3E,OAAO,OAAO,CAAC,MAAM,CACjB,uBAAa,CAAC,8BAA8B,CACxC,IAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAChC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAChC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CACxC,CAAC,GAAG,EAAE,CACV,CAAC;IACN,CAAC;CACJ;AA1BD,mCA0BC","sourcesContent":["import AlexaResponse from '../Alexa/AlexaResponse';\nimport Control from './Control';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\nimport type { AlexaV3Request } from '../types';\n\nexport default class ReadOnlyDetector extends Control {\n get capability(): CapabilitiesBase | undefined {\n return undefined;\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result = [this.capability!];\n for (const property of result.flatMap(item => item.properties)) {\n property.init(this.detectedStateInitObject());\n }\n return result;\n }\n\n async handle(event: AlexaV3Request): Promise<AlexaResponse> {\n this.log.error(`Setting value is not supported by ${this.name} control`);\n\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\n AlexaResponse.directiveNotSupportedByControl(\n this.name,\n event.directive.header.namespace,\n event.directive.header.messageId,\n event.directive.header.payloadVersion,\n ).get(),\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 AdjustablePercentageControl_1 = __importDefault(require("./AdjustablePercentageControl"));
|
|
7
|
+
class Slider extends AdjustablePercentageControl_1.default {
|
|
8
|
+
}
|
|
9
|
+
exports.default = Slider;
|
|
10
|
+
//# sourceMappingURL=Slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Slider.ts"],"names":[],"mappings":";;;;;AAAA,gGAAwE;AAExE,MAAqB,MAAO,SAAQ,qCAA2B;CAAG;AAAlE,yBAAkE","sourcesContent":["import AdjustablePercentageControl from './AdjustablePercentageControl';\n\nexport default class Slider extends AdjustablePercentageControl {}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 PowerController_1 = __importDefault(require("../Alexa/Capabilities/PowerController"));
|
|
7
|
+
const Control_1 = __importDefault(require("./Control"));
|
|
8
|
+
class Socket extends Control_1.default {
|
|
9
|
+
get categories() {
|
|
10
|
+
return ['SMARTPLUG'];
|
|
11
|
+
}
|
|
12
|
+
initCapabilities() {
|
|
13
|
+
const result = [new PowerController_1.default()];
|
|
14
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
15
|
+
property.init(this.powerStateInitObject());
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = Socket;
|
|
21
|
+
//# sourceMappingURL=Socket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Socket.ts"],"names":[],"mappings":";;;;;AACA,4FAAoE;AACpE,wDAAgC;AAGhC,MAAqB,MAAO,SAAQ,iBAAO;IACvC,IAAI,UAAU;QACV,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAG,CAAC,IAAI,yBAAe,EAAE,CAAC,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAZD,yBAYC","sourcesContent":["import type { AlexaV3Category } from '../types';\nimport PowerController from '../Alexa/Capabilities/PowerController';\nimport Control from './Control';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\n\nexport default class Socket extends Control {\n get categories(): AlexaV3Category[] {\n return ['SMARTPLUG'];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result = [new PowerController()];\n for (const property of result.flatMap(item => item.properties)) {\n property.init(this.powerStateInitObject());\n }\n return result;\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 TemperatureSensor_1 = __importDefault(require("../Alexa/Capabilities/TemperatureSensor"));
|
|
7
|
+
const Control_1 = __importDefault(require("./Control"));
|
|
8
|
+
class Temperature extends Control_1.default {
|
|
9
|
+
get categories() {
|
|
10
|
+
return ['TEMPERATURE_SENSOR'];
|
|
11
|
+
}
|
|
12
|
+
initCapabilities() {
|
|
13
|
+
const result = [new TemperatureSensor_1.default()];
|
|
14
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
15
|
+
property.init(this.blankInitObject());
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = Temperature;
|
|
21
|
+
//# sourceMappingURL=Temperature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Temperature.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Temperature.ts"],"names":[],"mappings":";;;;;AACA,gGAAwE;AACxE,wDAAgC;AAGhC,MAAqB,WAAY,SAAQ,iBAAO;IAC5C,IAAI,UAAU;QACV,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAG,CAAC,IAAI,2BAAiB,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAbD,8BAaC","sourcesContent":["import type { AlexaV3Category } from '../types';\nimport TemperatureSensor from '../Alexa/Capabilities/TemperatureSensor';\nimport Control from './Control';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\n\nexport default class Temperature extends Control {\n get categories(): AlexaV3Category[] {\n return ['TEMPERATURE_SENSOR'];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result = [new TemperatureSensor()];\n for (const property of result.flatMap(item => item.properties)) {\n property.init(this.blankInitObject());\n }\n\n return result;\n }\n}\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 TemperatureSensor_1 = __importDefault(require("../Alexa/Capabilities/TemperatureSensor"));
|
|
7
|
+
const ThermostatController_1 = __importDefault(require("../Alexa/Capabilities/ThermostatController"));
|
|
8
|
+
const PowerController_1 = __importDefault(require("../Alexa/Capabilities/PowerController"));
|
|
9
|
+
const AdjustableControl_1 = __importDefault(require("./AdjustableControl"));
|
|
10
|
+
const Utils_1 = require("../Helpers/Utils");
|
|
11
|
+
const ThermostatMode_1 = __importDefault(require("../Alexa/Properties/ThermostatMode"));
|
|
12
|
+
const TargetSetpoint_1 = __importDefault(require("../Alexa/Properties/TargetSetpoint"));
|
|
13
|
+
const Temperature_1 = __importDefault(require("../Alexa/Properties/Temperature"));
|
|
14
|
+
const PowerState_1 = __importDefault(require("../Alexa/Properties/PowerState"));
|
|
15
|
+
class Thermostat extends AdjustableControl_1.default {
|
|
16
|
+
get categories() {
|
|
17
|
+
return ['THERMOSTAT', 'TEMPERATURE_SENSOR'];
|
|
18
|
+
}
|
|
19
|
+
adjustableProperties() {
|
|
20
|
+
return [TargetSetpoint_1.default];
|
|
21
|
+
}
|
|
22
|
+
initCapabilities() {
|
|
23
|
+
const result = [new TemperatureSensor_1.default(), new ThermostatController_1.default()];
|
|
24
|
+
const map = this.statesMap;
|
|
25
|
+
// if the state POWER is present, then we can switch it ON/OFF
|
|
26
|
+
if (this.states[map.power]) {
|
|
27
|
+
result.push(new PowerController_1.default());
|
|
28
|
+
}
|
|
29
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
30
|
+
const initObject = this.composeInitObject(property);
|
|
31
|
+
if (initObject) {
|
|
32
|
+
property.init(initObject);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
composeInitObject(property) {
|
|
38
|
+
const map = this.statesMap;
|
|
39
|
+
if (property.propertyName === PowerState_1.default.propertyName) {
|
|
40
|
+
return {
|
|
41
|
+
setState: this.states[map.power] || this.states[map.set],
|
|
42
|
+
getState: this.states[map.power] || this.states[map.set],
|
|
43
|
+
alexaSetter: function (alexaValue) {
|
|
44
|
+
return alexaValue === PowerState_1.default.ON;
|
|
45
|
+
},
|
|
46
|
+
alexaGetter: function (value) {
|
|
47
|
+
return value ? PowerState_1.default.ON : PowerState_1.default.OFF;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (property.propertyName === Temperature_1.default.propertyName) {
|
|
52
|
+
return {
|
|
53
|
+
setState: this.states[map.set],
|
|
54
|
+
getState: this.states[map.actual] || this.states[map.set],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (property.propertyName === TargetSetpoint_1.default.propertyName) {
|
|
58
|
+
return {
|
|
59
|
+
setState: this.states[map.set],
|
|
60
|
+
getState: this.states[map.actual] || this.states[map.set],
|
|
61
|
+
alexaSetter: function (alexaValue) {
|
|
62
|
+
return (0, Utils_1.ensureValueInRange)(alexaValue, this.valuesRangeMin, this.valuesRangeMax);
|
|
63
|
+
},
|
|
64
|
+
alexaGetter: function (value) {
|
|
65
|
+
return value;
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (property.propertyName === ThermostatMode_1.default.propertyName) {
|
|
70
|
+
return {
|
|
71
|
+
setState: this.states[map.mode] || { id: undefined },
|
|
72
|
+
getState: this.states[map.mode] || { id: undefined },
|
|
73
|
+
alexaSetter: function (_alexaValue) {
|
|
74
|
+
return 0;
|
|
75
|
+
},
|
|
76
|
+
alexaGetter: function (_value) {
|
|
77
|
+
return ThermostatMode_1.default.AUTO;
|
|
78
|
+
},
|
|
79
|
+
supportedModes: [ThermostatMode_1.default.AUTO],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.default = Thermostat;
|
|
85
|
+
//# sourceMappingURL=Thermostat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thermostat.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Thermostat.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AlexaV3Category, AlexaV3DirectiveValue, IotExternalDetectorState } from '../types';\nimport TemperatureSensor from '../Alexa/Capabilities/TemperatureSensor';\nimport ThermostatController from '../Alexa/Capabilities/ThermostatController';\nimport PowerController from '../Alexa/Capabilities/PowerController';\nimport AdjustableControl from './AdjustableControl';\nimport { ensureValueInRange } from '../Helpers/Utils';\nimport ThermostatMode from '../Alexa/Properties/ThermostatMode';\nimport TargetSetpoint from '../Alexa/Properties/TargetSetpoint';\nimport Temperature from '../Alexa/Properties/Temperature';\nimport PowerState from '../Alexa/Properties/PowerState';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\nimport type { Base as PropertiesBase } from '../Alexa/Properties/Base';\n\nexport default class Thermostat extends AdjustableControl {\n get categories(): AlexaV3Category[] {\n return ['THERMOSTAT', 'TEMPERATURE_SENSOR'];\n }\n\n adjustableProperties(): (typeof PropertiesBase)[] {\n return [TargetSetpoint];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result = [new TemperatureSensor(), new ThermostatController()];\n const map = this.statesMap;\n // if the state POWER is present, then we can switch it ON/OFF\n if (this.states[map.power]) {\n result.push(new PowerController());\n }\n\n for (const property of result.flatMap(item => item.properties)) {\n const initObject = this.composeInitObject(property);\n if (initObject) {\n property.init(initObject);\n }\n }\n\n return result;\n }\n\n composeInitObject(property: PropertiesBase):\n | {\n setState: IotExternalDetectorState;\n getState: IotExternalDetectorState;\n alexaSetter?: (alexaValue: AlexaV3DirectiveValue) => ioBroker.StateValue | undefined;\n alexaGetter?: (value: ioBroker.StateValue | undefined) => AlexaV3DirectiveValue;\n supportedModes?: string[];\n }\n | undefined {\n const map = this.statesMap;\n\n if (property.propertyName === PowerState.propertyName) {\n return {\n setState: this.states[map.power] || this.states[map.set]!,\n getState: this.states[map.power] || this.states[map.set]!,\n alexaSetter: function (this: PropertiesBase, alexaValue: AlexaV3DirectiveValue): ioBroker.StateValue {\n return alexaValue === PowerState.ON;\n },\n alexaGetter: function (value) {\n return value ? PowerState.ON : PowerState.OFF;\n },\n };\n }\n\n if (property.propertyName === Temperature.propertyName) {\n return {\n setState: this.states[map.set]!,\n getState: this.states[map.actual] || this.states[map.set]!,\n };\n }\n\n if (property.propertyName === TargetSetpoint.propertyName) {\n return {\n setState: this.states[map.set]!,\n getState: this.states[map.actual] || this.states[map.set]!,\n alexaSetter: function (this: PropertiesBase, alexaValue: AlexaV3DirectiveValue): ioBroker.StateValue {\n return ensureValueInRange(\n alexaValue as number,\n this.valuesRangeMin as number,\n this.valuesRangeMax as number,\n );\n },\n alexaGetter: function (value: ioBroker.StateValue | undefined): AlexaV3DirectiveValue {\n return value as number;\n },\n };\n }\n\n if (property.propertyName === ThermostatMode.propertyName) {\n return {\n setState: this.states[map.mode] || ({ id: undefined } as unknown as IotExternalDetectorState),\n getState: this.states[map.mode] || ({ id: undefined } as unknown as IotExternalDetectorState),\n alexaSetter: function (this: PropertiesBase, _alexaValue: AlexaV3DirectiveValue): ioBroker.StateValue {\n return 0;\n },\n alexaGetter: function (_value: ioBroker.StateValue | undefined): AlexaV3DirectiveValue {\n return ThermostatMode.AUTO;\n },\n supportedModes: [ThermostatMode.AUTO],\n };\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
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 Capabilities_1 = __importDefault(require("../Alexa/Capabilities"));
|
|
7
|
+
const Control_1 = __importDefault(require("./Control"));
|
|
8
|
+
class VacuumCleaner extends Control_1.default {
|
|
9
|
+
get categories() {
|
|
10
|
+
return ['VACUUM_CLEANER'];
|
|
11
|
+
}
|
|
12
|
+
initCapabilities() {
|
|
13
|
+
const result = [new Capabilities_1.default.PowerController()];
|
|
14
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
15
|
+
property.init(this.powerStateInitObject());
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
get statesMap() {
|
|
20
|
+
return {
|
|
21
|
+
set: 'POWER',
|
|
22
|
+
actual: undefined,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.default = VacuumCleaner;
|
|
27
|
+
//# sourceMappingURL=VacuumCleaner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VacuumCleaner.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.ts"],"names":[],"mappings":";;;;;AACA,yEAAiD;AACjD,wDAAgC;AAGhC,MAAqB,aAAc,SAAQ,iBAAO;IAC9C,IAAI,UAAU;QACV,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAG,CAAC,IAAI,sBAAY,CAAC,eAAe,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,SAAS;QAIT,OAAO;YACH,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,SAAS;SACpB,CAAC;IACN,CAAC;CACJ;AAtBD,gCAsBC","sourcesContent":["import type { AlexaV3Category } from '../types';\nimport Capabilities from '../Alexa/Capabilities';\nimport Control from './Control';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\n\nexport default class VacuumCleaner extends Control {\n get categories(): AlexaV3Category[] {\n return ['VACUUM_CLEANER'];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result = [new Capabilities.PowerController()];\n for (const property of result.flatMap(item => item.properties)) {\n property.init(this.powerStateInitObject());\n }\n return result;\n }\n\n get statesMap(): {\n set: string;\n actual?: string;\n } {\n return {\n set: 'POWER',\n actual: undefined,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,116 @@
|
|
|
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 Speaker_1 = __importDefault(require("../Alexa/Capabilities/Speaker"));
|
|
7
|
+
const Properties_1 = __importDefault(require("../Alexa/Properties"));
|
|
8
|
+
const Volume_1 = require("../Alexa/Properties/Volume");
|
|
9
|
+
const AdapterProvider_1 = __importDefault(require("../Helpers/AdapterProvider"));
|
|
10
|
+
const Utils_1 = require("../Helpers/Utils");
|
|
11
|
+
const AdjustableControl_1 = __importDefault(require("./AdjustableControl"));
|
|
12
|
+
class Volume extends AdjustableControl_1.default {
|
|
13
|
+
_speaker;
|
|
14
|
+
_lastVolume;
|
|
15
|
+
get categories() {
|
|
16
|
+
return ['SPEAKER'];
|
|
17
|
+
}
|
|
18
|
+
adjustableProperties() {
|
|
19
|
+
return [Volume_1.Volume];
|
|
20
|
+
}
|
|
21
|
+
initCapabilities() {
|
|
22
|
+
this._speaker = new Speaker_1.default();
|
|
23
|
+
const result = [this._speaker];
|
|
24
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
25
|
+
const intiOption = this.composeInitObject(property);
|
|
26
|
+
if (intiOption) {
|
|
27
|
+
property.init(intiOption);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
async setState(property, value) {
|
|
33
|
+
// set the property itself
|
|
34
|
+
await AdapterProvider_1.default.setState(property.setId, value);
|
|
35
|
+
property.currentValue = value;
|
|
36
|
+
if (property.propertyName === Properties_1.default.Muted.propertyName) {
|
|
37
|
+
if (!this._speaker) {
|
|
38
|
+
throw new Error('Muted property name is missing');
|
|
39
|
+
}
|
|
40
|
+
// set volume
|
|
41
|
+
if (value) {
|
|
42
|
+
// set volume to 0 on MUTED true
|
|
43
|
+
await AdapterProvider_1.default.setState(this._speaker.volume.setId, 0);
|
|
44
|
+
this._lastVolume = this._speaker.volume.currentValue;
|
|
45
|
+
this._speaker.volume.currentValue = 0;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// set volume to the last known, configured or 20 otherwise on MUTED false
|
|
49
|
+
if (this._lastVolume === undefined) {
|
|
50
|
+
const smartName = this.states[this.statesMap.set].smartName;
|
|
51
|
+
if (typeof smartName === 'object' && smartName && smartName.byON !== undefined) {
|
|
52
|
+
this._lastVolume = smartName.byON;
|
|
53
|
+
}
|
|
54
|
+
this._lastVolume =
|
|
55
|
+
this._lastVolume === undefined || isNaN(this._lastVolume)
|
|
56
|
+
? (0, Utils_1.denormalize_0_100)(20, this._speaker.volume.valuesRangeMin, this._speaker.volume.valuesRangeMax)
|
|
57
|
+
: parseInt(this._lastVolume, 10);
|
|
58
|
+
}
|
|
59
|
+
await AdapterProvider_1.default.setState(this._speaker.volume.setId, this._lastVolume);
|
|
60
|
+
this._speaker.volume.currentValue = this._lastVolume;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// set muted
|
|
65
|
+
const muted = value === 0;
|
|
66
|
+
// only on different IDs for volume and muted
|
|
67
|
+
if (this._speaker.volume.setId !== this._speaker.muted.setId) {
|
|
68
|
+
await AdapterProvider_1.default.setState(this._speaker.muted.setId, muted);
|
|
69
|
+
}
|
|
70
|
+
this._speaker.muted.currentValue = muted;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async getOrRetrieveCurrentValue(property) {
|
|
74
|
+
if (property.currentValue === undefined) {
|
|
75
|
+
property.currentValue = await AdapterProvider_1.default.getState(property.getId);
|
|
76
|
+
// convert non zero volumes to muted = false
|
|
77
|
+
if (property.propertyName === this._speaker.muted.propertyName &&
|
|
78
|
+
property.getId === this._speaker.volume.getId) {
|
|
79
|
+
property.currentValue = property.currentValue === 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (property.currentValue === undefined) {
|
|
83
|
+
throw new Error(`unable to retrieve ${property.getId}`);
|
|
84
|
+
}
|
|
85
|
+
return property.currentValue;
|
|
86
|
+
}
|
|
87
|
+
composeInitObject(property) {
|
|
88
|
+
const map = this.statesMap;
|
|
89
|
+
if (property.propertyName === Properties_1.default.Volume.propertyName) {
|
|
90
|
+
return {
|
|
91
|
+
setState: this.states[map.set],
|
|
92
|
+
getState: this.states[map.actual] || this.states[map.set],
|
|
93
|
+
alexaSetter: function (alexaValue) {
|
|
94
|
+
return (0, Utils_1.denormalize_0_100)(alexaValue, this.valuesRangeMin, this.valuesRangeMax);
|
|
95
|
+
},
|
|
96
|
+
alexaGetter: function (value) {
|
|
97
|
+
return (0, Utils_1.normalize_0_100)(value, this.valuesRangeMin, this.valuesRangeMax);
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
if (property.propertyName === Properties_1.default.Muted.propertyName) {
|
|
102
|
+
return {
|
|
103
|
+
setState: this.states[map.mute] || this.states[map.set],
|
|
104
|
+
getState: this.states[map.mute] || this.states[map.set],
|
|
105
|
+
alexaSetter: function (alexaValue) {
|
|
106
|
+
return alexaValue;
|
|
107
|
+
},
|
|
108
|
+
alexaGetter: function (value) {
|
|
109
|
+
return value;
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.default = Volume;
|
|
116
|
+
//# sourceMappingURL=Volume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Volume.ts"],"names":[],"mappings":"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","sourcesContent":["import Speaker from '../Alexa/Capabilities/Speaker';\nimport Properties from '../Alexa/Properties';\nimport type { Base as PropertiesBase } from '../Alexa/Properties/Base';\nimport { Volume as PropertiesVolume } from '../Alexa/Properties/Volume';\nimport AdapterProvider from '../Helpers/AdapterProvider';\nimport { denormalize_0_100, normalize_0_100 } from '../Helpers/Utils';\nimport AdjustableControl from './AdjustableControl';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\nimport type { AlexaV3Category, AlexaV3DirectiveValue, IotExternalDetectorState } from '../types';\n\nexport default class Volume extends AdjustableControl {\n private _speaker: Speaker | undefined;\n private _lastVolume: ioBroker.StateValue | undefined;\n\n get categories(): AlexaV3Category[] {\n return ['SPEAKER'];\n }\n\n adjustableProperties(): (typeof PropertiesBase)[] {\n return [PropertiesVolume];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n this._speaker = new Speaker();\n const result = [this._speaker];\n for (const property of result.flatMap(item => item.properties)) {\n const intiOption = this.composeInitObject(property);\n if (intiOption) {\n property.init(intiOption);\n }\n }\n\n return result;\n }\n\n async setState(property: PropertiesBase, value: ioBroker.StateValue | undefined): Promise<void> {\n // set the property itself\n await AdapterProvider.setState(property.setId, value!);\n property.currentValue = value;\n\n if (property.propertyName === Properties.Muted.propertyName) {\n if (!this._speaker) {\n throw new Error('Muted property name is missing');\n }\n // set volume\n if (value) {\n // set volume to 0 on MUTED true\n await AdapterProvider.setState(this._speaker.volume.setId, 0);\n this._lastVolume = this._speaker.volume.currentValue;\n this._speaker.volume.currentValue = 0;\n } else {\n // set volume to the last known, configured or 20 otherwise on MUTED false\n if (this._lastVolume === undefined) {\n const smartName = this.states[this.statesMap.set]!.smartName;\n if (typeof smartName === 'object' && smartName && smartName.byON !== undefined) {\n this._lastVolume = smartName.byON;\n }\n this._lastVolume =\n this._lastVolume === undefined || isNaN(this._lastVolume as unknown as number)\n ? denormalize_0_100(\n 20,\n this._speaker.volume.valuesRangeMin as number,\n this._speaker.volume.valuesRangeMax as number,\n )\n : parseInt(this._lastVolume as string, 10);\n }\n await AdapterProvider.setState(this._speaker.volume.setId, this._lastVolume as number);\n this._speaker.volume.currentValue = this._lastVolume;\n }\n } else {\n // set muted\n const muted = value === 0;\n // only on different IDs for volume and muted\n if (this._speaker!.volume.setId !== this._speaker!.muted.setId) {\n await AdapterProvider.setState(this._speaker!.muted.setId, muted);\n }\n this._speaker!.muted.currentValue = muted;\n }\n }\n\n async getOrRetrieveCurrentValue(property: PropertiesBase): Promise<ioBroker.StateValue> {\n if (property.currentValue === undefined) {\n property.currentValue = await AdapterProvider.getState(property.getId);\n\n // convert non zero volumes to muted = false\n if (\n property.propertyName === this._speaker!.muted.propertyName &&\n property.getId === this._speaker!.volume.getId\n ) {\n property.currentValue = property.currentValue === 0;\n }\n }\n\n if (property.currentValue === undefined) {\n throw new Error(`unable to retrieve ${property.getId}`);\n }\n\n return property.currentValue;\n }\n\n composeInitObject(property: PropertiesBase):\n | {\n setState: IotExternalDetectorState;\n getState: IotExternalDetectorState;\n alexaSetter?: (alexaValue: AlexaV3DirectiveValue) => ioBroker.StateValue | undefined;\n alexaGetter?: (value: ioBroker.StateValue | undefined) => AlexaV3DirectiveValue;\n }\n | undefined {\n const map = this.statesMap;\n\n if (property.propertyName === Properties.Volume.propertyName) {\n return {\n setState: this.states[map.set]!,\n getState: this.states[map.actual] || this.states[map.set]!,\n alexaSetter: function (\n this: PropertiesBase,\n alexaValue: AlexaV3DirectiveValue,\n ): ioBroker.StateValue | undefined {\n return denormalize_0_100(\n alexaValue as number,\n this.valuesRangeMin as number,\n this.valuesRangeMax as number,\n );\n },\n alexaGetter: function (\n this: PropertiesBase,\n value: ioBroker.StateValue | undefined,\n ): AlexaV3DirectiveValue {\n return normalize_0_100(\n value as number,\n this.valuesRangeMin as number,\n this.valuesRangeMax as number,\n );\n },\n };\n }\n\n if (property.propertyName === Properties.Muted.propertyName) {\n return {\n setState: this.states[map.mute] || this.states[map.set]!,\n getState: this.states[map.mute] || this.states[map.set]!,\n alexaSetter: function (alexaValue: AlexaV3DirectiveValue): ioBroker.StateValue | undefined {\n return alexaValue as boolean;\n },\n alexaGetter: function (value: ioBroker.StateValue | undefined): AlexaV3DirectiveValue {\n return value as boolean;\n },\n };\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 Volume_1 = __importDefault(require("./Volume"));
|
|
7
|
+
class VolumeGroup extends Volume_1.default {
|
|
8
|
+
}
|
|
9
|
+
exports.default = VolumeGroup;
|
|
10
|
+
//# sourceMappingURL=VolumeGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VolumeGroup.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/VolumeGroup.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAE9B,MAAqB,WAAY,SAAQ,gBAAM;CAAG;AAAlD,8BAAkD","sourcesContent":["import Volume from './Volume';\n\nexport default class VolumeGroup extends Volume {}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 ContactSensor_1 = __importDefault(require("./ContactSensor"));
|
|
7
|
+
class Window extends ContactSensor_1.default {
|
|
8
|
+
}
|
|
9
|
+
exports.default = Window;
|
|
10
|
+
//# sourceMappingURL=Window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Window.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAE5C,MAAqB,MAAO,SAAQ,uBAAa;CAAG;AAApD,yBAAoD","sourcesContent":["import ContactSensor from './ContactSensor';\n\nexport default class Window extends ContactSensor {}\n"]}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 AdjustableControl_1 = __importDefault(require("./AdjustableControl"));
|
|
7
|
+
const AdjustablePercentageControl_1 = __importDefault(require("./AdjustablePercentageControl"));
|
|
8
|
+
const AirCondition_1 = __importDefault(require("./AirCondition"));
|
|
9
|
+
const Blind_1 = __importDefault(require("./Blind"));
|
|
10
|
+
const ContactSensor_1 = __importDefault(require("./ContactSensor"));
|
|
11
|
+
const Ct_1 = __importDefault(require("./Ct"));
|
|
12
|
+
const Dimmer_1 = __importDefault(require("./Dimmer"));
|
|
13
|
+
const Door_1 = __importDefault(require("./Door"));
|
|
14
|
+
const Gate_1 = __importDefault(require("./Gate"));
|
|
15
|
+
const Hue_1 = __importDefault(require("./Hue"));
|
|
16
|
+
const Light_1 = __importDefault(require("./Light"));
|
|
17
|
+
const Lock_1 = __importDefault(require("./Lock"));
|
|
18
|
+
const Motion_1 = __importDefault(require("./Motion"));
|
|
19
|
+
const ReadOnlyDetector_1 = __importDefault(require("./ReadOnlyDetector"));
|
|
20
|
+
const Slider_1 = __importDefault(require("./Slider"));
|
|
21
|
+
const Socket_1 = __importDefault(require("./Socket"));
|
|
22
|
+
const Temperature_1 = __importDefault(require("./Temperature"));
|
|
23
|
+
const Thermostat_1 = __importDefault(require("./Thermostat"));
|
|
24
|
+
const VacuumCleaner_1 = __importDefault(require("./VacuumCleaner"));
|
|
25
|
+
const Volume_1 = __importDefault(require("./Volume"));
|
|
26
|
+
const VolumeGroup_1 = __importDefault(require("./VolumeGroup"));
|
|
27
|
+
const Window_1 = __importDefault(require("./Window"));
|
|
28
|
+
exports.default = {
|
|
29
|
+
factory: (item) => {
|
|
30
|
+
if (item.type === AdjustableControl_1.default.type) {
|
|
31
|
+
return new AdjustableControl_1.default(item);
|
|
32
|
+
}
|
|
33
|
+
if (item.type === AdjustablePercentageControl_1.default.type) {
|
|
34
|
+
return new AdjustablePercentageControl_1.default(item);
|
|
35
|
+
}
|
|
36
|
+
if (item.type === AirCondition_1.default.type) {
|
|
37
|
+
return new AirCondition_1.default(item);
|
|
38
|
+
}
|
|
39
|
+
if (item.type === Blind_1.default.type) {
|
|
40
|
+
return new Blind_1.default(item);
|
|
41
|
+
}
|
|
42
|
+
if (item.type === ContactSensor_1.default.type) {
|
|
43
|
+
return new ContactSensor_1.default(item);
|
|
44
|
+
}
|
|
45
|
+
if (item.type === Ct_1.default.type) {
|
|
46
|
+
return new Ct_1.default(item);
|
|
47
|
+
}
|
|
48
|
+
if (item.type === Dimmer_1.default.type) {
|
|
49
|
+
return new Dimmer_1.default(item);
|
|
50
|
+
}
|
|
51
|
+
if (item.type === Door_1.default.type) {
|
|
52
|
+
return new Door_1.default(item);
|
|
53
|
+
}
|
|
54
|
+
if (item.type === Gate_1.default.type) {
|
|
55
|
+
return new Gate_1.default(item);
|
|
56
|
+
}
|
|
57
|
+
if (item.type === Hue_1.default.type) {
|
|
58
|
+
return new Hue_1.default(item);
|
|
59
|
+
}
|
|
60
|
+
if (item.type === Light_1.default.type) {
|
|
61
|
+
return new Light_1.default(item);
|
|
62
|
+
}
|
|
63
|
+
if (item.type === Lock_1.default.type) {
|
|
64
|
+
return new Lock_1.default(item);
|
|
65
|
+
}
|
|
66
|
+
if (item.type === Motion_1.default.type) {
|
|
67
|
+
return new Motion_1.default(item);
|
|
68
|
+
}
|
|
69
|
+
if (item.type === ReadOnlyDetector_1.default.type) {
|
|
70
|
+
return new ReadOnlyDetector_1.default(item);
|
|
71
|
+
}
|
|
72
|
+
if (item.type === Slider_1.default.type) {
|
|
73
|
+
return new Slider_1.default(item);
|
|
74
|
+
}
|
|
75
|
+
if (item.type === Socket_1.default.type) {
|
|
76
|
+
return new Socket_1.default(item);
|
|
77
|
+
}
|
|
78
|
+
if (item.type === Temperature_1.default.type) {
|
|
79
|
+
return new Temperature_1.default(item);
|
|
80
|
+
}
|
|
81
|
+
if (item.type === Thermostat_1.default.type) {
|
|
82
|
+
return new Thermostat_1.default(item);
|
|
83
|
+
}
|
|
84
|
+
if (item.type === VacuumCleaner_1.default.type) {
|
|
85
|
+
return new VacuumCleaner_1.default(item);
|
|
86
|
+
}
|
|
87
|
+
if (item.type === Volume_1.default.type) {
|
|
88
|
+
return new Volume_1.default(item);
|
|
89
|
+
}
|
|
90
|
+
if (item.type === VolumeGroup_1.default.type) {
|
|
91
|
+
return new VolumeGroup_1.default(item);
|
|
92
|
+
}
|
|
93
|
+
if (item.type === Window_1.default.type) {
|
|
94
|
+
return new Window_1.default(item);
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
},
|
|
98
|
+
AdjustableControl: AdjustableControl_1.default,
|
|
99
|
+
AdjustablePercentageControl: AdjustablePercentageControl_1.default,
|
|
100
|
+
AirCondition: AirCondition_1.default,
|
|
101
|
+
Blind: Blind_1.default,
|
|
102
|
+
ContactSensor: ContactSensor_1.default,
|
|
103
|
+
Ct: Ct_1.default,
|
|
104
|
+
Dimmer: Dimmer_1.default,
|
|
105
|
+
Door: Door_1.default,
|
|
106
|
+
Gate: Gate_1.default,
|
|
107
|
+
Hue: Hue_1.default,
|
|
108
|
+
Light: Light_1.default,
|
|
109
|
+
Lock: Lock_1.default,
|
|
110
|
+
Motion: Motion_1.default,
|
|
111
|
+
ReadOnlyDetector: ReadOnlyDetector_1.default,
|
|
112
|
+
Slider: Slider_1.default,
|
|
113
|
+
Socket: Socket_1.default,
|
|
114
|
+
Temperature: Temperature_1.default,
|
|
115
|
+
Thermostat: Thermostat_1.default,
|
|
116
|
+
VacuumCleaner: VacuumCleaner_1.default,
|
|
117
|
+
Volume: Volume_1.default,
|
|
118
|
+
VolumeGroup: VolumeGroup_1.default,
|
|
119
|
+
Window: Window_1.default,
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/index.ts"],"names":[],"mappings":";;;;;AAAA,4EAAoD;AACpD,gGAAwE;AACxE,kEAA0C;AAC1C,oDAA4B;AAC5B,oEAA4C;AAE5C,8CAAsB;AACtB,sDAA8B;AAC9B,kDAA0B;AAC1B,kDAA0B;AAC1B,gDAAwB;AACxB,oDAA4B;AAC5B,kDAA0B;AAC1B,sDAA8B;AAC9B,0EAAkD;AAClD,sDAA8B;AAC9B,sDAA8B;AAC9B,gEAAwC;AACxC,8DAAsC;AACtC,oEAA4C;AAC5C,sDAA8B;AAC9B,gEAAwC;AACxC,sDAA8B;AAG9B,kBAAe;IACX,OAAO,EAAE,CAAC,IAA+B,EAAkB,EAAE;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAiB,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,qCAA2B,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO,IAAI,qCAA2B,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAY,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,sBAAY,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAa,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,uBAAa,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAE,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,YAAE,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,cAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,cAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAG,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,aAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,cAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,0BAAgB,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,IAAI,0BAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAU,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,oBAAU,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAa,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,uBAAa,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,qBAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,iBAAiB,EAAjB,2BAAiB;IACjB,2BAA2B,EAA3B,qCAA2B;IAC3B,YAAY,EAAZ,sBAAY;IACZ,KAAK,EAAL,eAAK;IACL,aAAa,EAAb,uBAAa;IACb,EAAE,EAAF,YAAE;IACF,MAAM,EAAN,gBAAM;IACN,IAAI,EAAJ,cAAI;IACJ,IAAI,EAAJ,cAAI;IACJ,GAAG,EAAH,aAAG;IACH,KAAK,EAAL,eAAK;IACL,IAAI,EAAJ,cAAI;IACJ,MAAM,EAAN,gBAAM;IACN,gBAAgB,EAAhB,0BAAgB;IAChB,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,WAAW,EAAX,qBAAW;IACX,UAAU,EAAV,oBAAU;IACV,aAAa,EAAb,uBAAa;IACb,MAAM,EAAN,gBAAM;IACN,WAAW,EAAX,qBAAW;IACX,MAAM,EAAN,gBAAM;CACT,CAAC","sourcesContent":["import AdjustableControl from './AdjustableControl';\nimport AdjustablePercentageControl from './AdjustablePercentageControl';\nimport AirCondition from './AirCondition';\nimport Blind from './Blind';\nimport ContactSensor from './ContactSensor';\nimport type Control from './Control';\nimport Ct from './Ct';\nimport Dimmer from './Dimmer';\nimport Door from './Door';\nimport Gate from './Gate';\nimport Hue from './Hue';\nimport Light from './Light';\nimport Lock from './Lock';\nimport Motion from './Motion';\nimport ReadOnlyDetector from './ReadOnlyDetector';\nimport Slider from './Slider';\nimport Socket from './Socket';\nimport Temperature from './Temperature';\nimport Thermostat from './Thermostat';\nimport VacuumCleaner from './VacuumCleaner';\nimport Volume from './Volume';\nimport VolumeGroup from './VolumeGroup';\nimport Window from './Window';\nimport type { IotExternalPatternControl } from '../types';\n\nexport default {\n factory: (item: IotExternalPatternControl): Control | null => {\n if (item.type === AdjustableControl.type) {\n return new AdjustableControl(item);\n }\n if (item.type === AdjustablePercentageControl.type) {\n return new AdjustablePercentageControl(item);\n }\n if (item.type === AirCondition.type) {\n return new AirCondition(item);\n }\n if (item.type === Blind.type) {\n return new Blind(item);\n }\n if (item.type === ContactSensor.type) {\n return new ContactSensor(item);\n }\n if (item.type === Ct.type) {\n return new Ct(item);\n }\n if (item.type === Dimmer.type) {\n return new Dimmer(item);\n }\n if (item.type === Door.type) {\n return new Door(item);\n }\n if (item.type === Gate.type) {\n return new Gate(item);\n }\n if (item.type === Hue.type) {\n return new Hue(item);\n }\n if (item.type === Light.type) {\n return new Light(item);\n }\n if (item.type === Lock.type) {\n return new Lock(item);\n }\n if (item.type === Motion.type) {\n return new Motion(item);\n }\n if (item.type === ReadOnlyDetector.type) {\n return new ReadOnlyDetector(item);\n }\n if (item.type === Slider.type) {\n return new Slider(item);\n }\n if (item.type === Socket.type) {\n return new Socket(item);\n }\n if (item.type === Temperature.type) {\n return new Temperature(item);\n }\n if (item.type === Thermostat.type) {\n return new Thermostat(item);\n }\n if (item.type === VacuumCleaner.type) {\n return new VacuumCleaner(item);\n }\n if (item.type === Volume.type) {\n return new Volume(item);\n }\n if (item.type === VolumeGroup.type) {\n return new VolumeGroup(item);\n }\n if (item.type === Window.type) {\n return new Window(item);\n }\n return null;\n },\n AdjustableControl,\n AdjustablePercentageControl,\n AirCondition,\n Blind,\n ContactSensor,\n Ct,\n Dimmer,\n Door,\n Gate,\n Hue,\n Light,\n Lock,\n Motion,\n ReadOnlyDetector,\n Slider,\n Socket,\n Temperature,\n Thermostat,\n VacuumCleaner,\n Volume,\n VolumeGroup,\n Window,\n};\n"]}
|