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,34 @@
|
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
class Mode extends Base_1.default {
|
|
8
|
+
_supportedModes = [];
|
|
9
|
+
init(opts) {
|
|
10
|
+
super.init(opts);
|
|
11
|
+
if (!opts.supportedModes || !Array.isArray(opts.supportedModes) || opts.supportedModes.length === 0) {
|
|
12
|
+
throw new Error('Mode control requires supportedModes array with at least one mode');
|
|
13
|
+
}
|
|
14
|
+
if (!opts.instance || typeof opts.instance !== 'string') {
|
|
15
|
+
throw new Error('Mode control requires a valid instance string');
|
|
16
|
+
}
|
|
17
|
+
this._supportedModes = opts.supportedModes;
|
|
18
|
+
}
|
|
19
|
+
matches(event) {
|
|
20
|
+
return (Mode.matches(event) &&
|
|
21
|
+
// non-adjustable mode controller
|
|
22
|
+
'SetMode' === event?.directive?.header?.name &&
|
|
23
|
+
this.instance === event?.directive?.header?.instance &&
|
|
24
|
+
this.supportedModes.map(mode => mode.value).includes(event?.directive?.payload?.mode || ''));
|
|
25
|
+
}
|
|
26
|
+
alexaDirectiveValue(event) {
|
|
27
|
+
return event.directive.payload.mode;
|
|
28
|
+
}
|
|
29
|
+
get supportedModes() {
|
|
30
|
+
return this._supportedModes;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.default = Mode;
|
|
34
|
+
//# sourceMappingURL=Mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mode.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.ts"],"names":[],"mappings":";;;;;AAAA,kDAA2D;AAS3D,MAAqB,IAAK,SAAQ,cAAI;IAC1B,eAAe,GAKjB,EAAE,CAAC;IAET,IAAI,CAAC,IAA4B;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,CACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACnB,iCAAiC;YACjC,SAAS,KAAK,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI;YAC5C,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ;YACpD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAC9F,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,IAAI,cAAc;QAMd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;CACJ;AAzCD,uBAyCC","sourcesContent":["import Base, { type ControlStateInitObject } from './Base';\nimport type {\n AlexaV3ActionMapping,\n AlexaV3DirectiveValue,\n AlexaV3DiscoveryResponse,\n AlexaV3Request,\n AlexaV3StateMapping,\n} from '../../types';\n\nexport default class Mode extends Base {\n private _supportedModes: {\n value: string;\n actionMappings: AlexaV3ActionMapping[];\n discoveryResponse: AlexaV3DiscoveryResponse[];\n stateMappings: AlexaV3StateMapping[];\n }[] = [];\n\n init(opts: ControlStateInitObject): void {\n super.init(opts);\n if (!opts.supportedModes || !Array.isArray(opts.supportedModes) || opts.supportedModes.length === 0) {\n throw new Error('Mode control requires supportedModes array with at least one mode');\n }\n if (!opts.instance || typeof opts.instance !== 'string') {\n throw new Error('Mode control requires a valid instance string');\n }\n this._supportedModes = opts.supportedModes;\n }\n\n matches(event: AlexaV3Request): boolean {\n return (\n Mode.matches(event) &&\n // non-adjustable mode controller\n 'SetMode' === event?.directive?.header?.name &&\n this.instance === event?.directive?.header?.instance &&\n this.supportedModes.map(mode => mode.value).includes(event?.directive?.payload?.mode || '')\n );\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return event.directive.payload.mode;\n }\n\n get supportedModes(): {\n value: string;\n actionMappings: AlexaV3ActionMapping[];\n discoveryResponse: AlexaV3DiscoveryResponse[];\n stateMappings: AlexaV3StateMapping[];\n }[] {\n return this._supportedModes;\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
class Muted extends Base_1.default {
|
|
8
|
+
static matches(event) {
|
|
9
|
+
return event?.directive?.header?.namespace === 'Alexa.Speaker';
|
|
10
|
+
}
|
|
11
|
+
matches(event) {
|
|
12
|
+
return Muted.matches(event) && event?.directive?.header?.name === 'SetMute';
|
|
13
|
+
}
|
|
14
|
+
alexaDirectiveValue(event) {
|
|
15
|
+
return !!event.directive.payload.mute;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = Muted;
|
|
19
|
+
//# sourceMappingURL=Muted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Muted.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAG1B,MAAqB,KAAM,SAAQ,cAAI;IACnC,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,eAAe,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC;IAChF,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,CAAC;CACJ;AAZD,wBAYC","sourcesContent":["import Base from './Base';\nimport type { AlexaV3DirectiveValue, AlexaV3Request } from '../../types';\n\nexport default class Muted extends Base {\n static matches(event: AlexaV3Request): boolean {\n return event?.directive?.header?.namespace === 'Alexa.Speaker';\n }\n\n matches(event: AlexaV3Request): boolean {\n return Muted.matches(event) && event?.directive?.header?.name === 'SetMute';\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return !!event.directive.payload.mute;\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
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 AdjustableProperty_1 = __importDefault(require("./AdjustableProperty"));
|
|
7
|
+
class Percentage extends AdjustableProperty_1.default {
|
|
8
|
+
matches(event) {
|
|
9
|
+
return Percentage.matches(event);
|
|
10
|
+
}
|
|
11
|
+
alexaDirectiveValue(event) {
|
|
12
|
+
return Percentage.directive(event) === Percentage.SET
|
|
13
|
+
? super.alexaDirectiveValue(event)
|
|
14
|
+
: event.directive.payload.percentageDelta;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = Percentage;
|
|
18
|
+
//# sourceMappingURL=Percentage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Percentage.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.ts"],"names":[],"mappings":";;;;;AACA,8EAAsD;AAEtD,MAAqB,UAAW,SAAQ,4BAAkB;IACtD,OAAO,CAAC,KAAqB;QACzB,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,GAAG;YACjD,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC;IAClD,CAAC;CACJ;AAVD,6BAUC","sourcesContent":["import type { AlexaV3DirectiveValue, AlexaV3Request } from '../../types';\nimport AdjustableProperty from './AdjustableProperty';\n\nexport default class Percentage extends AdjustableProperty {\n matches(event: AlexaV3Request): boolean {\n return Percentage.matches(event);\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return Percentage.directive(event) === Percentage.SET\n ? super.alexaDirectiveValue(event)\n : event.directive.payload.percentageDelta;\n }\n}\n"]}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
class PowerState extends Base_1.default {
|
|
4
8
|
static matches(event) {
|
|
5
9
|
return event?.directive?.header?.namespace === 'Alexa.PowerController';
|
|
6
10
|
}
|
|
7
|
-
|
|
8
11
|
matches(event) {
|
|
9
12
|
return PowerState.matches(event);
|
|
10
13
|
}
|
|
11
|
-
|
|
12
14
|
static get ON() {
|
|
13
15
|
return 'ON';
|
|
14
16
|
}
|
|
15
|
-
|
|
16
17
|
static get OFF() {
|
|
17
18
|
return 'OFF';
|
|
18
19
|
}
|
|
19
|
-
|
|
20
20
|
alexaDirectiveValue(event) {
|
|
21
21
|
return event.directive.header.name === 'TurnOn' ? PowerState.ON : PowerState.OFF;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
exports.default = PowerState;
|
|
25
|
+
//# sourceMappingURL=PowerState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PowerState.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAG1B,MAAqB,UAAW,SAAQ,cAAI;IACxC,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,uBAAuB,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,EAAE;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IACrF,CAAC;CACJ;AApBD,6BAoBC","sourcesContent":["import Base from './Base';\nimport type { AlexaV3DirectiveName, AlexaV3DirectiveValue, AlexaV3Request } from '../../types';\n\nexport default class PowerState extends Base {\n static matches(event: AlexaV3Request): boolean {\n return event?.directive?.header?.namespace === 'Alexa.PowerController';\n }\n\n matches(event: AlexaV3Request): boolean {\n return PowerState.matches(event);\n }\n\n static get ON(): AlexaV3DirectiveName {\n return 'ON';\n }\n\n static get OFF(): AlexaV3DirectiveName {\n return 'OFF';\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return event.directive.header.name === 'TurnOn' ? PowerState.ON : PowerState.OFF;\n }\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
class TargetSetpoint extends Base_1.default {
|
|
8
|
+
static matches(event) {
|
|
9
|
+
return (event?.directive?.header?.name === 'SetTargetTemperature' ||
|
|
10
|
+
event?.directive?.header?.name === 'AdjustTargetTemperature');
|
|
11
|
+
}
|
|
12
|
+
matches(event) {
|
|
13
|
+
return TargetSetpoint.matches(event);
|
|
14
|
+
}
|
|
15
|
+
static directive(event) {
|
|
16
|
+
return event.directive.header.name === 'AdjustTargetTemperature' ? TargetSetpoint.ADJUST : TargetSetpoint.SET;
|
|
17
|
+
}
|
|
18
|
+
alexaDirectiveValue(event) {
|
|
19
|
+
return TargetSetpoint.directive(event) === TargetSetpoint.SET
|
|
20
|
+
? event.directive.payload.targetSetpoint.value
|
|
21
|
+
: event.directive.payload.targetSetpointDelta.value;
|
|
22
|
+
}
|
|
23
|
+
reportValue(value) {
|
|
24
|
+
return {
|
|
25
|
+
value,
|
|
26
|
+
scale: TargetSetpoint.CELSIUS_SCALE,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.default = TargetSetpoint;
|
|
31
|
+
//# sourceMappingURL=TargetSetpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetSetpoint.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAG1B,MAAqB,cAAe,SAAQ,cAAI;IAC5C,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,CACH,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,sBAAsB;YACzD,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,yBAAyB,CAC/D,CAAC;IACN,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAqB;QAClC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;IAClH,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,GAAG;YACzD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,cAAe,CAAC,KAAK;YAC/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAoB,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,OAAO;YACH,KAAK;YACL,KAAK,EAAE,cAAc,CAAC,aAAa;SACtC,CAAC;IACN,CAAC;CACJ;AA5BD,iCA4BC","sourcesContent":["import Base from './Base';\nimport type { AlexaV3DirectiveName, AlexaV3DirectiveValue, AlexaV3Request } from '../../types';\n\nexport default class TargetSetpoint extends Base {\n static matches(event: AlexaV3Request): boolean {\n return (\n event?.directive?.header?.name === 'SetTargetTemperature' ||\n event?.directive?.header?.name === 'AdjustTargetTemperature'\n );\n }\n\n matches(event: AlexaV3Request): boolean {\n return TargetSetpoint.matches(event);\n }\n\n static directive(event: AlexaV3Request): AlexaV3DirectiveName {\n return event.directive.header.name === 'AdjustTargetTemperature' ? TargetSetpoint.ADJUST : TargetSetpoint.SET;\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return TargetSetpoint.directive(event) === TargetSetpoint.SET\n ? event.directive.payload.targetSetpoint!.value\n : event.directive.payload.targetSetpointDelta!.value;\n }\n\n reportValue(value: number): any {\n return {\n value,\n scale: TargetSetpoint.CELSIUS_SCALE,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
class Temperature extends Base_1.default {
|
|
8
|
+
static matches(event) {
|
|
9
|
+
return event?.directive?.header?.namespace === 'Alexa.TemperatureSensor';
|
|
10
|
+
}
|
|
11
|
+
matches(event) {
|
|
12
|
+
return Temperature.matches(event);
|
|
13
|
+
}
|
|
14
|
+
reportValue(value) {
|
|
15
|
+
return {
|
|
16
|
+
value,
|
|
17
|
+
scale: Temperature.CELSIUS_SCALE,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = Temperature;
|
|
22
|
+
//# sourceMappingURL=Temperature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Temperature.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAG1B,MAAqB,WAAY,SAAQ,cAAI;IACzC,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,yBAAyB,CAAC;IAC7E,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,OAAO;YACH,KAAK;YACL,KAAK,EAAE,WAAW,CAAC,aAAa;SACnC,CAAC;IACN,CAAC;CACJ;AAfD,8BAeC","sourcesContent":["import Base from './Base';\nimport type { AlexaV3Request } from '../../types';\n\nexport default class Temperature extends Base {\n static matches(event: AlexaV3Request): boolean {\n return event?.directive?.header?.namespace === 'Alexa.TemperatureSensor';\n }\n\n matches(event: AlexaV3Request): boolean {\n return Temperature.matches(event);\n }\n\n reportValue(value: number): any {\n return {\n value,\n scale: Temperature.CELSIUS_SCALE,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 Utils_1 = require("../../Helpers/Utils");
|
|
7
|
+
const Base_1 = __importDefault(require("./Base"));
|
|
8
|
+
class ThermostatMode extends Base_1.default {
|
|
9
|
+
_supportedModes = [];
|
|
10
|
+
init(opts) {
|
|
11
|
+
super.init(opts);
|
|
12
|
+
if (!opts.supportedModes || !Array.isArray(opts.supportedModes) || opts.supportedModes.length === 0) {
|
|
13
|
+
throw new Error('ThermostatMode control requires supportedModes array with at least one mode');
|
|
14
|
+
}
|
|
15
|
+
// set mode to be AUTO for thermostats without mode at all
|
|
16
|
+
this.currentValue = this.setId ? undefined : ThermostatMode.AUTO;
|
|
17
|
+
this._supportedModes = opts.supportedModes;
|
|
18
|
+
this._supportedModesAsEnum = (0, Utils_1.asEnum)(this._supportedModes);
|
|
19
|
+
}
|
|
20
|
+
static matches(event) {
|
|
21
|
+
return event?.directive?.header?.name === 'SetThermostatMode';
|
|
22
|
+
}
|
|
23
|
+
matches(event) {
|
|
24
|
+
return ThermostatMode.matches(event);
|
|
25
|
+
}
|
|
26
|
+
alexaDirectiveValue(event) {
|
|
27
|
+
return event.directive.payload.thermostatMode?.value;
|
|
28
|
+
}
|
|
29
|
+
get supportedModes() {
|
|
30
|
+
return this._supportedModes;
|
|
31
|
+
}
|
|
32
|
+
static get AUTO() {
|
|
33
|
+
return 'AUTO';
|
|
34
|
+
}
|
|
35
|
+
static get COOL() {
|
|
36
|
+
return 'COOL';
|
|
37
|
+
}
|
|
38
|
+
static get ECO() {
|
|
39
|
+
return 'ECO';
|
|
40
|
+
}
|
|
41
|
+
static get HEAT() {
|
|
42
|
+
return 'HEAT';
|
|
43
|
+
}
|
|
44
|
+
static get OFF() {
|
|
45
|
+
return 'OFF';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.default = ThermostatMode;
|
|
49
|
+
//# sourceMappingURL=ThermostatMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThermostatMode.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.ts"],"names":[],"mappings":";;;;;AAEA,+CAA6C;AAC7C,kDAA2D;AAE3D,MAAqB,cAAe,SAAQ,cAAI;IACpC,eAAe,GAAa,EAAE,CAAC;IAEvC,IAAI,CAAC,IAA4B;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACnG,CAAC;QACD,0DAA0D;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAA0B,CAAC;QACvD,IAAI,CAAC,qBAAqB,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,mBAAmB,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,KAAqB;QACrC,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;IACzD,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,IAAI;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,IAAI;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,IAAI;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA7CD,iCA6CC","sourcesContent":["import type { AlexaV3DirectiveValue, AlexaV3Request } from '../../types';\n\nimport { asEnum } from '../../Helpers/Utils';\nimport Base, { type ControlStateInitObject } from './Base';\n\nexport default class ThermostatMode extends Base {\n private _supportedModes: string[] = [];\n\n init(opts: ControlStateInitObject): void {\n super.init(opts);\n if (!opts.supportedModes || !Array.isArray(opts.supportedModes) || opts.supportedModes.length === 0) {\n throw new Error('ThermostatMode control requires supportedModes array with at least one mode');\n }\n // set mode to be AUTO for thermostats without mode at all\n this.currentValue = this.setId ? undefined : ThermostatMode.AUTO;\n this._supportedModes = opts.supportedModes as string[];\n this._supportedModesAsEnum = asEnum(this._supportedModes);\n }\n\n static matches(event: AlexaV3Request): boolean {\n return event?.directive?.header?.name === 'SetThermostatMode';\n }\n\n matches(event: AlexaV3Request): boolean {\n return ThermostatMode.matches(event);\n }\n\n alexaDirectiveValue(event: AlexaV3Request): AlexaV3DirectiveValue {\n return event.directive.payload.thermostatMode?.value;\n }\n\n get supportedModes(): any[] {\n return this._supportedModes;\n }\n\n static get AUTO(): string {\n return 'AUTO';\n }\n static get COOL(): string {\n return 'COOL';\n }\n static get ECO(): string {\n return 'ECO';\n }\n static get HEAT(): string {\n return 'HEAT';\n }\n static get OFF(): string {\n return 'OFF';\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
|
+
exports.Volume = void 0;
|
|
7
|
+
const AdjustableProperty_1 = __importDefault(require("./AdjustableProperty"));
|
|
8
|
+
class Volume extends AdjustableProperty_1.default {
|
|
9
|
+
static matches(event) {
|
|
10
|
+
return event?.directive?.header?.namespace === 'Alexa.Speaker';
|
|
11
|
+
}
|
|
12
|
+
matches(event) {
|
|
13
|
+
return Volume.matches(event) && ['AdjustVolume', 'SetVolume'].includes(event?.directive?.header?.name);
|
|
14
|
+
}
|
|
15
|
+
static directive(event) {
|
|
16
|
+
return event.directive.header.name === 'AdjustVolume' ? Volume.ADJUST : Volume.SET;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Volume = Volume;
|
|
20
|
+
exports.default = Volume;
|
|
21
|
+
//# sourceMappingURL=Volume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.ts"],"names":[],"mappings":";;;;;;AAEA,8EAAsD;AAEtD,MAAa,MAAO,SAAQ,4BAAkB;IAC1C,MAAM,CAAC,OAAO,CAAC,KAAqB;QAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,eAAe,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,KAAqB;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAqB;QAClC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACvF,CAAC;CACJ;AAZD,wBAYC;AAED,kBAAe,MAAM,CAAC","sourcesContent":["import type { AlexaV3DirectiveName, AlexaV3Request } from '../../types';\n\nimport AdjustableProperty from './AdjustableProperty';\n\nexport class Volume extends AdjustableProperty {\n static matches(event: AlexaV3Request): boolean {\n return event?.directive?.header?.namespace === 'Alexa.Speaker';\n }\n\n matches(event: AlexaV3Request): boolean {\n return Volume.matches(event) && ['AdjustVolume', 'SetVolume'].includes(event?.directive?.header?.name);\n }\n\n static directive(event: AlexaV3Request): AlexaV3DirectiveName {\n return event.directive.header.name === 'AdjustVolume' ? Volume.ADJUST : Volume.SET;\n }\n}\n\nexport default Volume;\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 Base_1 = __importDefault(require("./Base"));
|
|
7
|
+
const AdjustableProperty_1 = __importDefault(require("./AdjustableProperty"));
|
|
8
|
+
const Brightness_1 = __importDefault(require("./Brightness"));
|
|
9
|
+
const Color_1 = __importDefault(require("./Color"));
|
|
10
|
+
const ColorTemperatureInKelvin_1 = __importDefault(require("./ColorTemperatureInKelvin"));
|
|
11
|
+
const DetectionState_1 = __importDefault(require("./DetectionState"));
|
|
12
|
+
const LockState_1 = __importDefault(require("./LockState"));
|
|
13
|
+
const Mode_1 = __importDefault(require("./Mode"));
|
|
14
|
+
const Muted_1 = __importDefault(require("./Muted"));
|
|
15
|
+
const Percentage_1 = __importDefault(require("./Percentage"));
|
|
16
|
+
const PowerState_1 = __importDefault(require("./PowerState"));
|
|
17
|
+
const TargetSetpoint_1 = __importDefault(require("./TargetSetpoint"));
|
|
18
|
+
const Temperature_1 = __importDefault(require("./Temperature"));
|
|
19
|
+
const ThermostatMode_1 = __importDefault(require("./ThermostatMode"));
|
|
20
|
+
const Volume_1 = __importDefault(require("./Volume"));
|
|
21
|
+
exports.default = {
|
|
22
|
+
Base: Base_1.default,
|
|
23
|
+
AdjustableProperty: AdjustableProperty_1.default,
|
|
24
|
+
Brightness: Brightness_1.default,
|
|
25
|
+
Color: Color_1.default,
|
|
26
|
+
ColorTemperatureInKelvin: ColorTemperatureInKelvin_1.default,
|
|
27
|
+
DetectionState: DetectionState_1.default,
|
|
28
|
+
LockState: LockState_1.default,
|
|
29
|
+
Mode: Mode_1.default,
|
|
30
|
+
Muted: Muted_1.default,
|
|
31
|
+
Percentage: Percentage_1.default,
|
|
32
|
+
PowerState: PowerState_1.default,
|
|
33
|
+
TargetSetpoint: TargetSetpoint_1.default,
|
|
34
|
+
Temperature: Temperature_1.default,
|
|
35
|
+
ThermostatMode: ThermostatMode_1.default,
|
|
36
|
+
Volume: Volume_1.default,
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/AlexaSmartHomeV3/Alexa/Properties/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,8EAAsD;AACtD,8DAAsC;AACtC,oDAA4B;AAC5B,0FAAkE;AAClE,sEAA8C;AAC9C,4DAAoC;AACpC,kDAA0B;AAC1B,oDAA4B;AAC5B,8DAAsC;AACtC,8DAAsC;AACtC,sEAA8C;AAC9C,gEAAwC;AACxC,sEAA8C;AAC9C,sDAA8B;AAE9B,kBAAe;IACX,IAAI,EAAJ,cAAI;IACJ,kBAAkB,EAAlB,4BAAkB;IAClB,UAAU,EAAV,oBAAU;IACV,KAAK,EAAL,eAAK;IACL,wBAAwB,EAAxB,kCAAwB;IACxB,cAAc,EAAd,wBAAc;IACd,SAAS,EAAT,mBAAS;IACT,IAAI,EAAJ,cAAI;IACJ,KAAK,EAAL,eAAK;IACL,UAAU,EAAV,oBAAU;IACV,UAAU,EAAV,oBAAU;IACV,cAAc,EAAd,wBAAc;IACd,WAAW,EAAX,qBAAW;IACX,cAAc,EAAd,wBAAc;IACd,MAAM,EAAN,gBAAM;CACT,CAAC","sourcesContent":["import Base from './Base';\nimport AdjustableProperty from './AdjustableProperty';\nimport Brightness from './Brightness';\nimport Color from './Color';\nimport ColorTemperatureInKelvin from './ColorTemperatureInKelvin';\nimport DetectionState from './DetectionState';\nimport LockState from './LockState';\nimport Mode from './Mode';\nimport Muted from './Muted';\nimport Percentage from './Percentage';\nimport PowerState from './PowerState';\nimport TargetSetpoint from './TargetSetpoint';\nimport Temperature from './Temperature';\nimport ThermostatMode from './ThermostatMode';\nimport Volume from './Volume';\n\nexport default {\n Base,\n AdjustableProperty,\n Brightness,\n Color,\n ColorTemperatureInKelvin,\n DetectionState,\n LockState,\n Mode,\n Muted,\n Percentage,\n PowerState,\n TargetSetpoint,\n Temperature,\n ThermostatMode,\n Volume,\n};\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 Control_1 = __importDefault(require("./Control"));
|
|
7
|
+
const Base_1 = require("../Alexa/Properties/Base");
|
|
8
|
+
class AdjustableControl extends Control_1.default {
|
|
9
|
+
adjustableProperties() {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
isAdjustDirective(event) {
|
|
13
|
+
return this.adjustableProperties().some(property => property.matches(event) && property.directive(event) === Base_1.Base.ADJUST);
|
|
14
|
+
}
|
|
15
|
+
valueSetter(event) {
|
|
16
|
+
return this.isAdjustDirective(event) ? this.adjustValue.bind(this) : super.valueSetter(event);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = AdjustableControl;
|
|
20
|
+
//# sourceMappingURL=AdjustableControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdjustableControl.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/AdjustableControl.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,mDAAkE;AAGlE,MAAqB,iBAAkB,SAAQ,iBAAO;IAClD,oBAAoB;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,KAAqB;QACnC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACnC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,WAAc,CAAC,MAAM,CAC7F,CAAC;IACN,CAAC;IAED,WAAW,CACP,KAAqB;QAErB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAClG,CAAC;CACJ;AAhBD,oCAgBC","sourcesContent":["import Control from './Control';\nimport { Base as PropertiesBase } from '../Alexa/Properties/Base';\nimport type { AlexaV3DirectiveValue, AlexaV3Request } from '../types';\n\nexport default class AdjustableControl extends Control {\n adjustableProperties(): (typeof PropertiesBase)[] {\n return [];\n }\n\n isAdjustDirective(event: AlexaV3Request): boolean {\n return this.adjustableProperties().some(\n property => property.matches(event) && property.directive(event) === PropertiesBase.ADJUST,\n );\n }\n\n valueSetter(\n event: AlexaV3Request,\n ): (event: AlexaV3Request, property: PropertiesBase) => Promise<AlexaV3DirectiveValue> {\n return this.isAdjustDirective(event) ? this.adjustValue.bind(this) : super.valueSetter(event);\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 Capabilities_1 = __importDefault(require("../Alexa/Capabilities"));
|
|
7
|
+
const AdjustableControl_1 = __importDefault(require("./AdjustableControl"));
|
|
8
|
+
const Percentage_1 = __importDefault(require("../Alexa/Properties/Percentage"));
|
|
9
|
+
class AdjustablePercentageControl extends AdjustableControl_1.default {
|
|
10
|
+
adjustableProperties() {
|
|
11
|
+
return [Percentage_1.default];
|
|
12
|
+
}
|
|
13
|
+
initCapabilities() {
|
|
14
|
+
const result = [new Capabilities_1.default.PercentageController()];
|
|
15
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
16
|
+
property.init(this.percentageInitObject());
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
async setState(property, value) {
|
|
21
|
+
// todo: byON
|
|
22
|
+
return super.setState(property, value);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = AdjustablePercentageControl;
|
|
26
|
+
//# sourceMappingURL=AdjustablePercentageControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdjustablePercentageControl.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.ts"],"names":[],"mappings":";;;;;AAAA,yEAAiD;AACjD,4EAAoD;AACpD,gFAAwD;AAIxD,MAAqB,2BAA4B,SAAQ,2BAAiB;IACtE,oBAAoB;QAChB,OAAO,CAAC,oBAAU,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAuB,CAAC,IAAI,sBAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC7E,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,KAAK,CAAC,QAAQ,CAAC,QAAwB,EAAE,KAA0B;QAC/D,aAAa;QACb,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ;AAjBD,8CAiBC","sourcesContent":["import Capabilities from '../Alexa/Capabilities';\nimport AdjustableControl from './AdjustableControl';\nimport Percentage from '../Alexa/Properties/Percentage';\nimport type { Base as PropertiesBase } from '../Alexa/Properties/Base';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\n\nexport default class AdjustablePercentageControl extends AdjustableControl {\n adjustableProperties(): (typeof PropertiesBase)[] {\n return [Percentage];\n }\n\n initCapabilities(): CapabilitiesBase[] {\n const result: CapabilitiesBase[] = [new Capabilities.PercentageController()];\n for (const property of result.flatMap(item => item.properties)) {\n property.init(this.percentageInitObject());\n }\n return result;\n }\n\n async setState(property: PropertiesBase, value: ioBroker.StateValue): Promise<void> {\n // todo: byON\n return super.setState(property, value);\n }\n}\n"]}
|
|
@@ -0,0 +1,148 @@
|
|
|
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 ThermostatController_1 = __importDefault(require("../Alexa/Capabilities/ThermostatController"));
|
|
7
|
+
const ThermostatMode_1 = __importDefault(require("../Alexa/Properties/ThermostatMode"));
|
|
8
|
+
const PowerController_1 = __importDefault(require("../Alexa/Capabilities/PowerController"));
|
|
9
|
+
const TemperatureSensor_1 = __importDefault(require("../Alexa/Capabilities/TemperatureSensor"));
|
|
10
|
+
const Temperature_1 = __importDefault(require("../Alexa/Properties/Temperature"));
|
|
11
|
+
const PowerState_1 = __importDefault(require("../Alexa/Properties/PowerState"));
|
|
12
|
+
const AdjustableControl_1 = __importDefault(require("./AdjustableControl"));
|
|
13
|
+
const Utils_1 = require("../Helpers/Utils");
|
|
14
|
+
const TargetSetpoint_1 = __importDefault(require("../Alexa/Properties/TargetSetpoint"));
|
|
15
|
+
const AdapterProvider_1 = __importDefault(require("../Helpers/AdapterProvider"));
|
|
16
|
+
class AirCondition extends AdjustableControl_1.default {
|
|
17
|
+
_thermostatController;
|
|
18
|
+
_thermostatMode;
|
|
19
|
+
_powerController;
|
|
20
|
+
_powerState;
|
|
21
|
+
_lastKnownMode;
|
|
22
|
+
get categories() {
|
|
23
|
+
return ['AIR_CONDITIONER'];
|
|
24
|
+
}
|
|
25
|
+
adjustableProperties() {
|
|
26
|
+
return [TargetSetpoint_1.default];
|
|
27
|
+
}
|
|
28
|
+
get dedicatedOnOff() {
|
|
29
|
+
return this.states[this.statesMap.power] !== undefined;
|
|
30
|
+
}
|
|
31
|
+
initCapabilities() {
|
|
32
|
+
this._thermostatController = new ThermostatController_1.default();
|
|
33
|
+
this._thermostatMode = this._thermostatController.thermostatMode;
|
|
34
|
+
this._powerController = new PowerController_1.default();
|
|
35
|
+
this._powerState = this._powerController.powerState;
|
|
36
|
+
const result = [new TemperatureSensor_1.default(), this._thermostatController, this._powerController];
|
|
37
|
+
for (const property of result.flatMap(item => item.properties)) {
|
|
38
|
+
const initObject = this.composeInitObject(property);
|
|
39
|
+
if (initObject) {
|
|
40
|
+
property.init(initObject);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error(`Unable to initialize property ${property.propertyName}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
async setState(property, value) {
|
|
49
|
+
// if we set power ON/OFF via thermostat mode
|
|
50
|
+
if (property.propertyName === PowerState_1.default.propertyName && !this.dedicatedOnOff) {
|
|
51
|
+
// set the mode to the last known value or AUTO by switching power ON
|
|
52
|
+
if (value) {
|
|
53
|
+
this._lastKnownMode ||= this._thermostatMode.supportedModesAsEnum[ThermostatMode_1.default.AUTO];
|
|
54
|
+
await AdapterProvider_1.default.setState(this._thermostatMode.setId, this._lastKnownMode);
|
|
55
|
+
this._thermostatMode.currentValue = this._lastKnownMode;
|
|
56
|
+
this._powerState.currentValue = true;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// set mode to OFF
|
|
60
|
+
const modeOffValue = this._thermostatMode.supportedModesAsEnum[ThermostatMode_1.default.OFF];
|
|
61
|
+
await AdapterProvider_1.default.setState(this._thermostatMode.setId, modeOffValue);
|
|
62
|
+
this._thermostatMode.currentValue = this._lastKnownMode;
|
|
63
|
+
this._powerState.currentValue = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// just set the property
|
|
68
|
+
await AdapterProvider_1.default.setState(property.setId, value);
|
|
69
|
+
property.currentValue = value;
|
|
70
|
+
if (property.propertyName === ThermostatMode_1.default.propertyName) {
|
|
71
|
+
this._lastKnownMode = value;
|
|
72
|
+
if (!this.dedicatedOnOff) {
|
|
73
|
+
this._powerState.currentValue =
|
|
74
|
+
value !== this._thermostatMode.supportedModesAsEnum[ThermostatMode_1.default.OFF];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async getOrRetrieveCurrentValue(property) {
|
|
80
|
+
if (property.currentValue === undefined) {
|
|
81
|
+
property.currentValue = await AdapterProvider_1.default.getState(property.getId);
|
|
82
|
+
// convert mode != OFF to power = true
|
|
83
|
+
if (property.propertyName === this._powerState.propertyName && !this.dedicatedOnOff) {
|
|
84
|
+
property.currentValue =
|
|
85
|
+
property.currentValue !== this._thermostatMode.supportedModesAsEnum[ThermostatMode_1.default.OFF];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (property.currentValue === undefined) {
|
|
89
|
+
throw new Error(`unable to retrieve ${property.getId}`);
|
|
90
|
+
}
|
|
91
|
+
return property.currentValue;
|
|
92
|
+
}
|
|
93
|
+
composeInitObject(property) {
|
|
94
|
+
const map = this.statesMap;
|
|
95
|
+
if (property.propertyName === PowerState_1.default.propertyName) {
|
|
96
|
+
return {
|
|
97
|
+
setState: this.states[map.power] || this.states[map.mode],
|
|
98
|
+
getState: this.states[map.power] || this.states[map.mode],
|
|
99
|
+
alexaSetter: function (alexaValue) {
|
|
100
|
+
return alexaValue === PowerState_1.default.ON;
|
|
101
|
+
},
|
|
102
|
+
alexaGetter: function (value) {
|
|
103
|
+
return value ? PowerState_1.default.ON : PowerState_1.default.OFF;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (property.propertyName === Temperature_1.default.propertyName) {
|
|
108
|
+
return {
|
|
109
|
+
setState: this.states[map.set],
|
|
110
|
+
getState: this.states[map.actual] || this.states[map.set],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (property.propertyName === TargetSetpoint_1.default.propertyName) {
|
|
114
|
+
// const range = Utils.configuredRangeOrDefault(this.states[map.set]);
|
|
115
|
+
return {
|
|
116
|
+
setState: this.states[map.set],
|
|
117
|
+
getState: this.states[map.actual] || this.states[map.set],
|
|
118
|
+
alexaSetter: function (alexaValue) {
|
|
119
|
+
return (0, Utils_1.ensureValueInRange)(alexaValue, this.valuesRangeMin, this.valuesRangeMax);
|
|
120
|
+
},
|
|
121
|
+
alexaGetter: function (value) {
|
|
122
|
+
return value || 0;
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (property.propertyName === ThermostatMode_1.default.propertyName) {
|
|
127
|
+
return {
|
|
128
|
+
setState: this.states[map.mode],
|
|
129
|
+
getState: this.states[map.mode],
|
|
130
|
+
alexaSetter: function (alexaValue) {
|
|
131
|
+
return this.supportedModesAsEnum[alexaValue];
|
|
132
|
+
},
|
|
133
|
+
alexaGetter: function (value) {
|
|
134
|
+
return this.supportedModesAsEnum[value];
|
|
135
|
+
},
|
|
136
|
+
supportedModes: [
|
|
137
|
+
ThermostatMode_1.default.AUTO,
|
|
138
|
+
ThermostatMode_1.default.COOL,
|
|
139
|
+
ThermostatMode_1.default.ECO,
|
|
140
|
+
ThermostatMode_1.default.HEAT,
|
|
141
|
+
ThermostatMode_1.default.OFF,
|
|
142
|
+
],
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.default = AirCondition;
|
|
148
|
+
//# sourceMappingURL=AirCondition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirCondition.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/AirCondition.ts"],"names":[],"mappings":"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","sourcesContent":["import ThermostatController from '../Alexa/Capabilities/ThermostatController';\nimport ThermostatMode from '../Alexa/Properties/ThermostatMode';\nimport PowerController from '../Alexa/Capabilities/PowerController';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\nimport TemperatureSensor from '../Alexa/Capabilities/TemperatureSensor';\nimport Temperature from '../Alexa/Properties/Temperature';\nimport PowerState from '../Alexa/Properties/PowerState';\nimport AdjustableControl from './AdjustableControl';\nimport { ensureValueInRange } from '../Helpers/Utils';\nimport TargetSetpoint from '../Alexa/Properties/TargetSetpoint';\nimport type { Base as PropertiesBase } from '../Alexa/Properties/Base';\nimport AdapterProvider from '../Helpers/AdapterProvider';\nimport type { AlexaV3Category, AlexaV3DirectiveValue, IotExternalDetectorState } from '../types';\n\nexport default class AirCondition extends AdjustableControl {\n private _thermostatController: ThermostatController | undefined;\n private _thermostatMode: ThermostatMode | undefined;\n private _powerController: PowerController | undefined;\n private _powerState: PowerState | undefined;\n private _lastKnownMode: number | string | undefined;\n\n get categories(): AlexaV3Category[] {\n return ['AIR_CONDITIONER'];\n }\n\n adjustableProperties(): (typeof PropertiesBase)[] {\n return [TargetSetpoint];\n }\n\n get dedicatedOnOff(): boolean {\n return this.states[this.statesMap.power] !== undefined;\n }\n\n initCapabilities(): CapabilitiesBase[] {\n this._thermostatController = new ThermostatController();\n this._thermostatMode = this._thermostatController.thermostatMode;\n this._powerController = new PowerController();\n this._powerState = this._powerController.powerState;\n const result: CapabilitiesBase[] = [new TemperatureSensor(), this._thermostatController, this._powerController];\n for (const property of result.flatMap(item => item.properties)) {\n const initObject = this.composeInitObject(property);\n if (initObject) {\n property.init(initObject);\n } else {\n throw new Error(`Unable to initialize property ${property.propertyName}`);\n }\n }\n return result;\n }\n\n async setState(property: PropertiesBase, value: ioBroker.StateValue | undefined): Promise<void> {\n // if we set power ON/OFF via thermostat mode\n if (property.propertyName === PowerState.propertyName && !this.dedicatedOnOff) {\n // set the mode to the last known value or AUTO by switching power ON\n if (value) {\n this._lastKnownMode ||= this._thermostatMode!.supportedModesAsEnum[ThermostatMode.AUTO];\n await AdapterProvider.setState(this._thermostatMode!.setId, this._lastKnownMode);\n this._thermostatMode!.currentValue = this._lastKnownMode;\n this._powerState!.currentValue = true;\n } else {\n // set mode to OFF\n const modeOffValue = this._thermostatMode!.supportedModesAsEnum[ThermostatMode.OFF];\n await AdapterProvider.setState(this._thermostatMode!.setId, modeOffValue);\n this._thermostatMode!.currentValue = this._lastKnownMode;\n this._powerState!.currentValue = false;\n }\n } else {\n // just set the property\n await AdapterProvider.setState(property.setId, value!);\n property.currentValue = value;\n\n if (property.propertyName === ThermostatMode.propertyName) {\n this._lastKnownMode = value as string;\n if (!this.dedicatedOnOff) {\n this._powerState!.currentValue =\n value !== this._thermostatMode!.supportedModesAsEnum[ThermostatMode.OFF];\n }\n }\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 mode != OFF to power = true\n if (property.propertyName === this._powerState!.propertyName && !this.dedicatedOnOff) {\n property.currentValue =\n property.currentValue !== this._thermostatMode!.supportedModesAsEnum[ThermostatMode.OFF];\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 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.mode]!,\n getState: this.states[map.power] || this.states[map.mode]!,\n alexaSetter: function (alexaValue: AlexaV3DirectiveValue): boolean {\n return alexaValue === PowerState.ON;\n },\n alexaGetter: function (value: ioBroker.StateValue | undefined): AlexaV3DirectiveValue {\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 // const range = Utils.configuredRangeOrDefault(this.states[map.set]);\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 || 0;\n },\n };\n }\n\n if (property.propertyName === ThermostatMode.propertyName) {\n return {\n setState: this.states[map.mode]!,\n getState: this.states[map.mode]!,\n alexaSetter: function (\n this: PropertiesBase,\n alexaValue: AlexaV3DirectiveValue,\n ): ioBroker.StateValue | undefined {\n return this.supportedModesAsEnum[alexaValue as string];\n },\n alexaGetter: function (\n this: PropertiesBase,\n value: ioBroker.StateValue | undefined,\n ): AlexaV3DirectiveValue {\n return this.supportedModesAsEnum[value as string];\n },\n supportedModes: [\n ThermostatMode.AUTO,\n ThermostatMode.COOL,\n ThermostatMode.ECO,\n ThermostatMode.HEAT,\n ThermostatMode.OFF,\n ],\n };\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 Blind extends AdjustablePercentageControl_1.default {
|
|
8
|
+
get categories() {
|
|
9
|
+
return ['INTERIOR_BLIND'];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = Blind;
|
|
13
|
+
//# sourceMappingURL=Blind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blind.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/Blind.ts"],"names":[],"mappings":";;;;;AAAA,gGAAwE;AAGxE,MAAqB,KAAM,SAAQ,qCAA2B;IAC1D,IAAI,UAAU;QACV,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9B,CAAC;CACJ;AAJD,wBAIC","sourcesContent":["import AdjustablePercentageControl from './AdjustablePercentageControl';\nimport type { AlexaV3Category } from '../types';\n\nexport default class Blind extends AdjustablePercentageControl {\n get categories(): AlexaV3Category[] {\n return ['INTERIOR_BLIND'];\n }\n}\n"]}
|
|
@@ -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 ContactSensor_1 = require("../Alexa/Capabilities/ContactSensor");
|
|
7
|
+
const ReadOnlyDetector_1 = __importDefault(require("./ReadOnlyDetector"));
|
|
8
|
+
class ContactSensor extends ReadOnlyDetector_1.default {
|
|
9
|
+
get capability() {
|
|
10
|
+
return new ContactSensor_1.ContactSensor();
|
|
11
|
+
}
|
|
12
|
+
get categories() {
|
|
13
|
+
return ['CONTACT_SENSOR'];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.default = ContactSensor;
|
|
17
|
+
//# sourceMappingURL=ContactSensor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactSensor.js","sourceRoot":"","sources":["../../../../src/lib/AlexaSmartHomeV3/Controls/ContactSensor.ts"],"names":[],"mappings":";;;;;AAAA,uEAAiG;AAEjG,0EAAkD;AAGlD,MAAqB,aAAc,SAAQ,0BAAgB;IACvD,IAAI,UAAU;QACV,OAAO,IAAI,6BAAyB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,UAAU;QACV,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9B,CAAC;CACJ;AARD,gCAQC","sourcesContent":["import { ContactSensor as ContactSensorCapabilities } from '../Alexa/Capabilities/ContactSensor';\nimport type { Base as CapabilitiesBase } from '../Alexa/Capabilities/Base';\nimport ReadOnlyDetector from './ReadOnlyDetector';\nimport type { AlexaV3Category } from '../types';\n\nexport default class ContactSensor extends ReadOnlyDetector {\n get capability(): CapabilitiesBase | undefined {\n return new ContactSensorCapabilities();\n }\n\n get categories(): AlexaV3Category[] {\n return ['CONTACT_SENSOR'];\n }\n}\n"]}
|