@homebridge-plugins/homebridge-tuya 2.0.2-beta.3

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.
Files changed (191) hide show
  1. package/.idea/copilot.data.migration.agent.xml +6 -0
  2. package/.idea/copilot.data.migration.ask.xml +6 -0
  3. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  4. package/.idea/copilot.data.migration.edit.xml +6 -0
  5. package/.idea/dictionaries/benpotter.xml +3 -0
  6. package/.idea/homebridge-tuya.iml +8 -0
  7. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  8. package/.idea/modules.xml +8 -0
  9. package/.idea/vcs.xml +6 -0
  10. package/.idea/workspace.xml +64 -0
  11. package/ADVANCED_OPTIONS.md +267 -0
  12. package/CHANGELOG.md +127 -0
  13. package/LICENSE +20 -0
  14. package/README.md +206 -0
  15. package/SUPPORTED_DEVICES.md +206 -0
  16. package/config.schema.json +550 -0
  17. package/dist/accessory/AccessoryFactory.js +274 -0
  18. package/dist/accessory/AccessoryFactory.js.map +1 -0
  19. package/dist/accessory/AirConditionerAccessory.js +307 -0
  20. package/dist/accessory/AirConditionerAccessory.js.map +1 -0
  21. package/dist/accessory/AirPurifierAccessory.js +90 -0
  22. package/dist/accessory/AirPurifierAccessory.js.map +1 -0
  23. package/dist/accessory/AirQualitySensorAccessory.js +30 -0
  24. package/dist/accessory/AirQualitySensorAccessory.js.map +1 -0
  25. package/dist/accessory/BaseAccessory.js +295 -0
  26. package/dist/accessory/BaseAccessory.js.map +1 -0
  27. package/dist/accessory/CameraAccessory.js +117 -0
  28. package/dist/accessory/CameraAccessory.js.map +1 -0
  29. package/dist/accessory/CarbonDioxideSensorAccessory.js +52 -0
  30. package/dist/accessory/CarbonDioxideSensorAccessory.js.map +1 -0
  31. package/dist/accessory/CarbonMonoxideSensorAccessory.js +52 -0
  32. package/dist/accessory/CarbonMonoxideSensorAccessory.js.map +1 -0
  33. package/dist/accessory/ContactSensorAccessory.js +30 -0
  34. package/dist/accessory/ContactSensorAccessory.js.map +1 -0
  35. package/dist/accessory/DehumidifierAccessory.js +68 -0
  36. package/dist/accessory/DehumidifierAccessory.js.map +1 -0
  37. package/dist/accessory/DiffuserAccessory.js +55 -0
  38. package/dist/accessory/DiffuserAccessory.js.map +1 -0
  39. package/dist/accessory/DimmerAccessory.js +94 -0
  40. package/dist/accessory/DimmerAccessory.js.map +1 -0
  41. package/dist/accessory/DoorbellAccessory.js +89 -0
  42. package/dist/accessory/DoorbellAccessory.js.map +1 -0
  43. package/dist/accessory/ExtractionHoodAccessory.js +118 -0
  44. package/dist/accessory/ExtractionHoodAccessory.js.map +1 -0
  45. package/dist/accessory/FanAccessory.js +123 -0
  46. package/dist/accessory/FanAccessory.js.map +1 -0
  47. package/dist/accessory/GarageDoorAccessory.js +69 -0
  48. package/dist/accessory/GarageDoorAccessory.js.map +1 -0
  49. package/dist/accessory/HeaterAccessory.js +96 -0
  50. package/dist/accessory/HeaterAccessory.js.map +1 -0
  51. package/dist/accessory/HumanPresenceSensorAccessory.js +20 -0
  52. package/dist/accessory/HumanPresenceSensorAccessory.js.map +1 -0
  53. package/dist/accessory/HumidifierAccessory.js +135 -0
  54. package/dist/accessory/HumidifierAccessory.js.map +1 -0
  55. package/dist/accessory/IRAirConditionerAccessory.js +285 -0
  56. package/dist/accessory/IRAirConditionerAccessory.js.map +1 -0
  57. package/dist/accessory/IRControlHubAccessory.js +49 -0
  58. package/dist/accessory/IRControlHubAccessory.js.map +1 -0
  59. package/dist/accessory/IRControlHubSubAccessory.js +53 -0
  60. package/dist/accessory/IRControlHubSubAccessory.js.map +1 -0
  61. package/dist/accessory/IRGenericAccessory.js +50 -0
  62. package/dist/accessory/IRGenericAccessory.js.map +1 -0
  63. package/dist/accessory/LeakSensorAccessory.js +36 -0
  64. package/dist/accessory/LeakSensorAccessory.js.map +1 -0
  65. package/dist/accessory/LightAccessory.js +36 -0
  66. package/dist/accessory/LightAccessory.js.map +1 -0
  67. package/dist/accessory/LightSensorAccessory.js +32 -0
  68. package/dist/accessory/LightSensorAccessory.js.map +1 -0
  69. package/dist/accessory/LocationWeatherAccessory.js +72 -0
  70. package/dist/accessory/LocationWeatherAccessory.js.map +1 -0
  71. package/dist/accessory/LockAccessory.js +56 -0
  72. package/dist/accessory/LockAccessory.js.map +1 -0
  73. package/dist/accessory/MotionSensorAccessory.js +20 -0
  74. package/dist/accessory/MotionSensorAccessory.js.map +1 -0
  75. package/dist/accessory/OutletAccessory.js +23 -0
  76. package/dist/accessory/OutletAccessory.js.map +1 -0
  77. package/dist/accessory/PetFeederAccessory.js +139 -0
  78. package/dist/accessory/PetFeederAccessory.js.map +1 -0
  79. package/dist/accessory/SceneAccessory.js +32 -0
  80. package/dist/accessory/SceneAccessory.js.map +1 -0
  81. package/dist/accessory/SceneSwitchAccessory.js +44 -0
  82. package/dist/accessory/SceneSwitchAccessory.js.map +1 -0
  83. package/dist/accessory/SecuritySystemAccessory.js +30 -0
  84. package/dist/accessory/SecuritySystemAccessory.js.map +1 -0
  85. package/dist/accessory/SmokeSensorAccessory.js +35 -0
  86. package/dist/accessory/SmokeSensorAccessory.js.map +1 -0
  87. package/dist/accessory/SwitchAccessory.js +86 -0
  88. package/dist/accessory/SwitchAccessory.js.map +1 -0
  89. package/dist/accessory/TemperatureHumiditySensorAccessory.js +24 -0
  90. package/dist/accessory/TemperatureHumiditySensorAccessory.js.map +1 -0
  91. package/dist/accessory/ThermostatAccessory.js +190 -0
  92. package/dist/accessory/ThermostatAccessory.js.map +1 -0
  93. package/dist/accessory/ValveAccessory.js +45 -0
  94. package/dist/accessory/ValveAccessory.js.map +1 -0
  95. package/dist/accessory/VibrationSensorAccessory.js +42 -0
  96. package/dist/accessory/VibrationSensorAccessory.js.map +1 -0
  97. package/dist/accessory/WeatherStationAccessory.js +59 -0
  98. package/dist/accessory/WeatherStationAccessory.js.map +1 -0
  99. package/dist/accessory/WetBulbGlobeTemperatureAccessory.js +23 -0
  100. package/dist/accessory/WetBulbGlobeTemperatureAccessory.js.map +1 -0
  101. package/dist/accessory/WhiteNoiseLightAccessory.js +59 -0
  102. package/dist/accessory/WhiteNoiseLightAccessory.js.map +1 -0
  103. package/dist/accessory/WindowAccessory.js +14 -0
  104. package/dist/accessory/WindowAccessory.js.map +1 -0
  105. package/dist/accessory/WindowCoveringAccessory.js +156 -0
  106. package/dist/accessory/WindowCoveringAccessory.js.map +1 -0
  107. package/dist/accessory/WirelessSwitchAccessory.js +42 -0
  108. package/dist/accessory/WirelessSwitchAccessory.js.map +1 -0
  109. package/dist/accessory/characteristic/Active.js +23 -0
  110. package/dist/accessory/characteristic/Active.js.map +1 -0
  111. package/dist/accessory/characteristic/AirQuality.js +75 -0
  112. package/dist/accessory/characteristic/AirQuality.js.map +1 -0
  113. package/dist/accessory/characteristic/CurrentRelativeHumidity.js +24 -0
  114. package/dist/accessory/characteristic/CurrentRelativeHumidity.js.map +1 -0
  115. package/dist/accessory/characteristic/CurrentTemperature.js +24 -0
  116. package/dist/accessory/characteristic/CurrentTemperature.js.map +1 -0
  117. package/dist/accessory/characteristic/CurrentWeather.js +51 -0
  118. package/dist/accessory/characteristic/CurrentWeather.js.map +1 -0
  119. package/dist/accessory/characteristic/CurrentWeatherByOpenMeteo.js +81 -0
  120. package/dist/accessory/characteristic/CurrentWeatherByOpenMeteo.js.map +1 -0
  121. package/dist/accessory/characteristic/CurrentWetBulbGlobeTemperature.js +50 -0
  122. package/dist/accessory/characteristic/CurrentWetBulbGlobeTemperature.js.map +1 -0
  123. package/dist/accessory/characteristic/EnergyUsage.js +103 -0
  124. package/dist/accessory/characteristic/EnergyUsage.js.map +1 -0
  125. package/dist/accessory/characteristic/Light.js +269 -0
  126. package/dist/accessory/characteristic/Light.js.map +1 -0
  127. package/dist/accessory/characteristic/LightSensor.js +24 -0
  128. package/dist/accessory/characteristic/LightSensor.js.map +1 -0
  129. package/dist/accessory/characteristic/LockPhysicalControls.js +22 -0
  130. package/dist/accessory/characteristic/LockPhysicalControls.js.map +1 -0
  131. package/dist/accessory/characteristic/MotionDetected.js +23 -0
  132. package/dist/accessory/characteristic/MotionDetected.js.map +1 -0
  133. package/dist/accessory/characteristic/Name.js +12 -0
  134. package/dist/accessory/characteristic/Name.js.map +1 -0
  135. package/dist/accessory/characteristic/OccupancyDetected.js +20 -0
  136. package/dist/accessory/characteristic/OccupancyDetected.js.map +1 -0
  137. package/dist/accessory/characteristic/On.js +26 -0
  138. package/dist/accessory/characteristic/On.js.map +1 -0
  139. package/dist/accessory/characteristic/OutletInUse.js +15 -0
  140. package/dist/accessory/characteristic/OutletInUse.js.map +1 -0
  141. package/dist/accessory/characteristic/ProgrammableSwitchEvent.js +90 -0
  142. package/dist/accessory/characteristic/ProgrammableSwitchEvent.js.map +1 -0
  143. package/dist/accessory/characteristic/RelativeHumidityDehumidifierThreshold.js +29 -0
  144. package/dist/accessory/characteristic/RelativeHumidityDehumidifierThreshold.js.map +1 -0
  145. package/dist/accessory/characteristic/RotationSpeed.js +79 -0
  146. package/dist/accessory/characteristic/RotationSpeed.js.map +1 -0
  147. package/dist/accessory/characteristic/SecuritySystemState.js +76 -0
  148. package/dist/accessory/characteristic/SecuritySystemState.js.map +1 -0
  149. package/dist/accessory/characteristic/SwingMode.js +22 -0
  150. package/dist/accessory/characteristic/SwingMode.js.map +1 -0
  151. package/dist/accessory/characteristic/TemperatureDisplayUnits.js +26 -0
  152. package/dist/accessory/characteristic/TemperatureDisplayUnits.js.map +1 -0
  153. package/dist/config.js +29 -0
  154. package/dist/config.js.map +1 -0
  155. package/dist/core/TuyaOpenAPI.js +314 -0
  156. package/dist/core/TuyaOpenAPI.js.map +1 -0
  157. package/dist/core/TuyaOpenMQ.js +182 -0
  158. package/dist/core/TuyaOpenMQ.js.map +1 -0
  159. package/dist/device/TuyaCustomDeviceManager.js +65 -0
  160. package/dist/device/TuyaCustomDeviceManager.js.map +1 -0
  161. package/dist/device/TuyaDevice.js +37 -0
  162. package/dist/device/TuyaDevice.js.map +1 -0
  163. package/dist/device/TuyaDeviceManager.js +447 -0
  164. package/dist/device/TuyaDeviceManager.js.map +1 -0
  165. package/dist/device/TuyaHomeDeviceManager.js +64 -0
  166. package/dist/device/TuyaHomeDeviceManager.js.map +1 -0
  167. package/dist/index.js +7 -0
  168. package/dist/index.js.map +1 -0
  169. package/dist/platform.js +466 -0
  170. package/dist/platform.js.map +1 -0
  171. package/dist/settings.js +18 -0
  172. package/dist/settings.js.map +1 -0
  173. package/dist/util/FfmpegStreamingProcess.js +126 -0
  174. package/dist/util/FfmpegStreamingProcess.js.map +1 -0
  175. package/dist/util/InfraredTool.js +396 -0
  176. package/dist/util/InfraredTool.js.map +1 -0
  177. package/dist/util/Logger.js +42 -0
  178. package/dist/util/Logger.js.map +1 -0
  179. package/dist/util/TuyaRecordingDelegate.js +22 -0
  180. package/dist/util/TuyaRecordingDelegate.js.map +1 -0
  181. package/dist/util/TuyaStreamDelegate.js +330 -0
  182. package/dist/util/TuyaStreamDelegate.js.map +1 -0
  183. package/dist/util/color.js +24 -0
  184. package/dist/util/color.js.map +1 -0
  185. package/dist/util/util.js +48 -0
  186. package/dist/util/util.js.map +1 -0
  187. package/jest.config.js +5 -0
  188. package/package.json +74 -0
  189. package/test/custom.test.ts +101 -0
  190. package/test/home.test.ts +81 -0
  191. package/test/util.ts +39 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const CurrentWeather_1 = require("./characteristic/CurrentWeather");
8
+ const CurrentWeatherByOpenMeteo_1 = require("./characteristic/CurrentWeatherByOpenMeteo");
9
+ class LocationWeatherAccessory extends BaseAccessory_1.default {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.weatherConditionTuya = {
13
+ coordinate: {
14
+ lon: '0',
15
+ lat: '0',
16
+ },
17
+ air_quality: {
18
+ o3: '0',
19
+ pm10: '0',
20
+ co: '0',
21
+ no2: '0',
22
+ pm25: '0',
23
+ so2: '0',
24
+ aqi: '0',
25
+ },
26
+ current_weather: {
27
+ temp: '0',
28
+ real_feel: '0',
29
+ uvi: '0',
30
+ pressure: '0',
31
+ condition: '0',
32
+ condition_num: '0',
33
+ humidity: '0',
34
+ wind_speed: '0',
35
+ },
36
+ };
37
+ this.weatherConditionOpenMeteo = {
38
+ latitude: 0,
39
+ longitude: 0,
40
+ generationtime_ms: 0,
41
+ utc_offset_seconds: 0,
42
+ timezone: '',
43
+ timezone_abbreviation: '',
44
+ elevation: 0,
45
+ current_units: {
46
+ time: '',
47
+ interval: '',
48
+ temperature_2m: '',
49
+ relative_humidity_2m: '',
50
+ },
51
+ current: {
52
+ time: '',
53
+ interval: 0,
54
+ temperature_2m: 0,
55
+ relative_humidity_2m: 0,
56
+ },
57
+ };
58
+ }
59
+ requiredSchema() {
60
+ return [];
61
+ }
62
+ configureServices() {
63
+ if (this.platform.options.weatherAPI === 'Tuya') {
64
+ (0, CurrentWeather_1.configureCurrentWeather)(this, this.weatherConditionTuya);
65
+ }
66
+ else {
67
+ (0, CurrentWeatherByOpenMeteo_1.configureCurrentWeatherByOpenMeteo)(this, this.weatherConditionOpenMeteo);
68
+ }
69
+ }
70
+ }
71
+ exports.default = LocationWeatherAccessory;
72
+ //# sourceMappingURL=LocationWeatherAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationWeatherAccessory.js","sourceRoot":"","sources":["../../src/accessory/LocationWeatherAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,oEAAoH;AACpH,0FACoD;AAEpD,MAAqB,wBAAyB,SAAQ,uBAAa;IAAnE;;QACE,yBAAoB,GAAwB;YAC1C,UAAU,EAAE;gBACV,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,WAAW,EAAE;gBACX,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,GAAG;gBACT,EAAE,EAAE,GAAG;gBACP,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,GAAG;gBACT,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,GAAG;gBACd,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,GAAG;gBACd,aAAa,EAAE,GAAG;gBAClB,QAAQ,EAAE,GAAG;gBACb,UAAU,EAAE,GAAG;aAChB;SACF,CAAC;QAEF,8BAAyB,GAA6B;YACpD,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,iBAAiB,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,QAAQ,EAAE,EAAE;YACZ,qBAAqB,EAAE,EAAE;YACzB,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE;gBACb,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,oBAAoB,EAAE,EAAE;aACzB;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,CAAC;gBACX,cAAc,EAAE,CAAC;gBACjB,oBAAoB,EAAE,CAAC;aACxB;SACF,CAAC;IAcJ,CAAC;IAZC,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE;YAC/C,IAAA,wCAAuB,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC1D;aAAM;YACL,IAAA,8DAAkC,EAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAC1E;IACH,CAAC;CAEF;AA7DD,2CA6DC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const SCHEMA_CODE = {
8
+ LOCK_CURRENT_STATE: ['open_close', 'closed_opened', 'lock_motor_state'],
9
+ LOCK_TARGET_STATE: ['lock_motor_state'],
10
+ };
11
+ class LockAccessory extends BaseAccessory_1.default {
12
+ requiredSchema() {
13
+ return [SCHEMA_CODE.LOCK_CURRENT_STATE];
14
+ }
15
+ configureServices() {
16
+ this.configureLockCurrentState();
17
+ this.configureLockTargetState();
18
+ }
19
+ mainService() {
20
+ return this.accessory.getService(this.Service.LockMechanism)
21
+ || this.accessory.addService(this.Service.LockMechanism);
22
+ }
23
+ configureLockCurrentState() {
24
+ const schema = this.getSchema(...SCHEMA_CODE.LOCK_CURRENT_STATE);
25
+ if (!schema) {
26
+ return;
27
+ }
28
+ const { UNSECURED, SECURED } = this.Characteristic.LockCurrentState;
29
+ this.mainService().getCharacteristic(this.Characteristic.LockCurrentState)
30
+ .onGet(() => {
31
+ const status = this.getStatus(schema.code);
32
+ return status.value ? UNSECURED : SECURED;
33
+ });
34
+ }
35
+ configureLockTargetState() {
36
+ const schema = this.getSchema(...SCHEMA_CODE.LOCK_TARGET_STATE);
37
+ if (!schema) {
38
+ return;
39
+ }
40
+ const { UNSECURED, SECURED } = this.Characteristic.LockTargetState;
41
+ this.mainService().getCharacteristic(this.Characteristic.LockTargetState)
42
+ .onGet(() => {
43
+ const status = this.getStatus(schema.code);
44
+ return status.value ? UNSECURED : SECURED;
45
+ })
46
+ .onSet(async (value) => {
47
+ const res = await this.deviceManager.getLockTemporaryKey(this.device.id);
48
+ if (!res.success) {
49
+ return;
50
+ }
51
+ await this.deviceManager.sendLockCommands(this.device.id, res.result.ticket_id, (value === UNSECURED));
52
+ });
53
+ }
54
+ }
55
+ exports.default = LockAccessory;
56
+ //# sourceMappingURL=LockAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LockAccessory.js","sourceRoot":"","sources":["../../src/accessory/LockAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAE5C,MAAM,WAAW,GAAG;IAClB,kBAAkB,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC;IACvE,iBAAiB,EAAE,CAAC,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAqB,aAAc,SAAQ,uBAAa;IAEtD,cAAc;QACZ,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;eACvD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,yBAAyB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;QACpE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;aACvE,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC5C,OAAQ,MAAM,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,wBAAwB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;QACnE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;aACtE,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC5C,OAAQ,MAAM,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACnB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAChB,OAAO;aACR;YACD,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACP,CAAC;CAEF;AAnDD,gCAmDC"}
@@ -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 BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const MotionDetected_1 = require("./characteristic/MotionDetected");
8
+ const SCHEMA_CODE = {
9
+ PIR: ['pir'],
10
+ };
11
+ class MotionSensorAccessory extends BaseAccessory_1.default {
12
+ requiredSchema() {
13
+ return [SCHEMA_CODE.PIR];
14
+ }
15
+ configureServices() {
16
+ (0, MotionDetected_1.configureMotionDetected)(this, undefined, this.getSchema(...SCHEMA_CODE.PIR));
17
+ }
18
+ }
19
+ exports.default = MotionSensorAccessory;
20
+ //# sourceMappingURL=MotionSensorAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MotionSensorAccessory.js","sourceRoot":"","sources":["../../src/accessory/MotionSensorAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,oEAA0E;AAE1E,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,CAAC,KAAK,CAAC;CACb,CAAC;AAEF,MAAqB,qBAAsB,SAAQ,uBAAa;IAE9D,cAAc;QACZ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAA,wCAAuB,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC;CAEF;AAVD,wCAUC"}
@@ -0,0 +1,23 @@
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 OutletInUse_1 = require("./characteristic/OutletInUse");
7
+ const SwitchAccessory_1 = __importDefault(require("./SwitchAccessory"));
8
+ const SCHEMA_CODE = {
9
+ CURRENT: ['cur_current'],
10
+ };
11
+ class OutletAccessory extends SwitchAccessory_1.default {
12
+ mainService() {
13
+ return this.Service.Outlet;
14
+ }
15
+ configureSwitch(schema, name) {
16
+ super.configureSwitch(schema, name);
17
+ const service = this.accessory.getService(schema.code)
18
+ || this.accessory.addService(this.mainService(), name, schema.code);
19
+ (0, OutletInUse_1.configureOutletInUse)(this, service, this.getSchema(...SCHEMA_CODE.CURRENT));
20
+ }
21
+ }
22
+ exports.default = OutletAccessory;
23
+ //# sourceMappingURL=OutletAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutletAccessory.js","sourceRoot":"","sources":["../../src/accessory/OutletAccessory.ts"],"names":[],"mappings":";;;;;AAAA,8DAAoE;AAEpE,wEAAgD;AAEhD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC,aAAa,CAAC;CACzB,CAAC;AACF,MAAqB,eAAgB,SAAQ,yBAAe;IAC1D,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,MAAwB,EAAE,IAAY;QACpD,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;eACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACtE,IAAA,kCAAoB,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;CACF;AAXD,kCAWC"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const Active_1 = require("./characteristic/Active");
8
+ const SCHEMA_CODE = {
9
+ ACTIVE: ['switch'],
10
+ LIGHT: ['light'],
11
+ QUICK_FEED: ['quick_feed'],
12
+ SLOW_FEED: ['slow_feed'],
13
+ MANUAL_FEED: ['manual_feed'],
14
+ MEAL_PLAN: ['meal_plan'],
15
+ BATTERY_PERCENTAGE: ['battery_percentage'],
16
+ FEED_REPORT: ['feed_report'],
17
+ FEED_STATE: ['feed_state'],
18
+ };
19
+ class PetFeederAccessory extends BaseAccessory_1.default {
20
+ requiredSchema() {
21
+ return [SCHEMA_CODE.ACTIVE];
22
+ }
23
+ configureServices() {
24
+ (0, Active_1.configureActive)(this, this.mainService(), this.getSchema(...SCHEMA_CODE.ACTIVE));
25
+ this.configureLight();
26
+ this.configureQuickFeed();
27
+ this.configureSlowFeed();
28
+ this.configureManualFeed();
29
+ this.configureMealPlan();
30
+ this.configureBatteryPercentage();
31
+ this.configureFeedReport();
32
+ this.configureFeedState();
33
+ }
34
+ mainService() {
35
+ return this.accessory.getService(this.Service.Switch)
36
+ || this.accessory.addService(this.Service.Switch);
37
+ }
38
+ configureLight() {
39
+ const schema = this.getSchema(...SCHEMA_CODE.LIGHT);
40
+ if (!schema) {
41
+ this.log.warn('Light is not supported.');
42
+ return;
43
+ }
44
+ this.mainService().getCharacteristic(this.Characteristic.On)
45
+ .onSet(async (value) => {
46
+ await this.sendCommands([{ code: schema.code, value: value }]);
47
+ });
48
+ }
49
+ configureQuickFeed() {
50
+ const schema = this.getSchema(...SCHEMA_CODE.QUICK_FEED);
51
+ if (!schema) {
52
+ this.log.warn('Quick feed is not supported.');
53
+ return;
54
+ }
55
+ this.mainService().getCharacteristic(this.Characteristic.On)
56
+ .onSet(async (value) => {
57
+ if (value) {
58
+ await this.sendCommands([{ code: schema.code, value: true }]);
59
+ }
60
+ });
61
+ }
62
+ configureSlowFeed() {
63
+ const schema = this.getSchema(...SCHEMA_CODE.SLOW_FEED);
64
+ if (!schema) {
65
+ this.log.warn('Slow feed is not supported.');
66
+ return;
67
+ }
68
+ this.mainService().getCharacteristic(this.Characteristic.On)
69
+ .onSet(async (value) => {
70
+ if (value) {
71
+ await this.sendCommands([{ code: schema.code, value: true }]);
72
+ }
73
+ });
74
+ }
75
+ configureManualFeed() {
76
+ const schema = this.getSchema(...SCHEMA_CODE.MANUAL_FEED);
77
+ if (!schema) {
78
+ this.log.warn('Manual feed is not supported.');
79
+ return;
80
+ }
81
+ this.mainService().getCharacteristic(this.Characteristic.On)
82
+ .onSet(async (value) => {
83
+ if (value) {
84
+ await this.sendCommands([{ code: schema.code, value: 1 }]);
85
+ }
86
+ });
87
+ }
88
+ configureMealPlan() {
89
+ const schema = this.getSchema(...SCHEMA_CODE.MEAL_PLAN);
90
+ if (!schema) {
91
+ this.log.warn('Meal plan is not supported.');
92
+ return;
93
+ }
94
+ this.mainService().getCharacteristic(this.Characteristic.On)
95
+ .onSet(async (value) => {
96
+ if (value) {
97
+ await this.sendCommands([{ code: schema.code, value: value }]);
98
+ }
99
+ });
100
+ }
101
+ configureBatteryPercentage() {
102
+ const schema = this.getSchema(...SCHEMA_CODE.BATTERY_PERCENTAGE);
103
+ if (!schema) {
104
+ this.log.warn('Battery percentage is not supported.');
105
+ return;
106
+ }
107
+ this.mainService().getCharacteristic(this.Characteristic.BatteryLevel)
108
+ .onGet(() => {
109
+ const status = this.getStatus(schema.code);
110
+ return status.value;
111
+ });
112
+ }
113
+ configureFeedReport() {
114
+ const schema = this.getSchema(...SCHEMA_CODE.FEED_REPORT);
115
+ if (!schema) {
116
+ this.log.warn('Feed report is not supported.');
117
+ return;
118
+ }
119
+ this.mainService().getCharacteristic(this.Characteristic.StatusActive)
120
+ .onGet(() => {
121
+ const status = this.getStatus(schema.code);
122
+ return status.value;
123
+ });
124
+ }
125
+ configureFeedState() {
126
+ const schema = this.getSchema(...SCHEMA_CODE.FEED_STATE);
127
+ if (!schema) {
128
+ this.log.warn('Feed state is not supported.');
129
+ return;
130
+ }
131
+ this.mainService().getCharacteristic(this.Characteristic.StatusActive)
132
+ .onGet(() => {
133
+ const status = this.getStatus(schema.code);
134
+ return status.value === 'feeding';
135
+ });
136
+ }
137
+ }
138
+ exports.default = PetFeederAccessory;
139
+ //# sourceMappingURL=PetFeederAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PetFeederAccessory.js","sourceRoot":"","sources":["../../src/accessory/PetFeederAccessory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ class SceneAccessory extends BaseAccessory_1.default {
8
+ constructor(platform, accessory) {
9
+ super(platform, accessory);
10
+ const service = this.accessory.getService(this.Service.Switch)
11
+ || this.accessory.addService(this.Service.Switch);
12
+ service.getCharacteristic(this.Characteristic.On)
13
+ .onGet(() => false)
14
+ .onSet(async (value) => {
15
+ if (value === false) {
16
+ return;
17
+ }
18
+ const deviceManager = this.platform.deviceManager;
19
+ const res = await deviceManager.executeScene(this.device.owner_id, this.device.id);
20
+ setTimeout(() => {
21
+ service.getCharacteristic(this.Characteristic.On).updateValue(false);
22
+ }, 150);
23
+ if (res.success === false) {
24
+ this.log.warn('ExecuteScene failed. homeId = %s, code = %s, msg = %s', this.device.owner_id, res.code, res.msg);
25
+ const { HapStatusError, HAPStatus } = this.platform.api.hap;
26
+ throw new HapStatusError(-70402 /* HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
27
+ }
28
+ });
29
+ }
30
+ }
31
+ exports.default = SceneAccessory;
32
+ //# sourceMappingURL=SceneAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneAccessory.js","sourceRoot":"","sources":["../../src/accessory/SceneAccessory.ts"],"names":[],"mappings":";;;;;AAGA,oEAA4C;AAE5C,MAAqB,cAAe,SAAQ,uBAAa;IAEvD,YAAY,QAAsB,EAAE,SAA4B;QAC9D,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;eACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;aAC9C,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;aAClB,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACnB,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,OAAO;aACR;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAsC,CAAC;YAC3E,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnF,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChH,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC5D,MAAM,IAAI,cAAc,sDAAyC,CAAC;aACnE;QACH,CAAC,CAAC,CAAC;IACP,CAAC;CAEF;AA3BD,iCA2BC"}
@@ -0,0 +1,44 @@
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 TuyaDevice_1 = require("../device/TuyaDevice");
7
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
8
+ const Name_1 = require("./characteristic/Name");
9
+ class SceneSwitchAccessory extends BaseAccessory_1.default {
10
+ configureServices() {
11
+ const schema = this.device.schema.filter((schema) => schema.code.startsWith('switch') && schema.type === TuyaDevice_1.TuyaDeviceSchemaType.Boolean);
12
+ for (const _schema of schema) {
13
+ const name = (schema.length === 1) ? this.device.name : _schema.code;
14
+ this.configureSwitch(_schema, name);
15
+ }
16
+ }
17
+ configureSwitch(schema, name) {
18
+ if (!schema) {
19
+ return;
20
+ }
21
+ const service = this.accessory.getService(schema.code)
22
+ || this.accessory.addService(this.Service.Switch, name, schema.code);
23
+ (0, Name_1.configureName)(this, service, name);
24
+ const suffix = schema.code.replace('switch', '');
25
+ const modeSchema = this.getSchema('mode' + suffix);
26
+ service.getCharacteristic(this.Characteristic.On)
27
+ .onGet(() => {
28
+ const status = this.getStatus(schema.code);
29
+ return status.value;
30
+ })
31
+ .onSet(async (value) => {
32
+ if (modeSchema) {
33
+ const mode = this.getStatus(modeSchema.code);
34
+ if (mode.value.startsWith('scene')) {
35
+ await this.sendCommands([{ code: schema.code, value: false }]);
36
+ return;
37
+ }
38
+ }
39
+ await this.sendCommands([{ code: schema.code, value: value }]);
40
+ });
41
+ }
42
+ }
43
+ exports.default = SceneSwitchAccessory;
44
+ //# sourceMappingURL=SceneSwitchAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSwitchAccessory.js","sourceRoot":"","sources":["../../src/accessory/SceneSwitchAccessory.ts"],"names":[],"mappings":";;;;;AAAA,qDAA8E;AAC9E,oEAA4C;AAC5C,gDAAsD;AAEtD,MAAqB,oBAAqB,SAAQ,uBAAa;IAE7D,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,iCAAoB,CAAC,OAAO,CAAC,CAAC;QACvI,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;IAED,eAAe,CAAC,MAAwB,EAAE,IAAY;QACpD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;eACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAA,oBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACnD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;aAC9C,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,KAAgB,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACnB,IAAI,UAAU,EAAE;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;gBAC9C,IAAK,IAAI,CAAC,KAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/D,OAAO;iBACR;aACF;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAgB,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACP,CAAC;CAEF;AAxCD,uCAwCC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const SecuritySystemState_1 = require("./characteristic/SecuritySystemState");
8
+ const Name_1 = require("./characteristic/Name");
9
+ const SCHEMA_CODE = {
10
+ MASTER_MODE: ['master_mode'],
11
+ SOS_STATE: ['sos_state'],
12
+ };
13
+ class SecuritySystemAccessory extends BaseAccessory_1.default {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.isNightArm = false;
17
+ }
18
+ requiredSchema() {
19
+ return [SCHEMA_CODE.MASTER_MODE, SCHEMA_CODE.SOS_STATE];
20
+ }
21
+ configureServices() {
22
+ const service = this.accessory.getService(this.Service.SecuritySystem)
23
+ || this.accessory.addService(this.Service.SecuritySystem);
24
+ (0, Name_1.configureName)(this, service, this.device.name);
25
+ (0, SecuritySystemState_1.configureSecuritySystemCurrentState)(this, service, this.getSchema(...SCHEMA_CODE.MASTER_MODE), this.getSchema(...SCHEMA_CODE.SOS_STATE));
26
+ (0, SecuritySystemState_1.configureSecuritySystemTargetState)(this, service, this.getSchema(...SCHEMA_CODE.MASTER_MODE), this.getSchema(...SCHEMA_CODE.SOS_STATE));
27
+ }
28
+ }
29
+ exports.default = SecuritySystemAccessory;
30
+ //# sourceMappingURL=SecuritySystemAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecuritySystemAccessory.js","sourceRoot":"","sources":["../../src/accessory/SecuritySystemAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,8EAA+H;AAC/H,gDAAsD;AAEtD,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,CAAC,aAAa,CAAC;IAC5B,SAAS,EAAE,CAAC,WAAW,CAAC;CACzB,CAAC;AAEF,MAAqB,uBAAwB,SAAQ,uBAAa;IAAlE;;QAME,eAAU,GAAG,KAAK,CAAC;IAarB,CAAC;IAjBC,cAAc;QACZ,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAID,iBAAiB;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;eACjE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE5D,IAAA,oBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAA,yDAAmC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAC3F,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,IAAA,wDAAkC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAC1F,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF;AAnBD,0CAmBC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const SCHEMA_CODE = {
8
+ SENSOR_STATUS: ['smoke_sensor_status', 'smoke_sensor_state'],
9
+ };
10
+ class SmokeSensor extends BaseAccessory_1.default {
11
+ requiredSchema() {
12
+ return [SCHEMA_CODE.SENSOR_STATUS];
13
+ }
14
+ configureServices() {
15
+ const schema = this.getSchema(...SCHEMA_CODE.SENSOR_STATUS);
16
+ if (!schema) {
17
+ return;
18
+ }
19
+ const { SMOKE_NOT_DETECTED, SMOKE_DETECTED } = this.Characteristic.SmokeDetected;
20
+ const service = this.accessory.getService(this.Service.SmokeSensor)
21
+ || this.accessory.addService(this.Service.SmokeSensor);
22
+ service.getCharacteristic(this.Characteristic.SmokeDetected)
23
+ .onGet(() => {
24
+ const status = this.getStatus(schema.code);
25
+ if ((status.value === 'alarm' || status.value === '1')) {
26
+ return SMOKE_DETECTED;
27
+ }
28
+ else {
29
+ return SMOKE_NOT_DETECTED;
30
+ }
31
+ });
32
+ }
33
+ }
34
+ exports.default = SmokeSensor;
35
+ //# sourceMappingURL=SmokeSensorAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmokeSensorAccessory.js","sourceRoot":"","sources":["../../src/accessory/SmokeSensorAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAE5C,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;CAC7D,CAAC;AAEF,MAAqB,WAAY,SAAQ,uBAAa;IAEpD,cAAc;QACZ,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;eAC9D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;aACzD,KAAK,CAAC,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE;gBACtD,OAAO,cAAc,CAAC;aACvB;iBAAM;gBACL,OAAO,kBAAkB,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;IACP,CAAC;CAEF;AA3BD,8BA2BC"}
@@ -0,0 +1,86 @@
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 TuyaDevice_1 = require("../device/TuyaDevice");
7
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
8
+ const Name_1 = require("./characteristic/Name");
9
+ const On_1 = require("./characteristic/On");
10
+ const EnergyUsage_1 = require("./characteristic/EnergyUsage");
11
+ const CurrentTemperature_1 = require("./characteristic/CurrentTemperature");
12
+ const CurrentRelativeHumidity_1 = require("./characteristic/CurrentRelativeHumidity");
13
+ const SCHEMA_CODE = {
14
+ ON: ['switch', 'switch_1'],
15
+ CURRENT: ['cur_current'],
16
+ POWER: ['cur_power'],
17
+ VOLTAGE: ['cur_voltage'],
18
+ TOTAL_POWER: ['add_ele'],
19
+ CURRENT_TEMP: ['va_temperature', 'temp_current'],
20
+ CURRENT_HUMIDITY: ['va_humidity', 'humidity_value'],
21
+ INCHING: ['switch_inching'],
22
+ };
23
+ class SwitchAccessory extends BaseAccessory_1.default {
24
+ requiredSchema() {
25
+ return [SCHEMA_CODE.ON];
26
+ }
27
+ configureServices() {
28
+ const oldService = this.accessory.getService(this.mainService());
29
+ if (oldService && (oldService === null || oldService === void 0 ? void 0 : oldService.subtype) === undefined) {
30
+ this.platform.log.warn('Remove old service:', oldService.UUID);
31
+ this.accessory.removeService(oldService);
32
+ }
33
+ const schemata = this.device.schema.filter((schema) => schema.code.startsWith('switch') && schema.type === TuyaDevice_1.TuyaDeviceSchemaType.Boolean);
34
+ schemata.forEach((schema) => {
35
+ const name = (schemata.length === 1) ? this.device.name : schema.code;
36
+ this.configureSwitch(schema, name);
37
+ });
38
+ // Other
39
+ (0, CurrentTemperature_1.configureCurrentTemperature)(this, undefined, this.getSchema(...SCHEMA_CODE.CURRENT_TEMP));
40
+ (0, CurrentRelativeHumidity_1.configureCurrentRelativeHumidity)(this, undefined, this.getSchema(...SCHEMA_CODE.CURRENT_HUMIDITY));
41
+ this.configureInching();
42
+ }
43
+ mainService() {
44
+ return this.Service.Switch;
45
+ }
46
+ configureSwitch(schema, name) {
47
+ var _a;
48
+ const service = this.accessory.getService(schema.code)
49
+ || this.accessory.addService(this.mainService(), name, schema.code);
50
+ (0, Name_1.configureName)(this, service, name);
51
+ (0, On_1.configureOn)(this, service, schema);
52
+ if (schema.code === ((_a = this.getSchema(...SCHEMA_CODE.ON)) === null || _a === void 0 ? void 0 : _a.code)) {
53
+ (0, EnergyUsage_1.configureEnergyUsage)(this.platform.api, this, service, this.getSchema(...SCHEMA_CODE.CURRENT), this.getSchema(...SCHEMA_CODE.POWER), this.getSchema(...SCHEMA_CODE.VOLTAGE), this.getSchema(...SCHEMA_CODE.TOTAL_POWER));
54
+ }
55
+ }
56
+ configureInching() {
57
+ const schema = this.getSchema(...SCHEMA_CODE.INCHING);
58
+ if (!schema || schema.type !== TuyaDevice_1.TuyaDeviceSchemaType.String) {
59
+ return;
60
+ }
61
+ const service = this.accessory.getService(schema.code)
62
+ || this.accessory.addService(this.Service.Switch, schema.code, schema.code);
63
+ (0, Name_1.configureName)(this, service, schema.code);
64
+ service.getCharacteristic(this.Characteristic.On)
65
+ .onGet(() => {
66
+ this.checkOnlineStatus();
67
+ const status = this.getStatus(schema.code);
68
+ const buffer = Buffer.from(status.value, 'base64');
69
+ return (buffer.length === 3) && (buffer[0] === 1);
70
+ })
71
+ .onSet(async (value) => {
72
+ const status = this.getStatus(schema.code);
73
+ let buffer = Buffer.from(status.value, 'base64');
74
+ if (buffer.length !== 3) {
75
+ buffer = Buffer.alloc(3);
76
+ }
77
+ buffer[0] = value ? 1 : 0;
78
+ await this.sendCommands([{
79
+ code: schema.code,
80
+ value: buffer.toString('base64'),
81
+ }], true);
82
+ });
83
+ }
84
+ }
85
+ exports.default = SwitchAccessory;
86
+ //# sourceMappingURL=SwitchAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchAccessory.js","sourceRoot":"","sources":["../../src/accessory/SwitchAccessory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
+ const CurrentRelativeHumidity_1 = require("./characteristic/CurrentRelativeHumidity");
8
+ const CurrentTemperature_1 = require("./characteristic/CurrentTemperature");
9
+ const SCHEMA_CODE = {
10
+ SENSOR_STATUS: ['va_temperature', 'va_humidity', 'humidity_value'],
11
+ CURRENT_TEMP: ['va_temperature', 'temp_value'],
12
+ CURRENT_HUMIDITY: ['va_humidity', 'humidity_value'],
13
+ };
14
+ class TemperatureHumiditySensorAccessory extends BaseAccessory_1.default {
15
+ requiredSchema() {
16
+ return [SCHEMA_CODE.SENSOR_STATUS];
17
+ }
18
+ configureServices() {
19
+ (0, CurrentTemperature_1.configureCurrentTemperature)(this, undefined, this.getSchema(...SCHEMA_CODE.CURRENT_TEMP));
20
+ (0, CurrentRelativeHumidity_1.configureCurrentRelativeHumidity)(this, undefined, this.getSchema(...SCHEMA_CODE.CURRENT_HUMIDITY));
21
+ }
22
+ }
23
+ exports.default = TemperatureHumiditySensorAccessory;
24
+ //# sourceMappingURL=TemperatureHumiditySensorAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemperatureHumiditySensorAccessory.js","sourceRoot":"","sources":["../../src/accessory/TemperatureHumiditySensorAccessory.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,sFAA4F;AAC5F,4EAAkF;AAElF,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,CAAC;IAClE,YAAY,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;IAC9C,gBAAgB,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;CACpD,CAAC;AAEF,MAAqB,kCAAmC,SAAQ,uBAAa;IAE3E,cAAc;QACZ,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,IAAA,gDAA2B,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1F,IAAA,0DAAgC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrG,CAAC;CAEF;AAXD,qDAWC"}