hoffmation-base 0.1.14 → 0.1.18

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 (365) hide show
  1. package/lib/index.d.ts +2 -0
  2. package/lib/index.js +14 -0
  3. package/lib/models/actuatorSettings.d.ts +5 -0
  4. package/lib/models/actuatorSettings.js +11 -0
  5. package/lib/models/connectionCallbacks.d.ts +10 -0
  6. package/lib/models/connectionCallbacks.js +6 -0
  7. package/lib/models/daytime.d.ts +5 -0
  8. package/lib/models/daytime.js +10 -0
  9. package/lib/models/deviceConfig.d.ts +11 -0
  10. package/lib/models/deviceConfig.js +2 -0
  11. package/lib/models/dimmerSettings.d.ts +5 -0
  12. package/lib/models/dimmerSettings.js +11 -0
  13. package/lib/models/iTemperaturDataPoint.d.ts +9 -0
  14. package/lib/models/iTemperaturDataPoint.js +2 -0
  15. package/lib/models/index.d.ts +12 -0
  16. package/lib/models/index.js +24 -0
  17. package/lib/models/ledSettings.d.ts +19 -0
  18. package/lib/models/ledSettings.js +25 -0
  19. package/lib/models/logLevel.d.ts +9 -0
  20. package/lib/models/logLevel.js +13 -0
  21. package/lib/models/persistence/BasicRoomInfo.d.ts +5 -0
  22. package/lib/models/persistence/BasicRoomInfo.js +10 -0
  23. package/lib/models/persistence/CurrentIlluminationDataPoint.d.ts +8 -0
  24. package/lib/models/persistence/CurrentIlluminationDataPoint.js +13 -0
  25. package/lib/models/persistence/DailyMovementCount.d.ts +7 -0
  26. package/lib/models/persistence/DailyMovementCount.js +12 -0
  27. package/lib/models/persistence/RoomDetailInfo.d.ts +6 -0
  28. package/lib/models/persistence/RoomDetailInfo.js +11 -0
  29. package/lib/models/persistence/index.d.ts +6 -0
  30. package/lib/models/persistence/index.js +18 -0
  31. package/lib/models/persistence/temperaturDataPoint.d.ts +10 -0
  32. package/lib/models/persistence/temperaturDataPoint.js +14 -0
  33. package/lib/models/persistence/todaysCount.d.ts +5 -0
  34. package/lib/models/persistence/todaysCount.js +10 -0
  35. package/lib/models/rooms/RoomBase.d.ts +81 -0
  36. package/lib/models/rooms/RoomBase.js +309 -0
  37. package/lib/models/rooms/RoomSettings/RoomSettings.d.ts +57 -0
  38. package/lib/models/rooms/RoomSettings/RoomSettings.js +120 -0
  39. package/lib/models/rooms/RoomSettings/hmIPRoomSettings.d.ts +17 -0
  40. package/lib/models/rooms/RoomSettings/hmIPRoomSettings.js +51 -0
  41. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +16 -0
  42. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.js +2 -0
  43. package/lib/models/rooms/RoomSettings/index.d.ts +4 -0
  44. package/lib/models/rooms/RoomSettings/index.js +16 -0
  45. package/lib/models/rooms/RoomSettings/zigbeeRoomSettings.d.ts +17 -0
  46. package/lib/models/rooms/RoomSettings/zigbeeRoomSettings.js +51 -0
  47. package/{models/rooms/iRoomImportEnforcer.ts → lib/models/rooms/iRoomImportEnforcer.d.ts} +1 -1
  48. package/lib/models/rooms/iRoomImportEnforcer.js +2 -0
  49. package/lib/models/rooms/index.d.ts +3 -0
  50. package/lib/models/rooms/index.js +15 -0
  51. package/lib/models/temperaturSettings.d.ts +9 -0
  52. package/lib/models/temperaturSettings.js +21 -0
  53. package/lib/models/timeCallback.d.ts +19 -0
  54. package/lib/models/timeCallback.js +73 -0
  55. package/lib/server/config/iConfig.d.ts +45 -0
  56. package/lib/server/config/iConfig.js +2 -0
  57. package/lib/server/config/index.d.ts +1 -0
  58. package/lib/server/config/index.js +13 -0
  59. package/lib/server/devices/DeviceInfo.d.ts +17 -0
  60. package/lib/server/devices/DeviceInfo.js +48 -0
  61. package/lib/server/devices/Griffe.d.ts +5 -0
  62. package/lib/server/devices/Griffe.js +31 -0
  63. package/lib/server/devices/Heizgruppen.d.ts +8 -0
  64. package/lib/server/devices/Heizgruppen.js +78 -0
  65. package/lib/server/devices/Rollos.d.ts +5 -0
  66. package/lib/server/devices/Rollos.js +43 -0
  67. package/lib/server/devices/deviceUpdater.d.ts +13 -0
  68. package/lib/server/devices/deviceUpdater.js +64 -0
  69. package/lib/server/devices/devices.d.ts +21 -0
  70. package/lib/server/devices/devices.js +172 -0
  71. package/lib/server/devices/groups/fensterGroup.d.ts +15 -0
  72. package/lib/server/devices/groups/fensterGroup.js +138 -0
  73. package/lib/server/devices/groups/heatGroup.d.ts +9 -0
  74. package/lib/server/devices/groups/heatGroup.js +33 -0
  75. package/lib/server/devices/groups/index.d.ts +8 -0
  76. package/lib/server/devices/groups/index.js +20 -0
  77. package/lib/server/devices/groups/lampenGroup.d.ts +18 -0
  78. package/lib/server/devices/groups/lampenGroup.js +95 -0
  79. package/lib/server/devices/groups/praesenzGroup.d.ts +18 -0
  80. package/lib/server/devices/groups/praesenzGroup.js +145 -0
  81. package/lib/server/devices/groups/smokeGroup.d.ts +8 -0
  82. package/lib/server/devices/groups/smokeGroup.js +18 -0
  83. package/lib/server/devices/groups/sonosGroup.d.ts +11 -0
  84. package/lib/server/devices/groups/sonosGroup.js +38 -0
  85. package/lib/server/devices/groups/tasterGroup.d.ts +8 -0
  86. package/lib/server/devices/groups/tasterGroup.js +43 -0
  87. package/lib/server/devices/groups/waterGroup.d.ts +8 -0
  88. package/lib/server/devices/groups/waterGroup.js +18 -0
  89. package/lib/server/devices/hmIPDevices/Fenster.d.ts +22 -0
  90. package/lib/server/devices/hmIPDevices/Fenster.js +100 -0
  91. package/lib/server/devices/hmIPDevices/FensterPosition.d.ts +5 -0
  92. package/lib/server/devices/hmIPDevices/FensterPosition.js +9 -0
  93. package/lib/server/devices/hmIPDevices/TuerPosition.d.ts +4 -0
  94. package/lib/server/devices/hmIPDevices/TuerPosition.js +8 -0
  95. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +25 -0
  96. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +106 -0
  97. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +19 -0
  98. package/lib/server/devices/hmIPDevices/hmIpDevice.js +72 -0
  99. package/lib/server/devices/hmIPDevices/hmIpDeviceType.d.ts +14 -0
  100. package/lib/server/devices/hmIPDevices/hmIpDeviceType.js +18 -0
  101. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +22 -0
  102. package/lib/server/devices/hmIPDevices/hmIpGriff.js +117 -0
  103. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +34 -0
  104. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +143 -0
  105. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +15 -0
  106. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +54 -0
  107. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +27 -0
  108. package/lib/server/devices/hmIPDevices/hmIpLampe.js +96 -0
  109. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +22 -0
  110. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +89 -0
  111. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +22 -0
  112. package/lib/server/devices/hmIPDevices/hmIpRoll.js +105 -0
  113. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +13 -0
  114. package/lib/server/devices/hmIPDevices/hmIpTaster.js +78 -0
  115. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +7 -0
  116. package/lib/server/devices/hmIPDevices/hmIpTherm.js +17 -0
  117. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +16 -0
  118. package/lib/server/devices/hmIPDevices/hmIpTuer.js +94 -0
  119. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +12 -0
  120. package/lib/server/devices/hmIPDevices/hmIpWippe.js +50 -0
  121. package/lib/server/devices/hmIPDevices/index.d.ts +16 -0
  122. package/lib/server/devices/hmIPDevices/index.js +28 -0
  123. package/lib/server/devices/iDeviceUpdater.d.ts +5 -0
  124. package/lib/server/devices/iDeviceUpdater.js +2 -0
  125. package/{server/devices/iIlluminationSensor.ts → lib/server/devices/iIlluminationSensor.d.ts} +1 -1
  126. package/lib/server/devices/iIlluminationSensor.js +2 -0
  127. package/lib/server/devices/iIoBrokerDevice.d.ts +30 -0
  128. package/lib/server/devices/iIoBrokerDevice.js +37 -0
  129. package/lib/server/devices/iLamp.d.ts +8 -0
  130. package/lib/server/devices/iLamp.js +2 -0
  131. package/lib/server/devices/iTaster.d.ts +7 -0
  132. package/lib/server/devices/iTaster.js +2 -0
  133. package/lib/server/devices/index.d.ts +16 -0
  134. package/lib/server/devices/index.js +28 -0
  135. package/lib/server/devices/taste.d.ts +15 -0
  136. package/lib/server/devices/taste.js +64 -0
  137. package/lib/server/devices/wledDevice.d.ts +38 -0
  138. package/lib/server/devices/wledDevice.js +97 -0
  139. package/lib/server/devices/zigbee/ZigbeeActuator.d.ts +17 -0
  140. package/lib/server/devices/zigbee/ZigbeeActuator.js +83 -0
  141. package/lib/server/devices/zigbee/index.d.ts +13 -0
  142. package/lib/server/devices/zigbee/index.js +25 -0
  143. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +31 -0
  144. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +137 -0
  145. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +23 -0
  146. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +121 -0
  147. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +18 -0
  148. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +84 -0
  149. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +16 -0
  150. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +64 -0
  151. package/lib/server/devices/zigbee/zigbeeDevice.d.ts +20 -0
  152. package/lib/server/devices/zigbee/zigbeeDevice.js +83 -0
  153. package/lib/server/devices/zigbee/zigbeeDeviceType.d.ts +14 -0
  154. package/lib/server/devices/zigbee/zigbeeDeviceType.js +18 -0
  155. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +18 -0
  156. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +89 -0
  157. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +10 -0
  158. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +26 -0
  159. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +11 -0
  160. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +28 -0
  161. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +23 -0
  162. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +128 -0
  163. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +10 -0
  164. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +31 -0
  165. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +22 -0
  166. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +122 -0
  167. package/lib/server/index.d.ts +4 -0
  168. package/lib/server/index.js +16 -0
  169. package/lib/server/ioBroker/connection.d.ts +160 -0
  170. package/lib/server/ioBroker/connection.js +1419 -0
  171. package/lib/server/ioBroker/index.d.ts +6 -0
  172. package/lib/server/ioBroker/index.js +18 -0
  173. package/lib/server/ioBroker/ioBroker.main.d.ts +15 -0
  174. package/lib/server/ioBroker/ioBroker.main.js +85 -0
  175. package/lib/server/ioBroker/socketIOAuthInfo.d.ts +5 -0
  176. package/lib/server/ioBroker/socketIOAuthInfo.js +6 -0
  177. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +6 -0
  178. package/lib/server/ioBroker/socketIOConnectOptions.js +6 -0
  179. package/lib/server/ioBroker/socketIOLogging.d.ts +12 -0
  180. package/lib/server/ioBroker/socketIOLogging.js +32 -0
  181. package/lib/server/ioBroker/socketIOVisCommand.d.ts +6 -0
  182. package/lib/server/ioBroker/socketIOVisCommand.js +11 -0
  183. package/lib/server/services/HTTPSOptions.d.ts +12 -0
  184. package/lib/server/services/HTTPSOptions.js +16 -0
  185. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +7 -0
  186. package/lib/server/services/Sonos/OwnSonosDevices.js +10 -0
  187. package/lib/server/services/Sonos/index.d.ts +4 -0
  188. package/lib/server/services/Sonos/index.js +16 -0
  189. package/lib/server/services/Sonos/mp3-server.d.ts +7 -0
  190. package/lib/server/services/Sonos/mp3-server.js +90 -0
  191. package/lib/server/services/Sonos/polly-service.d.ts +12 -0
  192. package/lib/server/services/Sonos/polly-service.js +117 -0
  193. package/lib/server/services/Sonos/sonos-service.d.ts +30 -0
  194. package/lib/server/services/Sonos/sonos-service.js +140 -0
  195. package/lib/server/services/Telegram/index.d.ts +3 -0
  196. package/lib/server/services/Telegram/index.js +15 -0
  197. package/lib/server/services/Telegram/telegram-Commands.d.ts +3 -0
  198. package/lib/server/services/Telegram/telegram-Commands.js +128 -0
  199. package/lib/server/services/Telegram/telegram-service.d.ts +19 -0
  200. package/lib/server/services/Telegram/telegram-service.js +150 -0
  201. package/lib/server/services/Telegram/telegramMessageCalback.d.ts +9 -0
  202. package/lib/server/services/Telegram/telegramMessageCalback.js +13 -0
  203. package/lib/server/services/calendar/index.d.ts +2 -0
  204. package/lib/server/services/calendar/index.js +14 -0
  205. package/lib/server/services/calendar/muell-tonne.d.ts +12 -0
  206. package/lib/server/services/calendar/muell-tonne.js +73 -0
  207. package/lib/server/services/calendar/m/303/274ll-service.d.ts +24 -0
  208. package/lib/server/services/calendar/m/303/274ll-service.js +108 -0
  209. package/lib/server/services/dbo/index.d.ts +1 -0
  210. package/lib/server/services/dbo/index.js +13 -0
  211. package/lib/server/services/dbo/persist.d.ts +27 -0
  212. package/lib/server/services/dbo/persist.js +107 -0
  213. package/lib/server/services/https-service.d.ts +6 -0
  214. package/lib/server/services/https-service.js +87 -0
  215. package/lib/server/services/index.d.ts +12 -0
  216. package/lib/server/services/index.js +24 -0
  217. package/lib/server/services/log-service.d.ts +14 -0
  218. package/lib/server/services/log-service.js +41 -0
  219. package/lib/server/services/news-service.d.ts +10 -0
  220. package/lib/server/services/news-service.js +90 -0
  221. package/lib/server/services/settings-service.d.ts +6 -0
  222. package/lib/server/services/settings-service.js +19 -0
  223. package/lib/server/services/time-callback-service.d.ts +39 -0
  224. package/lib/server/services/time-callback-service.js +182 -0
  225. package/lib/server/services/utils/index.d.ts +2 -0
  226. package/lib/server/services/utils/index.js +14 -0
  227. package/lib/server/services/utils/ringstorage.d.ts +8 -0
  228. package/lib/server/services/utils/ringstorage.js +27 -0
  229. package/lib/server/services/utils/utils.d.ts +9 -0
  230. package/lib/server/services/utils/utils.js +44 -0
  231. package/lib/server/services/weather/index.d.ts +9 -0
  232. package/lib/server/services/weather/index.js +21 -0
  233. package/lib/server/services/weather/weather-alert.d.ts +7 -0
  234. package/lib/server/services/weather/weather-alert.js +2 -0
  235. package/lib/server/services/weather/weather-current.d.ts +25 -0
  236. package/lib/server/services/weather/weather-current.js +2 -0
  237. package/lib/server/services/weather/weather-daily.d.ts +21 -0
  238. package/lib/server/services/weather/weather-daily.js +2 -0
  239. package/lib/server/services/weather/weather-feelsLike.d.ts +6 -0
  240. package/lib/server/services/weather/weather-feelsLike.js +2 -0
  241. package/lib/server/services/weather/weather-hourly.d.ts +16 -0
  242. package/lib/server/services/weather/weather-hourly.js +2 -0
  243. package/lib/server/services/weather/weather-item.d.ts +6 -0
  244. package/lib/server/services/weather/weather-item.js +2 -0
  245. package/lib/server/services/weather/weather-minutes.d.ts +4 -0
  246. package/lib/server/services/weather/weather-minutes.js +2 -0
  247. package/lib/server/services/weather/weather-service.d.ts +37 -0
  248. package/lib/server/services/weather/weather-service.js +173 -0
  249. package/lib/server/services/weather/weather-temp.d.ts +8 -0
  250. package/lib/server/services/weather/weather-temp.js +2 -0
  251. package/lib/tsconfig.tsbuildinfo +1 -0
  252. package/package.json +21 -10
  253. package/.eslintrc.js +0 -27
  254. package/.github/workflows/npm-publish.yml +0 -33
  255. package/.prettierrc.js +0 -9
  256. package/index.js +0 -1
  257. package/models/actuatorSettings.ts +0 -5
  258. package/models/connectionCallbacks.ts +0 -13
  259. package/models/daytime.ts +0 -3
  260. package/models/deviceConfig.ts +0 -8
  261. package/models/dimmerSettings.ts +0 -5
  262. package/models/iTemperaturDataPoint.ts +0 -9
  263. package/models/ledSettings.ts +0 -19
  264. package/models/logLevel.ts +0 -9
  265. package/models/persistence/BasicRoomInfo.ts +0 -3
  266. package/models/persistence/CurrentIlluminationDataPoint.ts +0 -9
  267. package/models/persistence/DailyMovementCount.ts +0 -3
  268. package/models/persistence/RoomDetailInfo.ts +0 -4
  269. package/models/persistence/temperaturDataPoint.ts +0 -12
  270. package/models/persistence/todaysCount.ts +0 -3
  271. package/models/rooms/RoomBase.ts +0 -358
  272. package/models/rooms/RoomSettings/RoomSettings.ts +0 -159
  273. package/models/rooms/RoomSettings/hmIPRoomSettings.ts +0 -53
  274. package/models/rooms/RoomSettings/iRoomDefaultSettings.ts +0 -17
  275. package/models/rooms/RoomSettings/readme.md +0 -18
  276. package/models/rooms/RoomSettings/zigbeeRoomSettings.ts +0 -51
  277. package/models/rooms/readme.md +0 -11
  278. package/models/temperaturSettings.ts +0 -22
  279. package/models/timeCallback.ts +0 -90
  280. package/server/config/config-readme.md +0 -19
  281. package/server/config/iConfig.ts +0 -53
  282. package/server/config/private/mainConfig.json +0 -64
  283. package/server/devices/DeviceInfo.ts +0 -66
  284. package/server/devices/Griffe.ts +0 -31
  285. package/server/devices/Heizgruppen.ts +0 -91
  286. package/server/devices/Rollos.ts +0 -48
  287. package/server/devices/deviceUpdater.ts +0 -72
  288. package/server/devices/devices.ts +0 -193
  289. package/server/devices/groups/fensterGroup.ts +0 -175
  290. package/server/devices/groups/heatGroup.ts +0 -32
  291. package/server/devices/groups/lampenGroup.ts +0 -106
  292. package/server/devices/groups/praesenzGroup.ts +0 -187
  293. package/server/devices/groups/smokeGroup.ts +0 -16
  294. package/server/devices/groups/sonosGroup.ts +0 -33
  295. package/server/devices/groups/tasterGroup.ts +0 -48
  296. package/server/devices/groups/waterGroup.ts +0 -16
  297. package/server/devices/hmIPDevices/Fenster.ts +0 -114
  298. package/server/devices/hmIPDevices/FensterPosition.ts +0 -5
  299. package/server/devices/hmIPDevices/TuerPosition.ts +0 -4
  300. package/server/devices/hmIPDevices/hmIpBewegung.ts +0 -145
  301. package/server/devices/hmIPDevices/hmIpDevice.ts +0 -90
  302. package/server/devices/hmIPDevices/hmIpDeviceType.ts +0 -14
  303. package/server/devices/hmIPDevices/hmIpGriff.ts +0 -143
  304. package/server/devices/hmIPDevices/hmIpHeizgruppe.ts +0 -172
  305. package/server/devices/hmIPDevices/hmIpHeizung.ts +0 -69
  306. package/server/devices/hmIPDevices/hmIpLampe.ts +0 -120
  307. package/server/devices/hmIPDevices/hmIpPraezenz.ts +0 -117
  308. package/server/devices/hmIPDevices/hmIpRoll.ts +0 -133
  309. package/server/devices/hmIPDevices/hmIpTaster.ts +0 -82
  310. package/server/devices/hmIPDevices/hmIpTherm.ts +0 -19
  311. package/server/devices/hmIPDevices/hmIpTuer.ts +0 -115
  312. package/server/devices/hmIPDevices/hmIpWippe.ts +0 -55
  313. package/server/devices/iDeviceUpdater.ts +0 -4
  314. package/server/devices/iIoBrokerDevice.ts +0 -44
  315. package/server/devices/iLamp.ts +0 -10
  316. package/server/devices/iTaster.ts +0 -6
  317. package/server/devices/taste.ts +0 -84
  318. package/server/devices/wledDevice.ts +0 -124
  319. package/server/devices/zigbee/ZigbeeActuator.ts +0 -113
  320. package/server/devices/zigbee/zigbeeAquaraMotion.ts +0 -205
  321. package/server/devices/zigbee/zigbeeAquaraVibra.ts +0 -171
  322. package/server/devices/zigbee/zigbeeAquaraWater.ts +0 -94
  323. package/server/devices/zigbee/zigbeeBlitzShp.ts +0 -77
  324. package/server/devices/zigbee/zigbeeDevice.ts +0 -115
  325. package/server/devices/zigbee/zigbeeDeviceType.ts +0 -14
  326. package/server/devices/zigbee/zigbeeHeimanSmoke.ts +0 -99
  327. package/server/devices/zigbee/zigbeeIkeaSteckdose.ts +0 -31
  328. package/server/devices/zigbee/zigbeeIlluActuator.ts +0 -37
  329. package/server/devices/zigbee/zigbeeIlluDimmer.ts +0 -166
  330. package/server/devices/zigbee/zigbeeIlluLampe.ts +0 -33
  331. package/server/devices/zigbee/zigbeeIlluLedRGBCCT.ts +0 -137
  332. package/server/ioBroker/connection.ts +0 -1655
  333. package/server/ioBroker/ioBroker.main.ts +0 -99
  334. package/server/ioBroker/socketIOAuthInfo.ts +0 -5
  335. package/server/ioBroker/socketIOConnectOptions.ts +0 -6
  336. package/server/ioBroker/socketIOLogging.ts +0 -29
  337. package/server/ioBroker/socketIOVisCommand.ts +0 -11
  338. package/server/services/HTTPSOptions.ts +0 -14
  339. package/server/services/Sonos/OwnSonosDevices.ts +0 -9
  340. package/server/services/Sonos/mp3-server.ts +0 -75
  341. package/server/services/Sonos/polly-service.ts +0 -100
  342. package/server/services/Sonos/sonos-service.ts +0 -194
  343. package/server/services/Telegram/telegram-Commands.ts +0 -237
  344. package/server/services/Telegram/telegram-service.ts +0 -177
  345. package/server/services/Telegram/telegramMessageCalback.ts +0 -11
  346. package/server/services/calendar/muell-tonne.ts +0 -82
  347. package/server/services/calendar/m/303/274ll-service.ts +0 -147
  348. package/server/services/dbo/persist.ts +0 -142
  349. package/server/services/https-service.ts +0 -71
  350. package/server/services/log-service.ts +0 -69
  351. package/server/services/news-service.ts +0 -81
  352. package/server/services/settings-service.ts +0 -15
  353. package/server/services/time-callback-service.ts +0 -223
  354. package/server/services/utils/ringstorage.ts +0 -24
  355. package/server/services/utils/utils.ts +0 -52
  356. package/server/services/weather/weather-alert.ts +0 -7
  357. package/server/services/weather/weather-current.ts +0 -26
  358. package/server/services/weather/weather-daily.ts +0 -22
  359. package/server/services/weather/weather-feelsLike.ts +0 -6
  360. package/server/services/weather/weather-hourly.ts +0 -17
  361. package/server/services/weather/weather-item.ts +0 -6
  362. package/server/services/weather/weather-minutes.ts +0 -4
  363. package/server/services/weather/weather-service.ts +0 -277
  364. package/server/services/weather/weather-temp.ts +0 -8
  365. package/tsconfig.json +0 -58
@@ -1,193 +0,0 @@
1
- import { LogLevel } from '../../models/logLevel';
2
- import { HmIpDeviceType } from './hmIPDevices/hmIpDeviceType';
3
- import { ZigbeeDeviceType } from './zigbee/zigbeeDeviceType';
4
- import { IOBrokerConnection } from '../ioBroker/connection';
5
- import { ServerLogService } from '../services/log-service';
6
- import { HmIPDevice } from './hmIPDevices/hmIpDevice';
7
- import { ZigbeeDevice } from './zigbee/zigbeeDevice';
8
- import { HmIpGriff } from './hmIPDevices/hmIpGriff';
9
- import { HmIpHeizung } from './hmIPDevices/hmIpHeizung';
10
- import { DeviceInfo } from './DeviceInfo';
11
- import { HmIpLampe } from './hmIPDevices/hmIpLampe';
12
- import { HmIpPraezenz } from './hmIPDevices/hmIpPraezenz';
13
- import { HmIpRoll } from './hmIPDevices/hmIpRoll';
14
- import { HmIpTaster } from './hmIPDevices/hmIpTaster';
15
- import { HmIpTherm } from './hmIPDevices/hmIpTherm';
16
- import { HmIpTuer } from './hmIPDevices/hmIpTuer';
17
- import { HmIpWippe } from './hmIPDevices/hmIpWippe';
18
- import { deviceConfig } from '../../models/deviceConfig';
19
- import { HmIpHeizgruppe } from './hmIPDevices/hmIpHeizgruppe';
20
- import { HmIpBewegung } from './hmIPDevices/hmIpBewegung';
21
- import { ZigbeeIkeaSteckdose } from './zigbee/zigbeeIkeaSteckdose';
22
- import { ZigbeeIlluLedRGBCCT } from './zigbee/zigbeeIlluLedRGBCCT';
23
- import { ZigbeeAquaraVibra } from './zigbee/zigbeeAquaraVibra';
24
- import { ZigbeeIlluDimmer } from './zigbee/zigbeeIlluDimmer';
25
- import { ZigbeeHeimanSmoke } from './zigbee/zigbeeHeimanSmoke';
26
- import { ZigbeeAquaraWater } from './zigbee/zigbeeAquaraWater';
27
- import { ZigbeeBlitzShp } from './zigbee/zigbeeBlitzShp';
28
- import { ZigbeeIlluLampe } from './zigbee/zigbeeIlluLampe';
29
- import { ZigbeeIlluActuator } from './zigbee/zigbeeIlluActuator';
30
- import { iRoomImportEnforcer } from '../../models/rooms/iRoomImportEnforcer';
31
- import { ZigbeeAquaraMotion } from './zigbee/zigbeeAquaraMotion';
32
-
33
- export class Devices {
34
- public static hmIP: { [id: string]: HmIPDevice } = {};
35
- public static Zigbee: { [id: string]: ZigbeeDevice } = {};
36
-
37
- public constructor(pDeviceData: { [id: string]: deviceConfig }, pRoomImportEnforcer: iRoomImportEnforcer) {
38
- // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
39
- pRoomImportEnforcer.addRoomConstructor();
40
-
41
- for (const cID in pDeviceData) {
42
- const cDevConf: deviceConfig = pDeviceData[cID];
43
- if (
44
- !cDevConf.common ||
45
- !cDevConf.common.name ||
46
- typeof cDevConf.common.name === 'object' ||
47
- !cDevConf.type ||
48
- cDevConf.type === 'channel'
49
- ) {
50
- continue;
51
- }
52
-
53
- const cName: string = cDevConf.common.name;
54
-
55
- if (cName.indexOf('00-HmIP') === 0) {
56
- this.processHMIPDevice(cDevConf);
57
- } else if (cName.indexOf('00-Zigbee') === 0) {
58
- this.processZigbeeDevice(cDevConf);
59
- }
60
- }
61
-
62
- HmIPDevice.checkMissing();
63
- ZigbeeDevice.checkMissing();
64
- }
65
-
66
- public static addIoConnection(pIoConnection: IOBrokerConnection): void {
67
- for (const id in Devices.hmIP) {
68
- Devices.hmIP[id].ioConn = pIoConnection;
69
- }
70
-
71
- for (const id in Devices.Zigbee) {
72
- Devices.Zigbee[id].ioConn = pIoConnection;
73
- }
74
- }
75
-
76
- public static midnightReset(): void {
77
- // Nothing yet
78
- }
79
-
80
- public static resetPraesenzCount(): void {
81
- ServerLogService.writeLog(LogLevel.Info, `3 Uhr Reset der Präsenzmelder`);
82
- for (const dID in Devices.hmIP) {
83
- const d = Devices.hmIP[dID];
84
- if (d.deviceType === HmIpDeviceType.HmIpPraezenz) {
85
- ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
86
- (d as HmIpPraezenz).detectionsToday = 0;
87
- } else if (d.deviceType === HmIpDeviceType.HmIpBewegung) {
88
- ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
89
- (d as HmIpBewegung).detectionsToday = 0;
90
- }
91
- }
92
- }
93
-
94
- private processZigbeeDevice(cDevConf: deviceConfig) {
95
- const zigbeeInfo: DeviceInfo = new DeviceInfo(cDevConf);
96
-
97
- if (typeof Devices.Zigbee[zigbeeInfo.devID] !== 'undefined') {
98
- return;
99
- }
100
-
101
- ServerLogService.writeLog(
102
- LogLevel.Trace,
103
- `${zigbeeInfo.devID} with Type "${zigbeeInfo.deviceType}" doesn't exists --> create it`,
104
- );
105
-
106
- switch (zigbeeInfo.deviceType) {
107
- case 'AquaraVibra':
108
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraVibra(zigbeeInfo);
109
- break;
110
- case 'AquaraMotion':
111
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraMotion(zigbeeInfo);
112
- break;
113
- case 'IkeaStecker':
114
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIkeaSteckdose(zigbeeInfo);
115
- break;
116
- case 'LedRGBCCT':
117
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLedRGBCCT(zigbeeInfo);
118
- break;
119
- case 'IlluDimmer':
120
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluDimmer(zigbeeInfo);
121
- break;
122
- case 'HeimanSmoke':
123
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeHeimanSmoke(zigbeeInfo);
124
- break;
125
- case 'AquaraWater':
126
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraWater(zigbeeInfo);
127
- break;
128
- case 'BlitzShp':
129
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeBlitzShp(zigbeeInfo);
130
- break;
131
- case 'IlluLampe':
132
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLampe(zigbeeInfo);
133
- break;
134
- case 'IlluActuator':
135
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluActuator(zigbeeInfo);
136
- break;
137
- default:
138
- ServerLogService.writeLog(LogLevel.Warn, `No zigbee Device Type for ${zigbeeInfo.deviceType} defined`);
139
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeDevice(zigbeeInfo, ZigbeeDeviceType.unknown);
140
- }
141
- }
142
-
143
- private processHMIPDevice(cDevConf: deviceConfig) {
144
- const hmIPInfo: DeviceInfo = new DeviceInfo(cDevConf);
145
-
146
- if (typeof Devices.hmIP[hmIPInfo.devID] !== 'undefined') {
147
- return;
148
- }
149
- ServerLogService.writeLog(
150
- LogLevel.Trace,
151
- `${hmIPInfo.devID} with Type "${hmIPInfo.deviceType}" doesn't exists --> create it`,
152
- );
153
- switch (hmIPInfo.deviceType) {
154
- case 'Lampe':
155
- Devices.hmIP[hmIPInfo.devID] = new HmIpLampe(hmIPInfo);
156
- break;
157
- case 'Roll':
158
- case 'Broll':
159
- Devices.hmIP[hmIPInfo.devID] = new HmIpRoll(hmIPInfo);
160
- break;
161
- case 'Beweg':
162
- Devices.hmIP[hmIPInfo.devID] = new HmIpBewegung(hmIPInfo);
163
- break;
164
- case 'Taster':
165
- Devices.hmIP[hmIPInfo.devID] = new HmIpTaster(hmIPInfo);
166
- break;
167
- case 'Wippe':
168
- Devices.hmIP[hmIPInfo.devID] = new HmIpWippe(hmIPInfo);
169
- break;
170
- case 'Praezenz':
171
- Devices.hmIP[hmIPInfo.devID] = new HmIpPraezenz(hmIPInfo);
172
- break;
173
- case 'Griff':
174
- Devices.hmIP[hmIPInfo.devID] = new HmIpGriff(hmIPInfo);
175
- break;
176
- case 'Thermostat':
177
- Devices.hmIP[hmIPInfo.devID] = new HmIpTherm(hmIPInfo);
178
- break;
179
- case 'Heizung':
180
- Devices.hmIP[hmIPInfo.devID] = new HmIpHeizung(hmIPInfo);
181
- break;
182
- case 'Tuer':
183
- Devices.hmIP[hmIPInfo.devID] = new HmIpTuer(hmIPInfo);
184
- break;
185
- case 'HeizGr':
186
- Devices.hmIP[hmIPInfo.devID] = new HmIpHeizgruppe(hmIPInfo);
187
- break;
188
- default:
189
- ServerLogService.writeLog(LogLevel.Warn, `No HmIP Device Type for ${hmIPInfo.deviceType} defined`);
190
- Devices.hmIP[hmIPInfo.devID] = new HmIPDevice(hmIPInfo, HmIpDeviceType.unknown);
191
- }
192
- }
193
- }
@@ -1,175 +0,0 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { Fenster } from '../hmIPDevices/Fenster';
3
- import { FensterPosition } from '../hmIPDevices/FensterPosition';
4
- import { ServerLogService } from '../../services/log-service';
5
- import { RoomBase } from '../../../models/rooms/RoomBase';
6
- import { TimeCallback, TimeCallbackType } from '../../../models/timeCallback';
7
- import { TimeCallbackService, TimeOfDay } from '../../services/time-callback-service';
8
- import { Utils } from '../../services/utils/utils';
9
- import { WeatherService } from '../../services/weather/weather-service';
10
-
11
- export class FensterGroup {
12
- public constructor(private _room: RoomBase, public fenster: Fenster[]) {
13
- for (const f of [...fenster]) {
14
- f.room = this._room;
15
- }
16
- }
17
-
18
- public allRolloDown(initial: boolean = false, savePosition: boolean = false): void {
19
- this.fenster.forEach((f) => {
20
- if (savePosition) f.desiredPosition = 0;
21
- if (f.rollo !== undefined) {
22
- ServerLogService.writeLog(
23
- LogLevel.Debug,
24
- `Fahre das Rollo zum Sonnenuntergang ${initial ? '(ggf. nachträglich) ' : ''}für ${
25
- f.rollo.info.customName
26
- } runter`,
27
- );
28
- f.rollo.down(initial);
29
- }
30
- });
31
- }
32
-
33
- public allRolloUp(savePosition: boolean = false): void {
34
- this.fenster.forEach((f) => {
35
- if (f.rollo === undefined) {
36
- return;
37
- }
38
-
39
- if (savePosition) {
40
- f.desiredPosition = 100;
41
- }
42
- f.rollo.up(false);
43
- });
44
- }
45
-
46
- public allRolloToLevel(level: number, savePosition: boolean = false): void {
47
- this.fenster.forEach((f) => {
48
- if (savePosition) {
49
- f.desiredPosition = level;
50
- }
51
- if (f.rollo !== undefined) {
52
- f.rollo.setLevel(level, false);
53
- }
54
- });
55
- }
56
-
57
- public initCallbacks(): void {
58
- if (this._room.Einstellungen.sonnenAufgangRollos && this._room.Einstellungen.rolloOffset) {
59
- ServerLogService.writeLog(LogLevel.Trace, `Sonnenaufgang TimeCallback für ${this._room.roomName} hinzufügen`);
60
- this._room.sonnenAufgangCallback = new TimeCallback(
61
- `${this._room.roomName} Sonnenaufgang Rollos`,
62
- TimeCallbackType.Sunrise,
63
- () => {
64
- if (this._room.skipNextRolloUp) {
65
- this._room.skipNextRolloUp = false;
66
- return;
67
- }
68
- this.sunriseUp();
69
- },
70
- this._room.Einstellungen.rolloOffset.sunrise,
71
- undefined,
72
- undefined,
73
- this._room.Einstellungen.rolloOffset,
74
- );
75
- if (!TimeCallbackService.darkOutsideOrNight(TimeCallbackService.dayType(this._room.Einstellungen.rolloOffset))) {
76
- this.sunriseUp(true);
77
- }
78
- TimeCallbackService.addCallback(this._room.sonnenAufgangCallback);
79
- }
80
-
81
- if (this._room.Einstellungen.sonnenUntergangRollos && this._room.Einstellungen.rolloOffset) {
82
- this._room.sonnenUntergangCallback = new TimeCallback(
83
- `${this._room.roomName} Sonnenuntergang Rollo`,
84
- TimeCallbackType.SunSet,
85
- () => {
86
- this.sunsetDown();
87
- },
88
- this._room.Einstellungen.rolloOffset.sunset,
89
- );
90
- if (TimeCallbackService.darkOutsideOrNight(TimeCallbackService.dayType(this._room.Einstellungen.rolloOffset))) {
91
- Utils.guardedTimeout(
92
- () => {
93
- this.allRolloDown(true, true);
94
- },
95
- 60000,
96
- this,
97
- );
98
- }
99
- TimeCallbackService.addCallback(this._room.sonnenUntergangCallback);
100
- }
101
-
102
- if (this._room.Einstellungen.rolloHeatReduction) {
103
- Utils.guardedInterval(this.setRolloByWeatherStatus, 15 * 60 * 1000, this, true);
104
- Utils.guardedTimeout(this.setRolloByWeatherStatus, 2 * 60 * 1000, this);
105
- }
106
- }
107
-
108
- private sunsetDown(): void {
109
- this.allRolloToLevel(0, true);
110
- if (this._room.PraesenzGroup.anyPresent() && this._room.Einstellungen.lampOffset) {
111
- this._room.LampenGroup.switchTimeConditional(TimeCallbackService.dayType(this._room.Einstellungen.lampOffset));
112
- }
113
- }
114
-
115
- public setRolloByWeatherStatus(): void {
116
- const timeOfDay: TimeOfDay = TimeCallbackService.dayType(this._room.Einstellungen.rolloOffset);
117
- const darkOutside: boolean = TimeCallbackService.darkOutsideOrNight(timeOfDay);
118
- this.fenster.forEach((f) => {
119
- if (!f.rollo) {
120
- return;
121
- }
122
- if (darkOutside) {
123
- f.restoreDesiredPosition();
124
- return;
125
- }
126
- let desiredPos: number = f.desiredPosition;
127
- if (desiredPos > 0) {
128
- WeatherService.weatherRolloPosition(
129
- desiredPos,
130
- this._room.HeatGroup.desiredTemp,
131
- this._room.HeatGroup.currentTemp,
132
- );
133
- }
134
- if (f.griffeInPosition(FensterPosition.offen) > 0 && desiredPos < 100) {
135
- return;
136
- }
137
- if (f.griffeInPosition(FensterPosition.kipp) > 0) {
138
- desiredPos = Math.max(30, desiredPos);
139
- }
140
- if (f.rollo.currentLevel === desiredPos) {
141
- // Rollo ist bereits auf der Zielposition
142
- return;
143
- }
144
- f.rollo.setLevel(desiredPos, false, true);
145
- });
146
- }
147
-
148
- public sunriseUp(initial: boolean = false): void {
149
- this.fenster.forEach((f) => {
150
- if (!f.noRolloOnSunrise && f.rollo) {
151
- ServerLogService.writeLog(
152
- LogLevel.Debug,
153
- `Fahre das Rollo zum Sonnenaufgang ${initial ? '(ggf. nachträglich)' : ''}für ${
154
- f.rollo.info.customName
155
- } hoch`,
156
- );
157
- f.setDesiredPosition(100);
158
- }
159
- });
160
- }
161
-
162
- public restoreRolloPosition(recalc: boolean = false): void {
163
- if (!recalc) {
164
- this.fenster.forEach((f) => {
165
- f.restoreDesiredPosition();
166
- });
167
- return;
168
- }
169
- if (!TimeCallbackService.darkOutsideOrNight(TimeCallbackService.dayType(this._room.Einstellungen.rolloOffset))) {
170
- this.sunriseUp(true);
171
- } else {
172
- this.sunsetDown();
173
- }
174
- }
175
- }
@@ -1,32 +0,0 @@
1
- import { RoomBase } from '../../../models/rooms/RoomBase';
2
- import { HmIpHeizgruppe } from '../hmIPDevices/hmIpHeizgruppe';
3
-
4
- export class HeatGroup {
5
- public get currentTemp(): number {
6
- if (this.heaters.length === 0) {
7
- return -99;
8
- }
9
- let value: number = 0;
10
- for (const h of this.heaters) {
11
- value += h.iTemperatur;
12
- }
13
- return Math.round((value / this.heaters.length) * 10) / 10;
14
- }
15
-
16
- public get desiredTemp(): number {
17
- if (this.heaters.length === 0) {
18
- return -99;
19
- }
20
- let value: number = 0;
21
- for (const h of this.heaters) {
22
- value += h.desiredTemperatur;
23
- }
24
- return Math.round((value / this.heaters.length) * 10) / 10;
25
- }
26
-
27
- public constructor(private _room: RoomBase, public heaters: HmIpHeizgruppe[]) {
28
- for (const h of [...heaters]) {
29
- h.room = this._room;
30
- }
31
- }
32
- }
@@ -1,106 +0,0 @@
1
- import { ZigbeeIkeaSteckdose } from '../zigbee/zigbeeIkeaSteckdose';
2
- import { ZigbeeIlluLedRGBCCT } from '../zigbee/zigbeeIlluLedRGBCCT';
3
- import { TimeCallbackService, TimeOfDay } from '../../services/time-callback-service';
4
- import { RoomBase } from '../../../models/rooms/RoomBase';
5
- import { iLamp } from '../iLamp';
6
-
7
- export class LampenGroup {
8
- public constructor(
9
- private _room: RoomBase,
10
- public Lampen: Array<iLamp>,
11
- public Stecker: Array<ZigbeeIkeaSteckdose>,
12
- public LED: Array<ZigbeeIlluLedRGBCCT> = [],
13
- ) {
14
- for (const lamp of [...Lampen, ...Stecker, ...LED]) {
15
- lamp.room = this._room;
16
- }
17
- }
18
-
19
- public anyLightsOwn(): boolean {
20
- let i: number;
21
- for(i=0; i<this.Lampen.length; i++) {
22
- if(this.Lampen[i].lightOn) {
23
- return true;
24
- }
25
- }
26
- for(i=0; i<this.LED.length; i++) {
27
- if(this.LED[i].on) {
28
- return true;
29
- }
30
- }
31
- for(i=0; i<this.Stecker.length; i++) {
32
- if(this.Stecker[i].steckerOn) {
33
- return true;
34
- }
35
- }
36
- return false;
37
- }
38
-
39
- public switchAll(target: boolean, force: boolean = false): void {
40
- this.setAllLampen(target, undefined, force);
41
- this.setAllStecker(target, undefined, force);
42
-
43
- this.LED.forEach((s) => {
44
- s.setLight(target);
45
- });
46
- }
47
-
48
- public switchTimeConditional(time: TimeOfDay): void {
49
- const darkOutside: boolean = TimeCallbackService.darkOutsideOrNight(time);
50
-
51
- let resultLampen = false;
52
- let resultSteckdosen = false;
53
- if (this.LED.length > 0) {
54
- this.LED.forEach((s) => {
55
- s.setTimeBased(time);
56
- });
57
- } else if (this.Stecker.length > 0) {
58
- resultSteckdosen = darkOutside;
59
- } else {
60
- resultLampen = darkOutside;
61
- }
62
-
63
- this.setAllLampen(resultLampen, time);
64
- this.setAllStecker(resultSteckdosen, time);
65
- }
66
-
67
- public setAllLampen(pValue: boolean, time?: TimeOfDay, force: boolean = false): void {
68
- if (this.Lampen?.length > 0) {
69
- this.Lampen.forEach((s) => {
70
- if (
71
- !pValue ||
72
- time === undefined ||
73
- (time === TimeOfDay.Night && s.settings.nightOn) ||
74
- (time === TimeOfDay.BeforeSunrise && s.settings.dawnOn) ||
75
- (time === TimeOfDay.AfterSunset && s.settings.duskOn)
76
- ) {
77
- const timeout: number = pValue && force ? 30 * 60 * 1000 : -1;
78
- s.setLight(pValue, timeout, force);
79
- }
80
- });
81
- }
82
- }
83
-
84
- public setAllStecker(pValue: boolean, time?: TimeOfDay, force: boolean = false): void {
85
- if (this.Stecker?.length > 0) {
86
- this.Stecker.forEach((s) => {
87
- if (
88
- !pValue ||
89
- time === undefined ||
90
- (time === TimeOfDay.Night && s.settings.nightOn) ||
91
- (time === TimeOfDay.BeforeSunrise && s.settings.dawnOn) ||
92
- (time === TimeOfDay.AfterSunset && s.settings.duskOn)
93
- ) {
94
- const timeout: number = pValue && force ? 30 * 60 * 1000 : -1;
95
- s.setStecker(pValue, timeout, force);
96
- }
97
- });
98
- }
99
- }
100
-
101
- public setAllLED(pValue: boolean, brightness: number = -1, color: string = '', colortemp: number = -1): void {
102
- this.LED.forEach((s) => {
103
- s.setLight(pValue, brightness, color, colortemp);
104
- });
105
- }
106
- }
@@ -1,187 +0,0 @@
1
- import { HmIpPraezenz } from '../hmIPDevices/hmIpPraezenz';
2
- import { HmIpBewegung } from '../hmIPDevices/hmIpBewegung';
3
- import { RoomBase } from '../../../models/rooms/RoomBase';
4
- import { TimeCallback, TimeCallbackType } from '../../../models/timeCallback';
5
- import { ServerLogService } from '../../services/log-service';
6
- import { LogLevel } from '../../../models/logLevel';
7
- import { TimeCallbackService } from '../../services/time-callback-service';
8
- import { Utils } from '../../services/utils/utils';
9
- import { ZigbeeAquaraMotion } from '../zigbee/zigbeeAquaraMotion';
10
-
11
- export class PraesenzGroup {
12
- private _lastMovement: Date = new Date(0);
13
-
14
- public constructor(
15
- private _room: RoomBase,
16
- public Prasenzen: HmIpPraezenz[],
17
- public Bewegungen: HmIpBewegung[] | ZigbeeAquaraMotion[],
18
- ) {
19
- for (const b of [...Prasenzen, ...Bewegungen]) {
20
- b.room = this._room;
21
- }
22
- }
23
-
24
- public initCallbacks(): void {
25
- this.Prasenzen.forEach((p) => {
26
- p.addPresenceCallback((val) => {
27
- if (!val) {
28
- return;
29
- }
30
- if (RoomBase.awayModeActive || (RoomBase.nightAlarmActive && !p.excludeFromNightAlarm)) {
31
- RoomBase.startIntrusionAlarm(this._room, p);
32
- }
33
- RoomBase.movementHistory.add(`${Utils.nowString()}: Raum "${this._room.roomName}" Gerät "${p.info.fullName}"`);
34
- });
35
- });
36
- this.Bewegungen.forEach((b) => {
37
- b.addMovementCallback((val) => {
38
- if (!val) {
39
- return;
40
- }
41
- if (RoomBase.awayModeActive || (RoomBase.nightAlarmActive && !b.excludeFromNightAlarm)) {
42
- RoomBase.startIntrusionAlarm(this._room, b);
43
- }
44
- RoomBase.movementHistory.add(`${Utils.nowString()}: Raum "${this._room.roomName}" Gerät "${b.info.fullName}"`);
45
- });
46
- });
47
- if (this._room.Einstellungen.lichtSonnenAufgangAus && this._room.Einstellungen.lampOffset) {
48
- this._room.sonnenAufgangLichtCallback = new TimeCallback(
49
- `${this._room.roomName} Morgens Lampe aus`,
50
- TimeCallbackType.Sunrise,
51
- () => {
52
- ServerLogService.writeLog(
53
- LogLevel.Info,
54
- `Es ist hell genug --> Schalte Lampen im ${this._room.roomName} aus`,
55
- );
56
- this._room.LampenGroup.switchAll(false);
57
- },
58
- this._room.Einstellungen.lampOffset.sunrise,
59
- );
60
- TimeCallbackService.addCallback(this._room.sonnenAufgangLichtCallback);
61
- }
62
-
63
- this.addLastLeftCallback(() => {
64
- this._room.LampenGroup.switchAll(false);
65
- });
66
-
67
- if (this._room.Einstellungen.lampenBeiBewegung) {
68
- this.addFirstEnterCallback(() => {
69
- ServerLogService.writeLog(
70
- LogLevel.DeepTrace,
71
- `Bewegung im Raum ${this._room.roomName} festgestellt --> Licht einschalten`,
72
- );
73
- this._room.setLightTimeBased();
74
- });
75
- }
76
- }
77
-
78
- public presentAmount(): number {
79
- let count = 0;
80
- for (let i = 0; i < this.Prasenzen.length; i++) {
81
- if (this.Prasenzen[i].presenceDetected) {
82
- count++;
83
- }
84
- }
85
- for (let i = 0; i < this.Bewegungen.length; i++) {
86
- if (this.Bewegungen[i].movementDetected) {
87
- count++;
88
- }
89
- }
90
-
91
- return count;
92
- }
93
-
94
- public anyPresent(): boolean {
95
- for (let i = 0; i < this.Prasenzen.length; i++) {
96
- if (this.Prasenzen[i].presenceDetected) {
97
- return true;
98
- }
99
- }
100
- for (let i = 0; i < this.Bewegungen.length; i++) {
101
- if (this.Bewegungen[i].movementDetected) {
102
- return true;
103
- }
104
- }
105
-
106
- return false;
107
- }
108
-
109
- public lastLeftCB(val: boolean, cb: () => void): void {
110
- if (val) {
111
- return;
112
- }
113
-
114
- if (this.anyPresent()) {
115
- return;
116
- }
117
-
118
- let timeAfterReset: number =
119
- Utils.nowMS() - this._lastMovement.getTime() - this._room.Einstellungen.movementResetTimer * 1000;
120
- if (timeAfterReset > 0) {
121
- ServerLogService.writeLog(
122
- LogLevel.Debug,
123
- `Movement reset in ${
124
- this._room.roomName
125
- }.\nActive Motions: ${this.presentAmount()}\nTime after Last Movement including Reset: ${timeAfterReset}`,
126
- );
127
- cb();
128
- return;
129
- }
130
- ServerLogService.writeLog(LogLevel.Debug, `Movement reset in ${this._room.roomName} delayed.`);
131
- Utils.guardedTimeout(
132
- () => {
133
- timeAfterReset =
134
- Utils.nowMS() - this._lastMovement.getTime() - this._room.Einstellungen.movementResetTimer * 1000;
135
- ServerLogService.writeLog(
136
- LogLevel.Debug,
137
- `Delayed Movement reset in ${
138
- this._room.roomName
139
- }.\nActive Motions: ${this.presentAmount()}\nTime after Last Movement including Reset: ${timeAfterReset}`,
140
- );
141
- if (!this.anyPresent() && timeAfterReset > 0) {
142
- cb();
143
- }
144
- },
145
- Math.abs(timeAfterReset) + 500,
146
- this,
147
- );
148
- }
149
-
150
- public addLastLeftCallback(cb: () => void): void {
151
- this.Prasenzen.forEach((p) => {
152
- p.addPresenceCallback((val) => {
153
- this.lastLeftCB(val, cb);
154
- });
155
- });
156
- this.Bewegungen.forEach((b) => {
157
- b.addMovementCallback((val) => {
158
- this.lastLeftCB(val, cb);
159
- });
160
- });
161
- }
162
-
163
- private firstEnterCallback(val: boolean, cb: () => void): void {
164
- if (!val) {
165
- return;
166
- }
167
- this._lastMovement = new Date();
168
- if (this.presentAmount() > 1) {
169
- return;
170
- }
171
-
172
- cb();
173
- }
174
-
175
- public addFirstEnterCallback(cb: () => void): void {
176
- this.Prasenzen.forEach((p) => {
177
- p.addPresenceCallback((val) => {
178
- this.firstEnterCallback(val, cb);
179
- });
180
- });
181
- this.Bewegungen.forEach((b) => {
182
- b.addMovementCallback((val) => {
183
- this.firstEnterCallback(val, cb);
184
- });
185
- });
186
- }
187
- }