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,205 +0,0 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { ServerLogService } from '../../services/log-service';
3
- import { Persist } from '../../services/dbo/persist';
4
- import { Utils } from '../../services/utils/utils';
5
- import { DeviceInfo } from '../DeviceInfo';
6
- import { ZigbeeDevice } from './zigbeeDevice';
7
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
8
- import { iIlluminationSensor } from '../iIlluminationSensor';
9
- import { RoomBase } from '../../../models/rooms/RoomBase';
10
- import { CurrentIlluminationDataPoint } from '../../../models/persistence/CurrentIlluminationDataPoint';
11
- import { CountToday } from '../../../models/persistence/todaysCount';
12
-
13
- export class ZigbeeAquaraMotion extends ZigbeeDevice implements iIlluminationSensor {
14
- public movementDetected: boolean = false;
15
- public excludeFromNightAlarm: boolean = false;
16
- public room: RoomBase | undefined = undefined;
17
-
18
- private _timeSinceLastMotion: number = 0;
19
- private _illuminance: number = 0;
20
- private _motionTimeout: number = 0;
21
- private _detectionsToday: number = 0;
22
-
23
- private _initialized: boolean = false;
24
- private _movementDetectedCallback: Array<(pValue: boolean) => void> = [];
25
- private _fallBackTimeout: NodeJS.Timeout | undefined;
26
-
27
- private occupancyTimeoutID = `occupancy_timeout`;
28
-
29
- // Currently measured brightness in lux
30
- public get currentIllumination(): number {
31
- return this._illuminance;
32
- }
33
-
34
- private set currentIllumination(value: number) {
35
- this._illuminance = value;
36
- Persist.persistCurrentIllumination(
37
- new CurrentIlluminationDataPoint(
38
- this.info.room,
39
- this.info.devID,
40
- value,
41
- new Date(),
42
- this.room?.LampenGroup.anyLightsOwn() ?? false,
43
- ),
44
- );
45
- }
46
-
47
- // Time since last motion in seconds
48
- public get timeSinceLastMotion(): number {
49
- return this._timeSinceLastMotion;
50
- }
51
-
52
- // Time after the last trigger until a motion event gets triggered again
53
- public get motionTimeout(): number {
54
- return this._motionTimeout;
55
- }
56
-
57
- public set motionTimeout(value: number) {
58
- if (!this.ioConn) {
59
- ServerLogService.writeLog(LogLevel.Error, `No connection active for "${this.info.customName}".`);
60
- return;
61
- }
62
-
63
- this.ioConn.setState(this.occupancyTimeoutID, value, (err) => {
64
- if (err) {
65
- console.log(`Error occured while setting motion timeout: ${err}`);
66
- return;
67
- }
68
- this._motionTimeout = value;
69
- });
70
- }
71
-
72
- public get detectionsToday(): number {
73
- return this._detectionsToday;
74
- }
75
-
76
- public set detectionsToday(pVal: number) {
77
- const oldVal: number = this._detectionsToday;
78
- this._detectionsToday = pVal;
79
- Persist.persistTodayCount(this, pVal, oldVal);
80
- }
81
-
82
- public constructor(pInfo: DeviceInfo) {
83
- super(pInfo, ZigbeeDeviceType.ZigbeeAquaraMotion);
84
-
85
- this.occupancyTimeoutID = `${this.info.fullID}.${this.occupancyTimeoutID}`;
86
-
87
- Persist.getCount(this).then((todayCount: CountToday) => {
88
- this.detectionsToday = todayCount.counter;
89
- ServerLogService.writeLog(
90
- LogLevel.Debug,
91
- `Bewegungscounter "${this.info.customName}" vorinitialisiert mit ${this.detectionsToday}`,
92
- );
93
- this._initialized = true;
94
- });
95
- }
96
-
97
- public addMovementCallback(pCallback: (pValue: boolean) => void): void {
98
- this._movementDetectedCallback.push(pCallback);
99
- }
100
-
101
- public updateMovement(newState: boolean): void {
102
- if (!this._initialized && newState) {
103
- ServerLogService.writeLog(
104
- LogLevel.Trace,
105
- `Bewegung für "${this.info.customName}" erkannt aber die Initialisierung aus der DB ist noch nicht erfolgt --> verzögern`,
106
- );
107
- Utils.guardedTimeout(
108
- () => {
109
- this.updateMovement(newState);
110
- },
111
- 1000,
112
- this,
113
- );
114
- return;
115
- }
116
-
117
- if (newState === this.movementDetected) {
118
- ServerLogService.writeLog(
119
- LogLevel.Debug,
120
- `Überspringe Bewegung für "${this.info.customName}" da bereits der Wert ${newState} vorliegt`,
121
- );
122
-
123
- if (newState) {
124
- // Wenn ein Sensor sich nicht von alleine zurücksetzt, hier erzwingen.
125
- this.resetFallbackTimeout();
126
- this.startFallbackTimeout();
127
- }
128
- return;
129
- }
130
-
131
- this.resetFallbackTimeout();
132
- this.movementDetected = newState;
133
- ServerLogService.writeLog(LogLevel.Debug, `Neuer Bewegunsstatus Wert für "${this.info.customName}": ${newState}`);
134
-
135
- if (newState) {
136
- this.startFallbackTimeout();
137
- this.detectionsToday++;
138
- ServerLogService.writeLog(
139
- LogLevel.Trace,
140
- `Dies ist die ${this.detectionsToday} Bewegung für "${this.info.customName}"`,
141
- );
142
- }
143
-
144
- for (const c of this._movementDetectedCallback) {
145
- c(newState);
146
- }
147
- }
148
-
149
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
150
- ServerLogService.writeLog(
151
- LogLevel.DeepTrace,
152
- `Stecker Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
153
- );
154
- super.update(idSplit, state, initial, true);
155
- switch (idSplit[3]) {
156
- case 'occupancy':
157
- ServerLogService.writeLog(
158
- LogLevel.Trace,
159
- `Motion sensor: Update for motion state of ${this.info.customName}: ${state.val}`,
160
- );
161
- this.updateMovement(state.val as boolean);
162
- break;
163
- case 'no_motion':
164
- ServerLogService.writeLog(
165
- LogLevel.Trace,
166
- `Motion sensor: Update for time since last motion of ${this.info.customName}: ${state.val}`,
167
- );
168
- this._timeSinceLastMotion = state.val as number;
169
- break;
170
- case 'illumincance':
171
- ServerLogService.writeLog(
172
- LogLevel.Trace,
173
- `Motion sensor: Update for illuminance of ${this.info.customName}: ${state.val}`,
174
- );
175
- this.currentIllumination = state.val as number;
176
- break;
177
- case 'occupancy_timeout':
178
- ServerLogService.writeLog(
179
- LogLevel.Trace,
180
- `Motion sensor: Update for motion timeout of ${this.info.customName}: ${state.val}`,
181
- );
182
- this._illuminance = state.val as number;
183
- break;
184
- }
185
- }
186
-
187
- private resetFallbackTimeout(): void {
188
- if (this._fallBackTimeout) {
189
- ServerLogService.writeLog(LogLevel.Trace, `Fallback Timeout für "${this.info.customName}" zurücksetzen`);
190
- clearTimeout(this._fallBackTimeout);
191
- }
192
- }
193
-
194
- private startFallbackTimeout(): void {
195
- this._fallBackTimeout = Utils.guardedTimeout(
196
- () => {
197
- ServerLogService.writeLog(LogLevel.Debug, `Benötige Fallback Bewegungs Reset für "${this.info.customName}"`);
198
- this._fallBackTimeout = undefined;
199
- this.updateMovement(false);
200
- },
201
- 270000,
202
- this,
203
- );
204
- }
205
- }
@@ -1,171 +0,0 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { DeviceInfo } from '../DeviceInfo';
3
- import { ZigbeeDevice } from './zigbeeDevice';
4
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
5
- import { ServerLogService } from '../../services/log-service';
6
- import { SonosService } from '../../services/Sonos/sonos-service';
7
- import { Utils } from '../../services/utils/utils';
8
- import { PollyService } from '../../services/Sonos/polly-service';
9
-
10
- export class ZigbeeAquaraVibra extends ZigbeeDevice {
11
- public sensitivity: string = '';
12
- public tiltAngle: number = 0;
13
- public tiltAngleX: number = 0;
14
- public tiltAngleXAbs: number = 0;
15
- public tiltAngleY: number = 0;
16
- public tiltAngleYAbs: number = 0;
17
- public tiltAngleZ: number = 0;
18
- public tilt: boolean = false;
19
- public vibration: boolean = false;
20
- public vibrationBlockedTimeStamp: number = 0;
21
- private _idSensitivity: string = '';
22
- private _vibrationBlocked: boolean = false;
23
- private _alarmMessage: string;
24
- // TODO Set Sensitivity
25
-
26
- public constructor(pInfo: DeviceInfo) {
27
- super(pInfo, ZigbeeDeviceType.ZigbeeAquaraVibra);
28
- this._alarmMessage = `Alarm bei ${this.info.customName}. Ich wiederhole: Alarm bei ${this.info.customName}`;
29
- PollyService.preloadTTS(this._alarmMessage);
30
- this._idSensitivity = `${this.info.fullID}.sensitivity`;
31
- }
32
-
33
- public set vibrationBlocked(pVal: boolean) {
34
- ServerLogService.writeLog(
35
- LogLevel.Debug,
36
- `${pVal ? 'Dea' : 'A'}ktiviere Vibrationsalarm für ${this.info.customName}`,
37
- );
38
- if (pVal) {
39
- this.vibrationBlockedTimeStamp = new Date().getTime();
40
- }
41
- this._vibrationBlocked = pVal;
42
- }
43
-
44
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
45
- ServerLogService.writeLog(
46
- LogLevel.DeepTrace,
47
- `Stecker Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
48
- );
49
- super.update(idSplit, state, initial, true);
50
- switch (idSplit[3]) {
51
- case 'sensitivity':
52
- ServerLogService.writeLog(
53
- LogLevel.Trace,
54
- `Vibrationssensor Update für ${this.info.customName} auf Sensitivity: ${state.val}`,
55
- );
56
- this.tiltAngleZ = state.val as number;
57
- break;
58
- case 'tilt_angle_z':
59
- ServerLogService.writeLog(
60
- LogLevel.Trace,
61
- `Vibrationssensor Update für ${this.info.customName} auf Winkel Z: ${state.val}`,
62
- );
63
- this.tiltAngleZ = state.val as number;
64
- break;
65
- case 'tilt_angle_y':
66
- ServerLogService.writeLog(
67
- LogLevel.Trace,
68
- `Vibrationssensor Update für ${this.info.customName} auf Winkel Y: ${state.val}`,
69
- );
70
- this.tiltAngleY = state.val as number;
71
- break;
72
- case 'tilt_angle_x':
73
- ServerLogService.writeLog(
74
- LogLevel.Trace,
75
- `Vibrationssensor Update für ${this.info.customName} auf Winkel X: ${state.val}`,
76
- );
77
- this.tiltAngleX = state.val as number;
78
- break;
79
- case 'vibration':
80
- ServerLogService.writeLog(
81
- LogLevel.Trace,
82
- `Vibrationssensor Update für ${this.info.customName} auf Vibration erkannt: ${state.val}`,
83
- );
84
- this.vibration = state.val as boolean;
85
- if (this.vibration) {
86
- Utils.guardedTimeout(
87
- () => {
88
- this.alarmCheck();
89
- },
90
- 8500,
91
- this,
92
- );
93
- }
94
- break;
95
- case 'tilt_angle_y_abs':
96
- ServerLogService.writeLog(
97
- LogLevel.Trace,
98
- `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel Y: ${state.val}`,
99
- );
100
- this.tiltAngleYAbs = state.val as number;
101
- break;
102
- case 'tilt_angle_X_abs':
103
- ServerLogService.writeLog(
104
- LogLevel.Trace,
105
- `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel X: ${state.val}`,
106
- );
107
- this.tiltAngleXAbs = state.val as number;
108
- break;
109
- case 'tilt_angle':
110
- ServerLogService.writeLog(
111
- LogLevel.Trace,
112
- `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`,
113
- );
114
- this.tiltAngle = state.val as number;
115
- break;
116
- case 'tilt':
117
- ServerLogService.writeLog(
118
- LogLevel.Trace,
119
- `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`,
120
- );
121
- this.tilt = state.val as boolean;
122
- break;
123
- }
124
- }
125
-
126
- public setSensitivity(pVal: number): void {
127
- let result = 'high';
128
- switch (pVal) {
129
- case 0:
130
- result = 'low';
131
- break;
132
- case 1:
133
- result = 'medium';
134
- break;
135
- }
136
- if (this._idSensitivity === '') {
137
- ServerLogService.writeLog(LogLevel.Error, `Keine Switch ID für "${this.info.customName}" bekannt.`);
138
- return;
139
- }
140
-
141
- if (!this.ioConn) {
142
- ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
143
- return;
144
- }
145
-
146
- ServerLogService.writeLog(
147
- LogLevel.Debug,
148
- `Vibration Sensitivität schalten: "${this.info.customName}" Wert: ${result}`,
149
- );
150
- this.ioConn.setState(this._idSensitivity, result, (err) => {
151
- if (err) {
152
- console.log(`Stecker schalten ergab Fehler: ${err}`);
153
- }
154
- });
155
- }
156
-
157
- private alarmCheck(): void {
158
- ServerLogService.writeLog(
159
- LogLevel.Debug,
160
- `Alarmcheck für ${this.info.customName} Alarmblock Wert: ${this._vibrationBlocked}`,
161
- );
162
- if (this._vibrationBlocked) {
163
- ServerLogService.writeLog(LogLevel.Debug, `Fenster offen, ignoriere Vibrationsalarm bei ${this.info.customName}`);
164
- return;
165
- }
166
-
167
- const message = this._alarmMessage;
168
- SonosService.speakOnAll(message);
169
- ServerLogService.writeLog(LogLevel.Alert, message);
170
- }
171
- }
@@ -1,94 +0,0 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { DeviceInfo } from '../DeviceInfo';
3
- import { ZigbeeDevice } from './zigbeeDevice';
4
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
5
- import { ServerLogService } from '../../services/log-service';
6
- import { SonosService } from '../../services/Sonos/sonos-service';
7
- import { Utils } from '../../services/utils/utils';
8
- import { PollyService } from '../../services/Sonos/polly-service';
9
-
10
- export class ZigbeeAquaraWater extends ZigbeeDevice {
11
- public water: boolean = false;
12
- private _roomName: string = '';
13
- public iAlarm: NodeJS.Timeout | undefined = undefined;
14
- private _messageAlarmFirst: string = '';
15
- private _messageAlarm: string = '';
16
- private _messageAlarmEnd: string = '';
17
-
18
- public set roomName(val: string) {
19
- this._roomName = val;
20
- this._messageAlarmFirst = `${this.info.customName} erkennt Wasser. Möglicher Rohrbruch in ${this._roomName}`;
21
- this._messageAlarm = `${this.info.customName} hat ausgelöst. Poolparty in ${this._roomName}`;
22
- this._messageAlarmEnd = `Wasser Alarm Ende: Überflutung in ${this._roomName} zu Ende.`;
23
- PollyService.preloadTTS(this._messageAlarmFirst);
24
- PollyService.preloadTTS(this._messageAlarm);
25
- PollyService.preloadTTS(this._messageAlarmEnd);
26
- }
27
-
28
- public constructor(pInfo: DeviceInfo) {
29
- super(pInfo, ZigbeeDeviceType.ZigbeeAquaraWater);
30
- this._messageAlarmFirst = `${this.info.customName} erkennt Wasser. Möglicher Rohrbruch in ${this._roomName}`;
31
- this._messageAlarm = `${this.info.customName} hat ausgelöst. Poolparty in ${this._roomName}`;
32
- this._messageAlarmEnd = `Wasser Alarm Ende: Überflutung in ${this._roomName} zu Ende.`;
33
- }
34
-
35
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
36
- ServerLogService.writeLog(
37
- LogLevel.DeepTrace,
38
- `Water Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
39
- );
40
- super.update(idSplit, state, initial, true);
41
- switch (idSplit[3]) {
42
- case 'detected':
43
- ServerLogService.writeLog(LogLevel.Debug, `Wasser Update für ${this.info.customName} auf Wasser: ${state.val}`);
44
- const newVal: boolean = state.val === true;
45
- if (this.water === true && !newVal) {
46
- this.stopAlarm();
47
- } else if (newVal) {
48
- this.startAlarm();
49
- }
50
- this.water = newVal;
51
- break;
52
- }
53
- }
54
-
55
- private startAlarm(): void {
56
- if (this.iAlarm !== undefined) {
57
- clearInterval(this.iAlarm);
58
- }
59
- this.iAlarm = Utils.guardedInterval(
60
- () => {
61
- this.alarm();
62
- },
63
- 15000,
64
- this,
65
- );
66
- this.alarm(true);
67
- }
68
-
69
- public stopAlarm(quiet: boolean = false): void {
70
- if (this.iAlarm) {
71
- clearInterval(this.iAlarm);
72
- }
73
- if (quiet) {
74
- return;
75
- }
76
- const message = this._messageAlarmEnd;
77
- Utils.guardedNewThread(() => {
78
- ServerLogService.writeLog(LogLevel.Alert, message);
79
- });
80
- Utils.guardedNewThread(() => {
81
- SonosService.speakOnAll(message);
82
- });
83
- }
84
-
85
- private alarm(first: boolean = false): void {
86
- const message = first ? this._messageAlarmFirst : this._messageAlarm;
87
- Utils.guardedNewThread(() => {
88
- ServerLogService.writeLog(LogLevel.Alert, message);
89
- });
90
- Utils.guardedNewThread(() => {
91
- SonosService.speakOnAll(message, 80);
92
- });
93
- }
94
- }
@@ -1,77 +0,0 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { ServerLogService } from '../../services/log-service';
3
- import { DeviceInfo } from '../DeviceInfo';
4
- import { ZigbeeDevice } from './zigbeeDevice';
5
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
6
- import { ActuatorSettings } from '../../../models/actuatorSettings';
7
-
8
- export class ZigbeeBlitzShp extends ZigbeeDevice {
9
- public steckerOn: boolean = false;
10
- public current: number = 0;
11
- public energy: number = 0;
12
- public loadPower: number = 0;
13
- public settings: ActuatorSettings = new ActuatorSettings();
14
- private steckerOnSwitchID: string = '';
15
-
16
- public constructor(pInfo: DeviceInfo) {
17
- super(pInfo, ZigbeeDeviceType.ZigbeeBlitzShp);
18
- this.steckerOnSwitchID = `${this.info.fullID}.state`;
19
- }
20
-
21
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
22
- ServerLogService.writeLog(
23
- LogLevel.DeepTrace,
24
- `Stecker Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
25
- );
26
- super.update(idSplit, state, initial, true);
27
- switch (idSplit[3]) {
28
- case 'state':
29
- ServerLogService.writeLog(LogLevel.Trace, `Stecker Update für ${this.info.customName} auf ${state.val}`);
30
- this.steckerOn = state.val as boolean;
31
- break;
32
- case 'energy':
33
- ServerLogService.writeLog(
34
- LogLevel.Trace,
35
- `Stecker Update für ${this.info.customName} auf Energie: ${state.val}`,
36
- );
37
- this.energy = state.val as number;
38
- break;
39
- case 'current':
40
- ServerLogService.writeLog(LogLevel.Trace, `Stecker Update für ${this.info.customName} auf Strom: ${state.val}`);
41
- this.current = state.val as number;
42
- break;
43
- case 'load_power':
44
- ServerLogService.writeLog(
45
- LogLevel.Trace,
46
- `Stecker Update für ${this.info.customName} auf Leistungsaufnahme: ${state.val}`,
47
- );
48
- this.loadPower = state.val as number;
49
- break;
50
- }
51
- }
52
-
53
- public setStecker(pValue: boolean): void {
54
- if (this.steckerOnSwitchID === '') {
55
- ServerLogService.writeLog(LogLevel.Error, `Keine Switch ID für "${this.info.customName}" bekannt.`);
56
- return;
57
- }
58
-
59
- if (!this.ioConn) {
60
- ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
61
- return;
62
- }
63
-
64
- ServerLogService.writeLog(LogLevel.Debug, `Stecker schalten: "${this.info.customName}" Wert: ${pValue}`);
65
- this.ioConn.setState(this.steckerOnSwitchID, pValue, (err) => {
66
- if (err) {
67
- console.log(`Stecker schalten ergab Fehler: ${err}`);
68
- }
69
- });
70
- }
71
-
72
- public toggleStecker(): boolean {
73
- const newVal = !this.steckerOn;
74
- this.setStecker(newVal);
75
- return newVal;
76
- }
77
- }
@@ -1,115 +0,0 @@
1
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
2
- import { DeviceInfo } from '../DeviceInfo';
3
- import { LogLevel } from '../../../models/logLevel';
4
- import { ZigbeeAddDeviceItem, ZigbeeRoomSettings } from '../../../models/rooms/RoomSettings/zigbeeRoomSettings';
5
- import { ServerLogService } from '../../services/log-service';
6
- import { ioBrokerBaseDevice } from '../iIoBrokerDevice';
7
- import { RoomBase } from '../../../models/rooms/RoomBase';
8
-
9
- export class ZigbeeDevice extends ioBrokerBaseDevice {
10
- private static roomSettings: { [id: string]: ZigbeeRoomSettings } = {};
11
- public room: RoomBase | undefined = undefined;
12
- public deviceType: ZigbeeDeviceType;
13
- public available: boolean = false;
14
- public linkQuality: number = 0;
15
- public battery: number = -1;
16
- public voltage: string = '';
17
-
18
- public static addRoom(shortName: string, settings: ZigbeeRoomSettings): void {
19
- if (this.roomSettings[shortName] !== undefined) {
20
- ServerLogService.writeLog(
21
- LogLevel.Alert,
22
- `Es gibt bereits ein Registrat für ZigbeeRoomsettings für den Raumnamen "${shortName}"`,
23
- );
24
- return;
25
- }
26
- this.roomSettings[shortName] = settings;
27
- }
28
-
29
- public static checkMissing(): void {
30
- for (const rName in this.roomSettings) {
31
- this.roomSettings[rName].checkMissing();
32
- }
33
- }
34
-
35
- public constructor(pInfo: DeviceInfo, pType: ZigbeeDeviceType) {
36
- super(pInfo);
37
- this.deviceType = pType;
38
- this.addToCorrectRoom();
39
- }
40
-
41
- protected addToCorrectRoom(): void {
42
- const settings: ZigbeeRoomSettings | undefined = ZigbeeDevice.roomSettings[this.info.room];
43
- if (settings !== undefined) {
44
- if (settings.devices[this.deviceType] === undefined) {
45
- ServerLogService.missingZigbeeRoomHandling(settings.RoomName, this.deviceType);
46
- return;
47
- }
48
- const deviceSettings: ZigbeeAddDeviceItem | undefined =
49
- settings.devices[this.deviceType][this.info.deviceRoomIndex];
50
- if (deviceSettings === undefined) {
51
- ServerLogService.missingZigbeeRoomIndexHandling(settings.RoomName, this.info.deviceRoomIndex, this.deviceType);
52
- return;
53
- }
54
-
55
- if (deviceSettings.customName !== undefined) {
56
- this.info.customName = deviceSettings.customName;
57
- }
58
- deviceSettings.setID(this.info.devID);
59
- deviceSettings.added = true;
60
- ServerLogService.addedZigbeeDeviceToRoom(settings.RoomName, this.deviceType, this.info.deviceRoomIndex);
61
- return;
62
- }
63
- ServerLogService.writeLog(LogLevel.Warn, `${this.info.room} ist noch kein bekannter Raum für Zigbee Geräte`);
64
- }
65
-
66
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false, pOverride: boolean = false): void {
67
- ServerLogService.writeLog(
68
- LogLevel.DeepTrace,
69
- `Zigbee:Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
70
- );
71
- if (!pOverride) {
72
- ServerLogService.writeLog(
73
- LogLevel.Warn,
74
- `Keine Update Überschreibung für "${this.info.customName}":\n\tID: ${idSplit.join(
75
- '.',
76
- )}\n\tData: ${JSON.stringify(state)}`,
77
- );
78
- }
79
-
80
- switch (idSplit[3]) {
81
- case 'available':
82
- this.available = state.val as boolean;
83
- if (!this.available) {
84
- ServerLogService.writeLog(
85
- LogLevel.Debug,
86
- `Das Zigbee Gerät mit dem Namen "${this.info.customName}" ist nicht erreichbar.`,
87
- );
88
- }
89
- break;
90
- case 'battery':
91
- this.battery = state.val as number;
92
- if (this.battery < 20) {
93
- ServerLogService.writeLog(
94
- LogLevel.Alert,
95
- `Das Zigbee Gerät mit dem Namen "${this.info.customName}" hat unter 20% Batterie.`,
96
- );
97
- }
98
- break;
99
-
100
- case 'link_quality':
101
- this.linkQuality = state.val as number;
102
- if (this.linkQuality < 5) {
103
- ServerLogService.writeLog(
104
- LogLevel.Debug,
105
- `Das Zigbee Gerät mit dem Namen "${this.info.customName}" hat eine schlechte Verbindung (${this.linkQuality}).`,
106
- );
107
- }
108
- break;
109
-
110
- case 'voltage':
111
- this.voltage = state.val as string;
112
- break;
113
- }
114
- }
115
- }
@@ -1,14 +0,0 @@
1
- export enum ZigbeeDeviceType {
2
- unknown = 0,
3
- ZigbeeIkeaFernbedienung = 1,
4
- ZigbeeIkeaSteckdose = 2,
5
- ZigbeeIlluLedRGBCCT = 3,
6
- ZigbeeAquaraVibra = 4,
7
- ZigbeeIlluDimmer = 5,
8
- ZigbeeHeimanSmoke = 6,
9
- ZigbeeAquaraWater = 7,
10
- ZigbeeBlitzShp = 8,
11
- ZigbeeIlluLampe = 9,
12
- ZigbeeIlluActuator = 10,
13
- ZigbeeAquaraMotion = 11,
14
- }