@digital-alchemy/hass 24.9.3 → 24.9.5

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 (276) hide show
  1. package/README.md +3 -0
  2. package/dist/dynamic.d.ts +1 -1
  3. package/dist/dynamic.js +7 -2
  4. package/dist/dynamic.js.map +1 -1
  5. package/dist/extensions/area.extension.d.ts +2 -12
  6. package/dist/extensions/area.extension.js +20 -26
  7. package/dist/extensions/area.extension.js.map +1 -1
  8. package/dist/extensions/backup.extension.d.ts +2 -7
  9. package/dist/extensions/backup.extension.js +5 -8
  10. package/dist/extensions/backup.extension.js.map +1 -1
  11. package/dist/extensions/call-proxy.extension.d.ts +1 -1
  12. package/dist/extensions/call-proxy.extension.js +3 -22
  13. package/dist/extensions/call-proxy.extension.js.map +1 -1
  14. package/dist/extensions/config.extension.d.ts +2 -6
  15. package/dist/extensions/config.extension.js +21 -25
  16. package/dist/extensions/config.extension.js.map +1 -1
  17. package/dist/extensions/conversation.extension.d.ts +2 -6
  18. package/dist/extensions/conversation.extension.js +5 -8
  19. package/dist/extensions/conversation.extension.js.map +1 -1
  20. package/dist/extensions/device.extension.d.ts +2 -5
  21. package/dist/extensions/device.extension.js +16 -22
  22. package/dist/extensions/device.extension.js.map +1 -1
  23. package/dist/extensions/entity.extension.d.ts +2 -61
  24. package/dist/extensions/entity.extension.js +42 -83
  25. package/dist/extensions/entity.extension.js.map +1 -1
  26. package/dist/extensions/events.extension.d.ts +3 -11
  27. package/dist/extensions/events.extension.js +8 -11
  28. package/dist/extensions/events.extension.js.map +1 -1
  29. package/dist/extensions/fetch-api.extension.d.ts +12 -4
  30. package/dist/extensions/fetch-api.extension.js +23 -35
  31. package/dist/extensions/fetch-api.extension.js.map +1 -1
  32. package/dist/extensions/floor.extension.d.ts +2 -9
  33. package/dist/extensions/floor.extension.js +17 -23
  34. package/dist/extensions/floor.extension.js.map +1 -1
  35. package/dist/extensions/id-by.extension.js +15 -20
  36. package/dist/extensions/id-by.extension.js.map +1 -1
  37. package/dist/extensions/index.d.ts +1 -0
  38. package/dist/extensions/index.js +16 -18
  39. package/dist/extensions/index.js.map +1 -1
  40. package/dist/extensions/internal.extension.d.ts +18 -0
  41. package/dist/extensions/internal.extension.js +102 -0
  42. package/dist/extensions/internal.extension.js.map +1 -0
  43. package/dist/extensions/label.extension.d.ts +2 -9
  44. package/dist/extensions/label.extension.js +17 -23
  45. package/dist/extensions/label.extension.js.map +1 -1
  46. package/dist/extensions/reference.extension.d.ts +2 -12
  47. package/dist/extensions/reference.extension.js +19 -25
  48. package/dist/extensions/reference.extension.js.map +1 -1
  49. package/dist/extensions/registry.extension.d.ts +2 -7
  50. package/dist/extensions/registry.extension.js +1 -4
  51. package/dist/extensions/registry.extension.js.map +1 -1
  52. package/dist/extensions/websocket-api.extension.d.ts +3 -78
  53. package/dist/extensions/websocket-api.extension.js +82 -165
  54. package/dist/extensions/websocket-api.extension.js.map +1 -1
  55. package/dist/extensions/zone.extension.d.ts +2 -7
  56. package/dist/extensions/zone.extension.js +15 -21
  57. package/dist/extensions/zone.extension.js.map +1 -1
  58. package/dist/hass.module.d.ts +47 -36
  59. package/dist/hass.module.js +70 -70
  60. package/dist/hass.module.js.map +1 -1
  61. package/dist/helpers/backup.helper.js +1 -2
  62. package/dist/helpers/constants.helper.js +15 -18
  63. package/dist/helpers/constants.helper.js.map +1 -1
  64. package/dist/helpers/device.helper.js +2 -5
  65. package/dist/helpers/device.helper.js.map +1 -1
  66. package/dist/helpers/entity-state.helper.d.ts +3 -8
  67. package/dist/helpers/entity-state.helper.js +1 -8
  68. package/dist/helpers/entity-state.helper.js.map +1 -1
  69. package/dist/helpers/features.helper.js +79 -85
  70. package/dist/helpers/features.helper.js.map +1 -1
  71. package/dist/helpers/fetch/calendar.js +1 -2
  72. package/dist/helpers/fetch/configuration.js +2 -5
  73. package/dist/helpers/fetch/configuration.js.map +1 -1
  74. package/dist/helpers/fetch/index.js +5 -8
  75. package/dist/helpers/fetch/index.js.map +1 -1
  76. package/dist/helpers/fetch/server-log.js +1 -2
  77. package/dist/helpers/fetch/server-log.js.map +1 -1
  78. package/dist/helpers/fetch/service-list.js +1 -2
  79. package/dist/helpers/fetch/weather-forecasts.js +1 -2
  80. package/dist/helpers/fetch/weather-forecasts.js.map +1 -1
  81. package/dist/helpers/fetch.helper.d.ts +162 -0
  82. package/dist/helpers/fetch.helper.js +161 -0
  83. package/dist/helpers/fetch.helper.js.map +1 -0
  84. package/dist/helpers/id-by.helper.js +1 -2
  85. package/dist/helpers/index.d.ts +2 -1
  86. package/dist/helpers/index.js +13 -15
  87. package/dist/helpers/index.js.map +1 -1
  88. package/dist/helpers/interfaces.helper.d.ts +228 -0
  89. package/dist/helpers/interfaces.helper.js +10 -0
  90. package/dist/helpers/interfaces.helper.js.map +1 -0
  91. package/dist/helpers/manifest.helper.d.ts +0 -1
  92. package/dist/helpers/manifest.helper.js +0 -1
  93. package/dist/helpers/notify.helper.d.ts +13 -5
  94. package/dist/helpers/notify.helper.js +1 -2
  95. package/dist/helpers/registry.js +7 -10
  96. package/dist/helpers/registry.js.map +1 -1
  97. package/dist/helpers/utility.helper.d.ts +6 -1
  98. package/dist/helpers/utility.helper.js +9 -13
  99. package/dist/helpers/utility.helper.js.map +1 -1
  100. package/dist/helpers/websocket.helper.d.ts +1 -2
  101. package/dist/helpers/websocket.helper.js +1 -2
  102. package/dist/index.js +5 -8
  103. package/dist/index.js.map +1 -1
  104. package/dist/mock_assistant/extensions/area.extension.d.ts +8 -0
  105. package/dist/mock_assistant/extensions/area.extension.js +51 -0
  106. package/dist/mock_assistant/extensions/area.extension.js.map +1 -0
  107. package/dist/mock_assistant/extensions/config.extension.d.ts +14 -0
  108. package/dist/mock_assistant/extensions/config.extension.js +29 -0
  109. package/dist/mock_assistant/extensions/config.extension.js.map +1 -0
  110. package/dist/mock_assistant/extensions/device.extension.d.ts +8 -0
  111. package/dist/mock_assistant/extensions/device.extension.js +33 -0
  112. package/dist/mock_assistant/extensions/device.extension.js.map +1 -0
  113. package/dist/mock_assistant/extensions/entity-registry.extension.d.ts +13 -0
  114. package/dist/mock_assistant/extensions/entity-registry.extension.js +28 -0
  115. package/dist/mock_assistant/extensions/entity-registry.extension.js.map +1 -0
  116. package/dist/mock_assistant/extensions/entity.extension.d.ts +30 -0
  117. package/dist/mock_assistant/extensions/entity.extension.js +77 -0
  118. package/dist/mock_assistant/extensions/entity.extension.js.map +1 -0
  119. package/dist/mock_assistant/extensions/events.extension.d.ts +1 -1
  120. package/dist/mock_assistant/extensions/events.extension.js +3 -6
  121. package/dist/mock_assistant/extensions/events.extension.js.map +1 -1
  122. package/dist/mock_assistant/extensions/fetch.extension.d.ts +1 -0
  123. package/dist/mock_assistant/extensions/fetch.extension.js +4 -0
  124. package/dist/mock_assistant/extensions/fetch.extension.js.map +1 -0
  125. package/dist/mock_assistant/extensions/fixtures.extension.d.ts +1 -1
  126. package/dist/mock_assistant/extensions/fixtures.extension.js +29 -33
  127. package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -1
  128. package/dist/mock_assistant/extensions/floor.extension.d.ts +8 -0
  129. package/dist/mock_assistant/extensions/floor.extension.js +51 -0
  130. package/dist/mock_assistant/extensions/floor.extension.js.map +1 -0
  131. package/dist/mock_assistant/extensions/index.d.ts +10 -0
  132. package/dist/mock_assistant/extensions/index.js +12 -5
  133. package/dist/mock_assistant/extensions/index.js.map +1 -1
  134. package/dist/mock_assistant/extensions/label.extension.d.ts +8 -0
  135. package/dist/mock_assistant/extensions/label.extension.js +51 -0
  136. package/dist/mock_assistant/extensions/label.extension.js.map +1 -0
  137. package/dist/mock_assistant/extensions/services.extension.d.ts +12 -0
  138. package/dist/mock_assistant/extensions/services.extension.js +20 -0
  139. package/dist/mock_assistant/extensions/services.extension.js.map +1 -0
  140. package/dist/mock_assistant/extensions/websocket-api.extension.d.ts +15 -0
  141. package/dist/mock_assistant/extensions/websocket-api.extension.js +68 -0
  142. package/dist/mock_assistant/extensions/websocket-api.extension.js.map +1 -0
  143. package/dist/mock_assistant/extensions/zone.extension.d.ts +8 -0
  144. package/dist/mock_assistant/extensions/zone.extension.js +51 -0
  145. package/dist/mock_assistant/extensions/zone.extension.js.map +1 -0
  146. package/dist/mock_assistant/helpers/fixtures.js +1 -2
  147. package/dist/mock_assistant/helpers/index.d.ts +0 -1
  148. package/dist/mock_assistant/helpers/index.js +1 -5
  149. package/dist/mock_assistant/helpers/index.js.map +1 -1
  150. package/dist/mock_assistant/index.js +3 -6
  151. package/dist/mock_assistant/index.js.map +1 -1
  152. package/dist/mock_assistant/main.js +11 -15
  153. package/dist/mock_assistant/main.js.map +1 -1
  154. package/dist/mock_assistant/mock-assistant.module.d.ts +156 -3
  155. package/dist/mock_assistant/mock-assistant.module.js +56 -11
  156. package/dist/mock_assistant/mock-assistant.module.js.map +1 -1
  157. package/dist/quickboot.module.js +5 -8
  158. package/dist/quickboot.module.js.map +1 -1
  159. package/dist/testing/area.spec.js +106 -194
  160. package/dist/testing/area.spec.js.map +1 -1
  161. package/dist/testing/backup.spec.js +97 -139
  162. package/dist/testing/backup.spec.js.map +1 -1
  163. package/dist/testing/config.spec.js +79 -153
  164. package/dist/testing/config.spec.js.map +1 -1
  165. package/dist/testing/device.spec.js +35 -69
  166. package/dist/testing/device.spec.js.map +1 -1
  167. package/dist/testing/entity.spec.js +94 -149
  168. package/dist/testing/entity.spec.js.map +1 -1
  169. package/dist/testing/events.spec.js +33 -57
  170. package/dist/testing/events.spec.js.map +1 -1
  171. package/dist/testing/fetch-api.spec.js +242 -427
  172. package/dist/testing/fetch-api.spec.js.map +1 -1
  173. package/dist/testing/fixtures.spec.d.ts +1 -0
  174. package/dist/testing/fixtures.spec.js +150 -0
  175. package/dist/testing/fixtures.spec.js.map +1 -0
  176. package/dist/testing/floor.spec.js +106 -194
  177. package/dist/testing/floor.spec.js.map +1 -1
  178. package/dist/testing/id-by.spec.js +68 -107
  179. package/dist/testing/id-by.spec.js.map +1 -1
  180. package/dist/testing/label.spec.js +106 -194
  181. package/dist/testing/label.spec.js.map +1 -1
  182. package/dist/testing/ref-by.spec.js +155 -219
  183. package/dist/testing/ref-by.spec.js.map +1 -1
  184. package/dist/testing/websocket.spec.d.ts +1 -8
  185. package/dist/testing/websocket.spec.js +35 -50
  186. package/dist/testing/websocket.spec.js.map +1 -1
  187. package/dist/testing/workflow.spec.js +82 -81
  188. package/dist/testing/workflow.spec.js.map +1 -1
  189. package/dist/testing/zone.spec.js +61 -113
  190. package/dist/testing/zone.spec.js.map +1 -1
  191. package/package.json +62 -44
  192. package/scripts/mock-assistant.sh +5 -0
  193. package/scripts/run-e2e.sh +7 -0
  194. package/scripts/test.sh +2 -0
  195. package/src/dynamic.ts +4254 -0
  196. package/src/extensions/area.extension.ts +118 -0
  197. package/src/extensions/backup.extension.ts +63 -0
  198. package/src/extensions/call-proxy.extension.ts +113 -0
  199. package/src/extensions/config.extension.ts +119 -0
  200. package/src/extensions/conversation.extension.ts +46 -0
  201. package/src/extensions/device.extension.ts +56 -0
  202. package/src/extensions/entity.extension.ts +344 -0
  203. package/src/extensions/events.extension.ts +25 -0
  204. package/src/extensions/fetch-api.extension.ts +269 -0
  205. package/src/extensions/floor.extension.ts +76 -0
  206. package/src/extensions/id-by.extension.ts +157 -0
  207. package/src/extensions/index.ts +16 -0
  208. package/src/extensions/internal.extension.ts +145 -0
  209. package/src/extensions/label.extension.ts +83 -0
  210. package/src/extensions/reference.extension.ts +330 -0
  211. package/src/extensions/registry.extension.ts +44 -0
  212. package/src/extensions/websocket-api.extension.ts +554 -0
  213. package/src/extensions/zone.extension.ts +69 -0
  214. package/src/hass.module.ts +217 -0
  215. package/src/helpers/backup.helper.ts +11 -0
  216. package/src/helpers/constants.helper.ts +30 -0
  217. package/src/helpers/device.helper.ts +25 -0
  218. package/src/helpers/entity-state.helper.ts +171 -0
  219. package/src/helpers/features.helper.ts +580 -0
  220. package/src/helpers/fetch/calendar.ts +54 -0
  221. package/src/helpers/fetch/configuration.ts +75 -0
  222. package/src/helpers/fetch/index.ts +5 -0
  223. package/src/helpers/fetch/server-log.ts +28 -0
  224. package/src/helpers/fetch/service-list.ts +64 -0
  225. package/src/helpers/fetch/weather-forecasts.ts +86 -0
  226. package/src/helpers/fetch.helper.ts +328 -0
  227. package/src/helpers/id-by.helper.ts +53 -0
  228. package/src/helpers/index.ts +13 -0
  229. package/src/helpers/interfaces.helper.ts +340 -0
  230. package/src/helpers/manifest.helper.ts +0 -0
  231. package/src/helpers/notify.helper.ts +302 -0
  232. package/src/helpers/registry.ts +281 -0
  233. package/src/helpers/utility.helper.ts +147 -0
  234. package/src/helpers/websocket.helper.ts +117 -0
  235. package/src/index.ts +5 -0
  236. package/src/mock_assistant/extensions/area.extension.ts +62 -0
  237. package/src/mock_assistant/extensions/config.extension.ts +33 -0
  238. package/src/mock_assistant/extensions/device.extension.ts +44 -0
  239. package/src/mock_assistant/extensions/entity-registry.extension.ts +41 -0
  240. package/src/mock_assistant/extensions/entity.extension.ts +114 -0
  241. package/src/mock_assistant/extensions/events.extension.ts +37 -0
  242. package/src/mock_assistant/extensions/fetch.extension.ts +3 -0
  243. package/src/mock_assistant/extensions/fixtures.extension.ts +79 -0
  244. package/src/mock_assistant/extensions/floor.extension.ts +64 -0
  245. package/src/mock_assistant/extensions/index.ts +12 -0
  246. package/src/mock_assistant/extensions/label.extension.ts +64 -0
  247. package/src/mock_assistant/extensions/services.extension.ts +25 -0
  248. package/src/mock_assistant/extensions/websocket-api.extension.ts +84 -0
  249. package/src/mock_assistant/extensions/zone.extension.ts +65 -0
  250. package/src/mock_assistant/helpers/fixtures.ts +22 -0
  251. package/src/mock_assistant/helpers/index.ts +1 -0
  252. package/src/mock_assistant/index.ts +3 -0
  253. package/src/mock_assistant/main.ts +46 -0
  254. package/src/mock_assistant/mock-assistant.module.ts +90 -0
  255. package/src/quickboot.module.ts +23 -0
  256. package/src/testing/area.spec.ts +189 -0
  257. package/src/testing/backup.spec.ts +157 -0
  258. package/src/testing/config.spec.ts +188 -0
  259. package/src/testing/device.spec.ts +89 -0
  260. package/src/testing/entity.spec.ts +171 -0
  261. package/src/testing/events.spec.ts +78 -0
  262. package/src/testing/fetch-api.spec.ts +410 -0
  263. package/src/testing/fixtures.spec.ts +158 -0
  264. package/src/testing/floor.spec.ts +186 -0
  265. package/src/testing/id-by.spec.ts +140 -0
  266. package/src/testing/label.spec.ts +186 -0
  267. package/src/testing/ref-by.spec.ts +300 -0
  268. package/src/testing/websocket.spec.ts +63 -0
  269. package/src/testing/workflow.spec.ts +195 -0
  270. package/src/testing/zone.spec.ts +109 -0
  271. package/dist/helpers/metrics.helper.d.ts +0 -29
  272. package/dist/helpers/metrics.helper.js +0 -62
  273. package/dist/helpers/metrics.helper.js.map +0 -1
  274. package/dist/mock_assistant/helpers/utils.d.ts +0 -4
  275. package/dist/mock_assistant/helpers/utils.js +0 -57
  276. package/dist/mock_assistant/helpers/utils.js.map +0 -1
@@ -0,0 +1,580 @@
1
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
2
+ // * This file contains enums to match ones in python in home assistant core python code
3
+ // Most things are 1-1, with some minor corrections made in transcribing
4
+
5
+ /**
6
+ * Supported features of the light entity.
7
+ */
8
+ export enum LightEntityFeature {
9
+ flash = 8,
10
+ transition = 32,
11
+ effect = 4,
12
+ }
13
+ /**
14
+ * Possible light color modes.
15
+ */
16
+ export enum ColorMode {
17
+ /** Ambiguous color mode */
18
+ UNKNOWN = "unknown",
19
+ /** Must be the only supported mode */
20
+ ONOFF = "onoff",
21
+ /** Must be the only supported mode */
22
+ BRIGHTNESS = "brightness",
23
+ COLOR_TEMP = "color_temp",
24
+ HS = "hs",
25
+ XY = "xy",
26
+ RGB = "rgb",
27
+ RGBW = "rgbw",
28
+ RGBWW = "rgbww",
29
+ /** Must *NOT* be the only supported mode */
30
+ WHITE = "white",
31
+ }
32
+
33
+ export const COLOR_MODES_COLOR = new Set([
34
+ ColorMode.HS,
35
+ ColorMode.RGB,
36
+ ColorMode.RGBW,
37
+ ColorMode.RGBWW,
38
+ ColorMode.XY,
39
+ ]);
40
+
41
+ export const COLOR_MODES_BRIGHTNESS = new Set([
42
+ ColorMode.BRIGHTNESS,
43
+ ColorMode.COLOR_TEMP,
44
+ ColorMode.HS,
45
+ ColorMode.XY,
46
+ ColorMode.RGB,
47
+ ColorMode.RGBW,
48
+ ColorMode.RGBWW,
49
+ ColorMode.WHITE,
50
+ ]);
51
+
52
+ export const VALID_COLOR_MODES = new Set([...COLOR_MODES_BRIGHTNESS.values(), ColorMode.ONOFF]);
53
+
54
+ /**
55
+ * Supported features of the fan entity.
56
+ */
57
+ export enum FanEntityFeature {
58
+ SET_SPEED = 1,
59
+ OSCILLATE = 2,
60
+ DIRECTION = 4,
61
+ PRESET_MODE = 8,
62
+ }
63
+
64
+ /**
65
+ * Device class for buttons.
66
+ */
67
+ export enum ButtonDeviceClass {
68
+ IDENTIFY = "identify",
69
+ RESTART = "restart",
70
+ UPDATE = "update",
71
+ }
72
+
73
+ /**
74
+ * Code formats for the Alarm Control Panel.
75
+ */
76
+ export enum CodeFormat {
77
+ TEXT = "text",
78
+ NUMBER = "number",
79
+ }
80
+
81
+ /**
82
+ * Supported features of the alarm control panel entity.
83
+ */
84
+ export enum AlarmControlPanelEntityFeature {
85
+ ARM_HOME = 1,
86
+ ARM_AWAY = 2,
87
+ ARM_NIGHT = 4,
88
+ TRIGGER = 8,
89
+ ARM_CUSTOM_BYPASS = 16,
90
+ ARM_VACATION = 32,
91
+ }
92
+
93
+ /**
94
+ * Device class for binary sensors.
95
+ */
96
+ export enum BinarySensorDeviceClass {
97
+ /** On means low, Off means normal */
98
+ BATTERY = "battery",
99
+
100
+ /** On means charging, Off means not charging */
101
+ BATTERY_CHARGING = "battery_charging",
102
+
103
+ /** On means carbon monoxide detected, Off means no carbon monoxide (clear) */
104
+ CO = "carbon_monoxide",
105
+
106
+ /** On means cold, Off means normal */
107
+ COLD = "cold",
108
+
109
+ /** On means connected, Off means disconnected */
110
+ CONNECTIVITY = "connectivity",
111
+
112
+ /** On means open, Off means closed */
113
+ DOOR = "door",
114
+
115
+ /** On means open, Off means closed */
116
+ GARAGE_DOOR = "garage_door",
117
+
118
+ /** On means gas detected, Off means no gas (clear) */
119
+ GAS = "gas",
120
+
121
+ /** On means hot, Off means normal */
122
+ HEAT = "heat",
123
+
124
+ /** On means light detected, Off means no light */
125
+ LIGHT = "light",
126
+
127
+ /** On means open (unlocked), Off means closed (locked) */
128
+ LOCK = "lock",
129
+
130
+ /** On means wet, Off means dry */
131
+ MOISTURE = "moisture",
132
+
133
+ /** On means motion detected, Off means no motion (clear) */
134
+ MOTION = "motion",
135
+
136
+ /** On means moving, Off means not moving (stopped) */
137
+ MOVING = "moving",
138
+
139
+ /** On means occupied, Off means not occupied (clear) */
140
+ OCCUPANCY = "occupancy",
141
+
142
+ /** On means open, Off means closed */
143
+ OPENING = "opening",
144
+
145
+ /** On means plugged in, Off means unplugged */
146
+ PLUG = "plug",
147
+
148
+ /** On means power detected, Off means no power */
149
+ POWER = "power",
150
+
151
+ /** On means home, Off means away */
152
+ PRESENCE = "presence",
153
+
154
+ /** On means problem detected, Off means no problem (OK) */
155
+ PROBLEM = "problem",
156
+
157
+ /** On means running, Off means not running */
158
+ RUNNING = "running",
159
+
160
+ /** On means unsafe, Off means safe */
161
+ SAFETY = "safety",
162
+
163
+ /** On means smoke detected, Off means no smoke (clear) */
164
+ SMOKE = "smoke",
165
+
166
+ /** On means sound detected, Off means no sound (clear) */
167
+ SOUND = "sound",
168
+
169
+ /** On means tampering detected, Off means no tampering (clear) */
170
+ TAMPER = "tamper",
171
+
172
+ /** On means update available, Off means up-to-date */
173
+ UPDATE = "update",
174
+
175
+ /** On means vibration detected, Off means no vibration */
176
+ VIBRATION = "vibration",
177
+
178
+ /** On means open, Off means closed */
179
+ WINDOW = "window",
180
+ }
181
+
182
+ /**
183
+ * Supported features of the calendar entity.
184
+ */
185
+ export enum CalendarEntityFeature {
186
+ CREATE_EVENT = 1,
187
+ DELETE_EVENT = 2,
188
+ UPDATE_EVENT = 4,
189
+ }
190
+
191
+ /**
192
+ * Supported features of the camera entity.
193
+ */
194
+ export enum CameraEntityFeature {
195
+ ON_OFF = 1,
196
+ STREAM = 2,
197
+ }
198
+
199
+ /**
200
+ * Camera stream type.
201
+ *
202
+ * A camera that supports CAMERA_SUPPORT_STREAM may have a single stream
203
+ * type which is used to inform the frontend which player to use.
204
+ * Streams with RTSP sources typically use the stream component which uses
205
+ * HLS for display. WebRTC streams use the home assistant core for a signal
206
+ * path to initiate a stream, but the stream itself is between the client and
207
+ * device.
208
+ */
209
+ export enum StreamType {
210
+ HLS = "hls",
211
+ WEB_RTC = "web_rtc",
212
+ }
213
+
214
+ /**
215
+ * HVAC mode for climate devices.
216
+ */
217
+ export enum HVACMode {
218
+ /** All activity disabled / Device is off/standby */
219
+ OFF = "off",
220
+
221
+ /** Heating */
222
+ HEAT = "heat",
223
+
224
+ /** Cooling */
225
+ COOL = "cool",
226
+
227
+ /** The device supports heating/cooling to a range */
228
+ HEAT_COOL = "heat_cool",
229
+
230
+ /** The temperature is set based on a schedule, learned behavior, AI or some
231
+ * other related mechanism. User is not able to adjust the temperature */
232
+ AUTO = "auto",
233
+
234
+ /** Device is in Dry/Humidity mode */
235
+ DRY = "dry",
236
+
237
+ /** Only the fan is on, not fan and another mode like cool */
238
+ FAN_ONLY = "fan_only",
239
+ }
240
+
241
+ /**
242
+ * HVAC action for climate devices.
243
+ */
244
+ export enum HVACAction {
245
+ COOLING = "cooling",
246
+ DRYING = "drying",
247
+ FAN = "fan",
248
+ HEATING = "heating",
249
+ IDLE = "idle",
250
+ OFF = "off",
251
+ PREHEATING = "preheating",
252
+ }
253
+
254
+ /**
255
+ * Supported features of the climate entity.
256
+ */
257
+ export enum ClimateEntityFeature {
258
+ TARGET_TEMPERATURE = 1,
259
+ TARGET_TEMPERATURE_RANGE = 2,
260
+ TARGET_HUMIDITY = 4,
261
+ FAN_MODE = 8,
262
+ PRESET_MODE = 16,
263
+ SWING_MODE = 32,
264
+ AUX_HEAT = 64,
265
+ TURN_OFF = 128,
266
+ TURN_ON = 256,
267
+ }
268
+
269
+ /**
270
+ * Device class for cover.
271
+ */
272
+ export enum CoverDeviceClass {
273
+ /** Refer to the cover dev docs for device class descriptions */
274
+ AWNING = "awning",
275
+ BLIND = "blind",
276
+ CURTAIN = "curtain",
277
+ DAMPER = "damper",
278
+ DOOR = "door",
279
+ GARAGE = "garage",
280
+ GATE = "gate",
281
+ SHADE = "shade",
282
+ SHUTTER = "shutter",
283
+ WINDOW = "window",
284
+ }
285
+
286
+ /**
287
+ * Supported features of the cover entity.
288
+ */
289
+ export enum CoverEntityFeature {
290
+ OPEN = 1,
291
+ CLOSE = 2,
292
+ SET_POSITION = 4,
293
+ STOP = 8,
294
+ OPEN_TILT = 16,
295
+ CLOSE_TILT = 32,
296
+ STOP_TILT = 64,
297
+ SET_TILT_POSITION = 128,
298
+ }
299
+ /**
300
+ * Device class for humidifiers.
301
+ */
302
+ export enum HumidifierDeviceClass {
303
+ HUMIDIFIER = "humidifier",
304
+ DEHUMIDIFIER = "dehumidifier",
305
+ }
306
+ /**
307
+ * Actions for humidifier devices.
308
+ */
309
+ export enum HumidifierAction {
310
+ HUMIDIFYING = "humidifying",
311
+ DRYING = "drying",
312
+ IDLE = "idle",
313
+ OFF = "off",
314
+ }
315
+
316
+ /**
317
+ * Supported features of the alarm control panel entity.
318
+ */
319
+ export enum HumidifierEntityFeature {
320
+ MODES = 1,
321
+ }
322
+
323
+ /**
324
+ * Activity state of lawn mower devices.
325
+ */
326
+ export enum LawnMowerActivity {
327
+ /** Device is in error state, needs assistance. */
328
+ ERROR = "error",
329
+
330
+ /** Paused during activity. */
331
+ PAUSED = "paused",
332
+
333
+ /** Device is mowing. */
334
+ MOWING = "mowing",
335
+
336
+ /** Device is docked. */
337
+ DOCKED = "docked",
338
+ }
339
+
340
+ /**
341
+ * Supported features of the lawn mower entity.
342
+ */
343
+ export enum LawnMowerEntityFeature {
344
+ START_MOWING = 1,
345
+ PAUSE = 2,
346
+ DOCK = 4,
347
+ }
348
+
349
+ /**
350
+ * Supported features of the lock entity.
351
+ */
352
+ export enum LockEntityFeature {
353
+ OPEN = 1,
354
+ }
355
+
356
+ /**
357
+ * Enqueue types for playing media.
358
+ */
359
+ export enum MediaPlayerEnqueue {
360
+ /** Add given media item to end of the queue */
361
+ ADD = "add",
362
+ /** Play the given media item next, keep queue */
363
+ NEXT = "next",
364
+ /** Play the given media item now, keep queue */
365
+ PLAY = "play",
366
+ /** Play the given media item now, clear queue */
367
+ REPLACE = "replace",
368
+ }
369
+
370
+ /**
371
+ * State of media player entities.
372
+ */
373
+ export enum MediaPlayerState {
374
+ OFF = "off",
375
+ ON = "on",
376
+ IDLE = "idle",
377
+ PLAYING = "playing",
378
+ PAUSED = "paused",
379
+ STANDBY = "standby",
380
+ BUFFERING = "buffering",
381
+ }
382
+
383
+ /**
384
+ * Media class for media player entities.
385
+ */
386
+ export enum MediaClass {
387
+ ALBUM = "album",
388
+ APP = "app",
389
+ ARTIST = "artist",
390
+ CHANNEL = "channel",
391
+ COMPOSER = "composer",
392
+ CONTRIBUTING_ARTIST = "contributing_artist",
393
+ DIRECTORY = "directory",
394
+ EPISODE = "episode",
395
+ GAME = "game",
396
+ GENRE = "genre",
397
+ IMAGE = "image",
398
+ MOVIE = "movie",
399
+ MUSIC = "music",
400
+ PLAYLIST = "playlist",
401
+ PODCAST = "podcast",
402
+ SEASON = "season",
403
+ TRACK = "track",
404
+ TV_SHOW = "tv_show",
405
+ URL = "url",
406
+ VIDEO = "video",
407
+ }
408
+
409
+ /**
410
+ * Media type for media player entities.
411
+ */
412
+ export enum MediaType {
413
+ ALBUM = "album",
414
+ APP = "app",
415
+ APPS = "apps",
416
+ ARTIST = "artist",
417
+ CHANNEL = "channel",
418
+ CHANNELS = "channels",
419
+ COMPOSER = "composer",
420
+ CONTRIBUTING_ARTIST = "contributing_artist",
421
+ EPISODE = "episode",
422
+ GAME = "game",
423
+ GENRE = "genre",
424
+ IMAGE = "image",
425
+ MOVIE = "movie",
426
+ MUSIC = "music",
427
+ PLAYLIST = "playlist",
428
+ PODCAST = "podcast",
429
+ SEASON = "season",
430
+ TRACK = "track",
431
+ TVSHOW = "tvshow",
432
+ URL = "url",
433
+ VIDEO = "video",
434
+ }
435
+
436
+ /**
437
+ * Repeat mode for media player entities.
438
+ */
439
+ export enum RepeatMode {
440
+ ALL = "all",
441
+ OFF = "off",
442
+ ONE = "one",
443
+ }
444
+
445
+ /**
446
+ * Supported features of the media player entity.
447
+ */
448
+ export enum MediaPlayerEntityFeature {
449
+ PAUSE = 1,
450
+ SEEK = 2,
451
+ VOLUME_SET = 4,
452
+ VOLUME_MUTE = 8,
453
+ PREVIOUS_TRACK = 16,
454
+ NEXT_TRACK = 32,
455
+ TURN_ON = 128,
456
+ TURN_OFF = 256,
457
+ PLAY_MEDIA = 512,
458
+ VOLUME_STEP = 1024,
459
+ SELECT_SOURCE = 2048,
460
+ STOP = 4096,
461
+ CLEAR_PLAYLIST = 8192,
462
+ PLAY = 16_384,
463
+ SHUFFLE_SET = 32_768,
464
+ SELECT_SOUND_MODE = 65_536,
465
+ BROWSE_MEDIA = 131_072,
466
+ REPEAT_SET = 262_144,
467
+ GROUPING = 524_288,
468
+ MEDIA_ANNOUNCE = 1_048_576,
469
+ MEDIA_ENQUEUE = 2_097_152,
470
+ }
471
+
472
+ /**
473
+ * Supported features of a notify entity.
474
+ */
475
+ export enum NotifyEntityFeature {
476
+ TITLE = 1,
477
+ }
478
+
479
+ /**
480
+ * Supported features of the remote entity.
481
+ */
482
+ export enum RemoteEntityFeature {
483
+ LEARN_COMMAND = 1,
484
+ DELETE_COMMAND = 2,
485
+ ACTIVITY = 4,
486
+ }
487
+
488
+ /**
489
+ * Supported features of the siren entity.
490
+ */
491
+ export enum SirenEntityFeature {
492
+ TURN_ON = 1,
493
+ TURN_OFF = 2,
494
+ TONES = 4,
495
+ VOLUME_SET = 8,
496
+ DURATION = 16,
497
+ }
498
+
499
+ /**
500
+ * Device class for switches.
501
+ */
502
+ export enum SwitchDeviceClass {
503
+ OUTLET = "outlet",
504
+ SWITCH = "switch",
505
+ }
506
+
507
+ /**
508
+ * Supported features of the vacuum entity.
509
+ */
510
+ export enum VacuumEntityFeature {
511
+ TURN_ON = 1, // Deprecated, not supported by StateVacuumEntity
512
+ TURN_OFF = 2, // Deprecated, not supported by StateVacuumEntity
513
+ PAUSE = 4,
514
+ STOP = 8,
515
+ RETURN_HOME = 16,
516
+ FAN_SPEED = 32,
517
+ BATTERY = 64,
518
+ STATUS = 128, // Deprecated, not supported by StateVacuumEntity
519
+ SEND_COMMAND = 256,
520
+ LOCATE = 512,
521
+ CLEAN_SPOT = 1024,
522
+ MAP = 2048,
523
+ STATE = 4096, // Must be set by vacuum platforms derived from StateVacuumEntity
524
+ START = 8192,
525
+ }
526
+
527
+ /**
528
+ * Device class for valve.
529
+ */
530
+ export enum ValveDeviceClass {
531
+ WATER = "water",
532
+ GAS = "gas",
533
+ }
534
+
535
+ /**
536
+ * Supported features of the valve entity.
537
+ */
538
+ export enum ValveEntityFeature {
539
+ OPEN = 1,
540
+ CLOSE = 2,
541
+ SET_POSITION = 4,
542
+ STOP = 8,
543
+ }
544
+
545
+ /**
546
+ * Supported features of the water heater entity.
547
+ */
548
+ export enum WaterHeaterEntityFeature {
549
+ TARGET_TEMPERATURE = 1,
550
+ OPERATION_MODE = 2,
551
+ AWAY_MODE = 4,
552
+ ON_OFF = 8,
553
+ }
554
+
555
+ /**
556
+ * Supported features of the weather entity.
557
+ */
558
+ export enum WeatherEntityFeature {
559
+ FORECAST_DAILY = 1,
560
+ FORECAST_HOURLY = 2,
561
+ FORECAST_TWICE_DAILY = 4,
562
+ }
563
+
564
+ /**
565
+ * Device class for update.
566
+ */
567
+ export enum UpdateDeviceClass {
568
+ FIRMWARE = "firmware",
569
+ }
570
+
571
+ /**
572
+ * Supported features of the update entity.
573
+ */
574
+ export enum UpdateEntityFeature {
575
+ INSTALL = 1,
576
+ SPECIFIC_VERSION = 2,
577
+ PROGRESS = 4,
578
+ BACKUP = 8,
579
+ RELEASE_NOTES = 16,
580
+ }
@@ -0,0 +1,54 @@
1
+ import { Dayjs } from "dayjs";
2
+
3
+ import { PICK_ENTITY } from "..";
4
+
5
+ export type CalendarFetchOptions = {
6
+ /**
7
+ * Calendar(s) to load events for.
8
+ */
9
+ calendar: PICK_ENTITY<"calendar"> | PICK_ENTITY<"calendar">[];
10
+ /**
11
+ * The end (exclusive) of the event.
12
+ */
13
+ end: Date | Dayjs;
14
+ /**
15
+ * The start (inclusive) of the event.
16
+ *
17
+ * > Default: now
18
+ */
19
+ start?: Date | Dayjs;
20
+ };
21
+
22
+ export type RawCalendarEvent = {
23
+ /**
24
+ * A detailed description of the event.
25
+ */
26
+ description?: string;
27
+ end: { dateTime: string };
28
+ /**
29
+ * A geographic location of the event.
30
+ */
31
+ location?: string;
32
+ /**
33
+ * An optional identifier for a specific instance of a recurring event (required for mutations of recurring events)
34
+ */
35
+ recurrence_id?: string;
36
+ /**
37
+ * A recurrence rule string e.g. `FREQ=DAILY`
38
+ */
39
+ rrule?: string;
40
+ start: { dateTime: string };
41
+ /**
42
+ * A title or summary of the event.
43
+ */
44
+ summary: string;
45
+ /**
46
+ * A unique identifier for the event (required for mutations)
47
+ */
48
+ uid?: string;
49
+ };
50
+
51
+ export type CalendarEvent = Omit<RawCalendarEvent, "end" | "start"> & {
52
+ end: Dayjs;
53
+ start: Dayjs;
54
+ };
@@ -0,0 +1,75 @@
1
+ import { TAreaId, TFloorId, TLabelId } from "../../dynamic";
2
+
3
+ export interface HassUnitSystem {
4
+ length: "mi";
5
+ mass: "lb";
6
+ pressure: "psi";
7
+ temperature: "°F";
8
+ volume: "gal";
9
+ }
10
+
11
+ export interface HassConfig {
12
+ allowlist_external_dirs: string[];
13
+ allowlist_external_urls: string[];
14
+ components: string[];
15
+ config_dir: string;
16
+ config_source: string;
17
+ currency: string;
18
+ elevation: number;
19
+ external_url: string;
20
+ internal_url: string;
21
+ latitude: number;
22
+ location_name: string;
23
+ longitude: number;
24
+ safe_mode: string;
25
+ state: string;
26
+ time_zone: string;
27
+ unit_system: HassUnitSystem;
28
+ version: string;
29
+ whitelist_external_dirs: string[];
30
+ }
31
+
32
+ export type CheckConfigResult =
33
+ | {
34
+ errors: null;
35
+ result: "valid";
36
+ }
37
+ | {
38
+ errors: string;
39
+ result: "invalid";
40
+ };
41
+
42
+ export type AreaDetails = AreaCreate & {
43
+ area_id: TAreaId;
44
+ };
45
+
46
+ export type AreaCreate = {
47
+ floor_id?: TFloorId;
48
+ aliases?: string[];
49
+ icon?: string;
50
+ labels?: TLabelId[];
51
+ name: string;
52
+ picture?: string;
53
+ };
54
+
55
+ export interface ConfigEntry {
56
+ entry_id: string;
57
+ domain: string;
58
+ title: string;
59
+ source: string;
60
+ state: State;
61
+ supports_options: boolean;
62
+ supports_remove_device: boolean;
63
+ supports_unload: boolean;
64
+ supports_reconfigure: boolean;
65
+ pref_disable_new_entities: boolean;
66
+ pref_disable_polling: boolean;
67
+ disabled_by: null;
68
+ reason: null | string;
69
+ }
70
+
71
+ export enum State {
72
+ Loaded = "loaded",
73
+ NotLoaded = "not_loaded",
74
+ SetupRetry = "setup_retry",
75
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./calendar";
2
+ export * from "./configuration";
3
+ export * from "./server-log";
4
+ export * from "./service-list";
5
+ export * from "./weather-forecasts";