@digital-alchemy/hass 0.3.24 → 0.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dynamic.d.ts CHANGED
@@ -61,6 +61,37 @@ export declare const ENTITY_SETUP: {
61
61
  state: string;
62
62
  };
63
63
  };
64
+ light: {
65
+ bedroom_ceiling_fan: {
66
+ attributes: {
67
+ brightness: any;
68
+ color_mode: any;
69
+ color_temp: any;
70
+ color_temp_kelvin: any;
71
+ friendly_name: string;
72
+ hs_color: any;
73
+ icon: string;
74
+ max_color_temp_kelvin: number;
75
+ max_mireds: number;
76
+ min_color_temp_kelvin: number;
77
+ min_mireds: number;
78
+ rgb_color: any;
79
+ supported_color_modes: string[];
80
+ supported_features: number;
81
+ xy_color: any;
82
+ };
83
+ context: {
84
+ id: string;
85
+ parent_id: any;
86
+ user_id: any;
87
+ };
88
+ entity_id: string;
89
+ last_changed: string;
90
+ last_reported: string;
91
+ last_updated: string;
92
+ state: string;
93
+ };
94
+ };
64
95
  person: {
65
96
  digital_alchemy: {
66
97
  attributes: {
@@ -82,6 +113,24 @@ export declare const ENTITY_SETUP: {
82
113
  state: string;
83
114
  };
84
115
  };
116
+ scene: {
117
+ games_room_auto: {
118
+ attributes: {
119
+ "Managed By": string;
120
+ friendly_name: string;
121
+ };
122
+ context: {
123
+ id: string;
124
+ parent_id: any;
125
+ user_id: any;
126
+ };
127
+ entity_id: string;
128
+ last_changed: string;
129
+ last_reported: string;
130
+ last_updated: string;
131
+ state: string;
132
+ };
133
+ };
85
134
  sensor: {
86
135
  magic: {
87
136
  attributes: {
@@ -1702,6 +1751,495 @@ export type iCallService = {
1702
1751
  entity_id: PICK_ENTITY<"input_select"> | PICK_ENTITY<"input_select">[];
1703
1752
  }): Promise<void>;
1704
1753
  };
1754
+ light: {
1755
+ /**
1756
+ * ### Toggle
1757
+ *
1758
+ * > Toggles one or more lights, from on to off, or, off to on, based on their current state.
1759
+ */
1760
+ toggle(service_data?: {
1761
+ /**
1762
+ * ## Brightness value
1763
+ *
1764
+ * > Number indicating brightness, where 0 turns the light off, 1 is the minimum brightness, and 255 is the maximum brightness.
1765
+ *
1766
+ * ## Selector
1767
+ *
1768
+ * > ```yaml
1769
+ * > number:
1770
+ * > min: 0
1771
+ * > max: 255
1772
+ * > ```
1773
+ */
1774
+ brightness?: number;
1775
+ /**
1776
+ * ## Brightness
1777
+ *
1778
+ * > Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.
1779
+ *
1780
+ * ## Selector
1781
+ *
1782
+ * > ```yaml
1783
+ * > number:
1784
+ * > min: 0
1785
+ * > max: 100
1786
+ * > unit_of_measurement: '%'
1787
+ * > ```
1788
+ */
1789
+ brightness_pct?: number;
1790
+ /**
1791
+ * ## Color name
1792
+ *
1793
+ * > A human-readable color name.
1794
+ */
1795
+ color_name?: "homeassistant" | "aliceblue" | "antiquewhite" | "aqua" | "aquamarine" | "azure" | "beige" | "bisque" | "blanchedalmond" | "blue" | "blueviolet" | "brown" | "burlywood" | "cadetblue" | "chartreuse" | "chocolate" | "coral" | "cornflowerblue" | "cornsilk" | "crimson" | "cyan" | "darkblue" | "darkcyan" | "darkgoldenrod" | "darkgray" | "darkgreen" | "darkgrey" | "darkkhaki" | "darkmagenta" | "darkolivegreen" | "darkorange" | "darkorchid" | "darkred" | "darksalmon" | "darkseagreen" | "darkslateblue" | "darkslategray" | "darkslategrey" | "darkturquoise" | "darkviolet" | "deeppink" | "deepskyblue" | "dimgray" | "dimgrey" | "dodgerblue" | "firebrick" | "floralwhite" | "forestgreen" | "fuchsia" | "gainsboro" | "ghostwhite" | "gold" | "goldenrod" | "gray" | "green" | "greenyellow" | "grey" | "honeydew" | "hotpink" | "indianred" | "indigo" | "ivory" | "khaki" | "lavender" | "lavenderblush" | "lawngreen" | "lemonchiffon" | "lightblue" | "lightcoral" | "lightcyan" | "lightgoldenrodyellow" | "lightgray" | "lightgreen" | "lightgrey" | "lightpink" | "lightsalmon" | "lightseagreen" | "lightskyblue" | "lightslategray" | "lightslategrey" | "lightsteelblue" | "lightyellow" | "lime" | "limegreen" | "linen" | "magenta" | "maroon" | "mediumaquamarine" | "mediumblue" | "mediumorchid" | "mediumpurple" | "mediumseagreen" | "mediumslateblue" | "mediumspringgreen" | "mediumturquoise" | "mediumvioletred" | "midnightblue" | "mintcream" | "mistyrose" | "moccasin" | "navajowhite" | "navy" | "navyblue" | "oldlace" | "olive" | "olivedrab" | "orange" | "orangered" | "orchid" | "palegoldenrod" | "palegreen" | "paleturquoise" | "palevioletred" | "papayawhip" | "peachpuff" | "peru" | "pink" | "plum" | "powderblue" | "purple" | "red" | "rosybrown" | "royalblue" | "saddlebrown" | "salmon" | "sandybrown" | "seagreen" | "seashell" | "sienna" | "silver" | "skyblue" | "slateblue" | "slategray" | "slategrey" | "snow" | "springgreen" | "steelblue" | "tan" | "teal" | "thistle" | "tomato" | "turquoise" | "violet" | "wheat" | "white" | "whitesmoke" | "yellow" | "yellowgreen";
1796
+ /**
1797
+ * ## Color temperature
1798
+ *
1799
+ * > Color temperature in mireds.
1800
+ *
1801
+ * ## Selector
1802
+ *
1803
+ * > ```yaml
1804
+ * > color_temp: null
1805
+ * > ```
1806
+ */
1807
+ color_temp?: unknown;
1808
+ /**
1809
+ * ## Effect
1810
+ *
1811
+ * > Light effect.
1812
+ */
1813
+ effect?: string;
1814
+ /**
1815
+ * ## Flash
1816
+ *
1817
+ * > Tell light to flash, can be either value short or long.
1818
+ */
1819
+ flash?: "long" | "short";
1820
+ /**
1821
+ * ## Hue/Sat color
1822
+ *
1823
+ * > Color in hue/sat format. A list of two integers. Hue is 0-360 and Sat is 0-100.
1824
+ *
1825
+ * ### Example
1826
+ *
1827
+ * > ```json
1828
+ * > {
1829
+ * > "hs_color": "[300, 70]"
1830
+ * > }
1831
+ * > ```
1832
+ *
1833
+ * ## Selector
1834
+ *
1835
+ * > ```yaml
1836
+ * > object: null
1837
+ * > ```
1838
+ */
1839
+ hs_color?: unknown;
1840
+ /**
1841
+ * ## Color temperature
1842
+ *
1843
+ * > Color temperature in Kelvin.
1844
+ *
1845
+ * ## Selector
1846
+ *
1847
+ * > ```yaml
1848
+ * > color_temp:
1849
+ * > unit: kelvin
1850
+ * > min: 2000
1851
+ * > max: 6500
1852
+ * > ```
1853
+ */
1854
+ kelvin?: unknown;
1855
+ /**
1856
+ * ## Profile
1857
+ *
1858
+ * > Name of a light profile to use.
1859
+ *
1860
+ * ### Example
1861
+ *
1862
+ * > ```json
1863
+ * > {
1864
+ * > "profile": "relax"
1865
+ * > }
1866
+ * > ```
1867
+ */
1868
+ profile?: string;
1869
+ /**
1870
+ * ## Color
1871
+ *
1872
+ * > The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue.
1873
+ *
1874
+ * ### Example
1875
+ *
1876
+ * > ```json
1877
+ * > {
1878
+ * > "rgb_color": "[255, 100, 100]"
1879
+ * > }
1880
+ * > ```
1881
+ *
1882
+ * ## Selector
1883
+ *
1884
+ * > ```yaml
1885
+ * > color_rgb: null
1886
+ * > ```
1887
+ */
1888
+ rgb_color?: unknown;
1889
+ /**
1890
+ * ## Transition
1891
+ *
1892
+ * > Duration it takes to get to next state.
1893
+ *
1894
+ * ## Selector
1895
+ *
1896
+ * > ```yaml
1897
+ * > number:
1898
+ * > min: 0
1899
+ * > max: 300
1900
+ * > unit_of_measurement: seconds
1901
+ * > ```
1902
+ */
1903
+ transition?: number;
1904
+ /**
1905
+ * ## White
1906
+ *
1907
+ * > Set the light to white mode.
1908
+ *
1909
+ * ## Selector
1910
+ *
1911
+ * > ```yaml
1912
+ * > constant:
1913
+ * > value: true
1914
+ * > label: Enabled
1915
+ * > ```
1916
+ */
1917
+ white?: unknown;
1918
+ /**
1919
+ * ## XY-color
1920
+ *
1921
+ * > Color in XY-format. A list of two decimal numbers between 0 and 1.
1922
+ *
1923
+ * ### Example
1924
+ *
1925
+ * > ```json
1926
+ * > {
1927
+ * > "xy_color": "[0.52, 0.43]"
1928
+ * > }
1929
+ * > ```
1930
+ *
1931
+ * ## Selector
1932
+ *
1933
+ * > ```yaml
1934
+ * > object: null
1935
+ * > ```
1936
+ */
1937
+ xy_color?: unknown;
1938
+ /**
1939
+ * Assisted definition
1940
+ * > ```yaml
1941
+ * > entity:
1942
+ * > - domain:
1943
+ * > - light
1944
+ * > ```
1945
+ */
1946
+ entity_id: PICK_ENTITY<"light"> | PICK_ENTITY<"light">[];
1947
+ }): Promise<void>;
1948
+ /**
1949
+ * ### Turn off
1950
+ *
1951
+ * > Turn off one or more lights.
1952
+ */
1953
+ turn_off(service_data?: {
1954
+ /**
1955
+ * ## Flash
1956
+ *
1957
+ * > Tell light to flash, can be either value short or long.
1958
+ */
1959
+ flash?: "long" | "short";
1960
+ /**
1961
+ * ## Transition
1962
+ *
1963
+ * > Duration it takes to get to next state.
1964
+ *
1965
+ * ## Selector
1966
+ *
1967
+ * > ```yaml
1968
+ * > number:
1969
+ * > min: 0
1970
+ * > max: 300
1971
+ * > unit_of_measurement: seconds
1972
+ * > ```
1973
+ */
1974
+ transition?: number;
1975
+ /**
1976
+ * Assisted definition
1977
+ * > ```yaml
1978
+ * > entity:
1979
+ * > - domain:
1980
+ * > - light
1981
+ * > ```
1982
+ */
1983
+ entity_id: PICK_ENTITY<"light"> | PICK_ENTITY<"light">[];
1984
+ }): Promise<void>;
1985
+ /**
1986
+ * ### Turn on
1987
+ *
1988
+ * > Turn on one or more lights and adjust properties of the light, even when they are turned on already.
1989
+ */
1990
+ turn_on(service_data?: {
1991
+ /**
1992
+ * ## Brightness value
1993
+ *
1994
+ * > Number indicating brightness, where 0 turns the light off, 1 is the minimum brightness, and 255 is the maximum brightness.
1995
+ *
1996
+ * ## Selector
1997
+ *
1998
+ * > ```yaml
1999
+ * > number:
2000
+ * > min: 0
2001
+ * > max: 255
2002
+ * > ```
2003
+ */
2004
+ brightness?: number;
2005
+ /**
2006
+ * ## Brightness
2007
+ *
2008
+ * > Number indicating the percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness, and 100 is the maximum brightness.
2009
+ *
2010
+ * ## Selector
2011
+ *
2012
+ * > ```yaml
2013
+ * > number:
2014
+ * > min: 0
2015
+ * > max: 100
2016
+ * > unit_of_measurement: '%'
2017
+ * > ```
2018
+ */
2019
+ brightness_pct?: number;
2020
+ /**
2021
+ * ## Brightness step value
2022
+ *
2023
+ * > Change brightness by an amount.
2024
+ *
2025
+ * ## Selector
2026
+ *
2027
+ * > ```yaml
2028
+ * > number:
2029
+ * > min: -225
2030
+ * > max: 255
2031
+ * > ```
2032
+ */
2033
+ brightness_step?: number;
2034
+ /**
2035
+ * ## Brightness step
2036
+ *
2037
+ * > Change brightness by a percentage.
2038
+ *
2039
+ * ## Selector
2040
+ *
2041
+ * > ```yaml
2042
+ * > number:
2043
+ * > min: -100
2044
+ * > max: 100
2045
+ * > unit_of_measurement: '%'
2046
+ * > ```
2047
+ */
2048
+ brightness_step_pct?: number;
2049
+ /**
2050
+ * ## Color name
2051
+ *
2052
+ * > A human-readable color name.
2053
+ */
2054
+ color_name?: "homeassistant" | "aliceblue" | "antiquewhite" | "aqua" | "aquamarine" | "azure" | "beige" | "bisque" | "blanchedalmond" | "blue" | "blueviolet" | "brown" | "burlywood" | "cadetblue" | "chartreuse" | "chocolate" | "coral" | "cornflowerblue" | "cornsilk" | "crimson" | "cyan" | "darkblue" | "darkcyan" | "darkgoldenrod" | "darkgray" | "darkgreen" | "darkgrey" | "darkkhaki" | "darkmagenta" | "darkolivegreen" | "darkorange" | "darkorchid" | "darkred" | "darksalmon" | "darkseagreen" | "darkslateblue" | "darkslategray" | "darkslategrey" | "darkturquoise" | "darkviolet" | "deeppink" | "deepskyblue" | "dimgray" | "dimgrey" | "dodgerblue" | "firebrick" | "floralwhite" | "forestgreen" | "fuchsia" | "gainsboro" | "ghostwhite" | "gold" | "goldenrod" | "gray" | "green" | "greenyellow" | "grey" | "honeydew" | "hotpink" | "indianred" | "indigo" | "ivory" | "khaki" | "lavender" | "lavenderblush" | "lawngreen" | "lemonchiffon" | "lightblue" | "lightcoral" | "lightcyan" | "lightgoldenrodyellow" | "lightgray" | "lightgreen" | "lightgrey" | "lightpink" | "lightsalmon" | "lightseagreen" | "lightskyblue" | "lightslategray" | "lightslategrey" | "lightsteelblue" | "lightyellow" | "lime" | "limegreen" | "linen" | "magenta" | "maroon" | "mediumaquamarine" | "mediumblue" | "mediumorchid" | "mediumpurple" | "mediumseagreen" | "mediumslateblue" | "mediumspringgreen" | "mediumturquoise" | "mediumvioletred" | "midnightblue" | "mintcream" | "mistyrose" | "moccasin" | "navajowhite" | "navy" | "navyblue" | "oldlace" | "olive" | "olivedrab" | "orange" | "orangered" | "orchid" | "palegoldenrod" | "palegreen" | "paleturquoise" | "palevioletred" | "papayawhip" | "peachpuff" | "peru" | "pink" | "plum" | "powderblue" | "purple" | "red" | "rosybrown" | "royalblue" | "saddlebrown" | "salmon" | "sandybrown" | "seagreen" | "seashell" | "sienna" | "silver" | "skyblue" | "slateblue" | "slategray" | "slategrey" | "snow" | "springgreen" | "steelblue" | "tan" | "teal" | "thistle" | "tomato" | "turquoise" | "violet" | "wheat" | "white" | "whitesmoke" | "yellow" | "yellowgreen";
2055
+ /**
2056
+ * ## Color temperature
2057
+ *
2058
+ * > Color temperature in mireds.
2059
+ *
2060
+ * ## Selector
2061
+ *
2062
+ * > ```yaml
2063
+ * > color_temp:
2064
+ * > unit: mired
2065
+ * > min: 153
2066
+ * > max: 500
2067
+ * > ```
2068
+ */
2069
+ color_temp?: unknown;
2070
+ /**
2071
+ * ## Effect
2072
+ *
2073
+ * > Light effect.
2074
+ */
2075
+ effect?: string;
2076
+ /**
2077
+ * ## Flash
2078
+ *
2079
+ * > Tell light to flash, can be either value short or long.
2080
+ */
2081
+ flash?: "long" | "short";
2082
+ /**
2083
+ * ## Hue/Sat color
2084
+ *
2085
+ * > Color in hue/sat format. A list of two integers. Hue is 0-360 and Sat is 0-100.
2086
+ *
2087
+ * ### Example
2088
+ *
2089
+ * > ```json
2090
+ * > {
2091
+ * > "hs_color": "[300, 70]"
2092
+ * > }
2093
+ * > ```
2094
+ *
2095
+ * ## Selector
2096
+ *
2097
+ * > ```yaml
2098
+ * > object: null
2099
+ * > ```
2100
+ */
2101
+ hs_color?: unknown;
2102
+ /**
2103
+ * ## Color temperature
2104
+ *
2105
+ * > Color temperature in Kelvin.
2106
+ *
2107
+ * ## Selector
2108
+ *
2109
+ * > ```yaml
2110
+ * > color_temp:
2111
+ * > unit: kelvin
2112
+ * > min: 2000
2113
+ * > max: 6500
2114
+ * > ```
2115
+ */
2116
+ kelvin?: unknown;
2117
+ /**
2118
+ * ## Profile
2119
+ *
2120
+ * > Name of a light profile to use.
2121
+ *
2122
+ * ### Example
2123
+ *
2124
+ * > ```json
2125
+ * > {
2126
+ * > "profile": "relax"
2127
+ * > }
2128
+ * > ```
2129
+ */
2130
+ profile?: string;
2131
+ /**
2132
+ * ## Color
2133
+ *
2134
+ * > The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue.
2135
+ *
2136
+ * ## Selector
2137
+ *
2138
+ * > ```yaml
2139
+ * > color_rgb: null
2140
+ * > ```
2141
+ */
2142
+ rgb_color?: unknown;
2143
+ /**
2144
+ * ## RGBW-color
2145
+ *
2146
+ * > The color in RGBW format. A list of four integers between 0 and 255 representing the values of red, green, blue, and white.
2147
+ *
2148
+ * ### Example
2149
+ *
2150
+ * > ```json
2151
+ * > {
2152
+ * > "rgbw_color": "[255, 100, 100, 50]"
2153
+ * > }
2154
+ * > ```
2155
+ *
2156
+ * ## Selector
2157
+ *
2158
+ * > ```yaml
2159
+ * > object: null
2160
+ * > ```
2161
+ */
2162
+ rgbw_color?: unknown;
2163
+ /**
2164
+ * ## RGBWW-color
2165
+ *
2166
+ * > The color in RGBWW format. A list of five integers between 0 and 255 representing the values of red, green, blue, cold white, and warm white.
2167
+ *
2168
+ * ### Example
2169
+ *
2170
+ * > ```json
2171
+ * > {
2172
+ * > "rgbww_color": "[255, 100, 100, 50, 70]"
2173
+ * > }
2174
+ * > ```
2175
+ *
2176
+ * ## Selector
2177
+ *
2178
+ * > ```yaml
2179
+ * > object: null
2180
+ * > ```
2181
+ */
2182
+ rgbww_color?: unknown;
2183
+ /**
2184
+ * ## Transition
2185
+ *
2186
+ * > Duration it takes to get to next state.
2187
+ *
2188
+ * ## Selector
2189
+ *
2190
+ * > ```yaml
2191
+ * > number:
2192
+ * > min: 0
2193
+ * > max: 300
2194
+ * > unit_of_measurement: seconds
2195
+ * > ```
2196
+ */
2197
+ transition?: number;
2198
+ /**
2199
+ * ## White
2200
+ *
2201
+ * > Set the light to white mode.
2202
+ *
2203
+ * ## Selector
2204
+ *
2205
+ * > ```yaml
2206
+ * > constant:
2207
+ * > value: true
2208
+ * > label: Enabled
2209
+ * > ```
2210
+ */
2211
+ white?: unknown;
2212
+ /**
2213
+ * ## XY-color
2214
+ *
2215
+ * > Color in XY-format. A list of two decimal numbers between 0 and 1.
2216
+ *
2217
+ * ### Example
2218
+ *
2219
+ * > ```json
2220
+ * > {
2221
+ * > "xy_color": "[0.52, 0.43]"
2222
+ * > }
2223
+ * > ```
2224
+ *
2225
+ * ## Selector
2226
+ *
2227
+ * > ```yaml
2228
+ * > object: null
2229
+ * > ```
2230
+ */
2231
+ xy_color?: unknown;
2232
+ /**
2233
+ * Assisted definition
2234
+ * > ```yaml
2235
+ * > entity:
2236
+ * > - domain:
2237
+ * > - light
2238
+ * > ```
2239
+ */
2240
+ entity_id: PICK_ENTITY<"light"> | PICK_ENTITY<"light">[];
2241
+ }): Promise<void>;
2242
+ };
1705
2243
  input_text: {
1706
2244
  /**
1707
2245
  * ### Reload
@@ -3224,7 +3762,7 @@ export type REGISTRY_SETUP = {
3224
3762
  area: {
3225
3763
  _living_room: "switch.living_room_mood_lights";
3226
3764
  _kitchen: "switch.kitchen_cabinets";
3227
- _bedroom: "switch.bedroom_lamp";
3765
+ _bedroom: "switch.bedroom_lamp" | "light.bedroom_ceiling_fan";
3228
3766
  };
3229
3767
  platform: {
3230
3768
  _sun: "sensor.sun_next_dawn" | "sensor.sun_next_dusk" | "sensor.sun_next_midnight" | "sensor.sun_next_noon" | "sensor.sun_next_rising" | "sensor.sun_next_setting" | "sensor.sun_solar_elevation" | "sensor.sun_solar_azimuth" | "sensor.sun_solar_rising";
@@ -3254,5 +3792,5 @@ export type TLabelId = "synapse" | "test";
3254
3792
  export type TZoneId = string;
3255
3793
  export type TRawEntityIds = "person.digital_alchemy" | "zone.home" | "sun.sun" | "sensor.sun_next_dawn" | "sensor.sun_next_dusk" | "sensor.sun_next_midnight" | "sensor.sun_next_noon" | "sensor.sun_next_rising" | "sensor.sun_next_setting" | "todo.shopping_list" | "tts.google_en_com" | "binary_sensor.hass_e2e_online" | "sensor.magic" | "binary_sensor.toggles" | "switch.bedroom_lamp" | "switch.kitchen_cabinets" | "switch.living_room_mood_lights" | "switch.porch_light" | "calendar.united_states_tx";
3256
3794
  export type TPlatformId = "sun" | "person" | "shopping_list" | "google_translate" | "synapse" | "holiday";
3257
- export type TRawDomains = "person" | "zone" | "sun" | "sensor" | "todo" | "tts" | "binary_sensor" | "switch" | "calendar";
3795
+ export type TRawDomains = "person" | "zone" | "sun" | "light" | "scene" | "sensor" | "todo" | "tts" | "binary_sensor" | "switch" | "calendar";
3258
3796
  export {};
package/dist/dynamic.js CHANGED
@@ -63,6 +63,37 @@ exports.ENTITY_SETUP = {
63
63
  state: "off",
64
64
  },
65
65
  },
66
+ light: {
67
+ bedroom_ceiling_fan: {
68
+ attributes: {
69
+ brightness: null,
70
+ color_mode: null,
71
+ color_temp: null,
72
+ color_temp_kelvin: null,
73
+ friendly_name: "Bedroom Ceiling Fan",
74
+ hs_color: null,
75
+ icon: "mdi:lightbulb-group",
76
+ max_color_temp_kelvin: 6535,
77
+ max_mireds: 500,
78
+ min_color_temp_kelvin: 2000,
79
+ min_mireds: 153,
80
+ rgb_color: null,
81
+ supported_color_modes: ["color_temp", "xy"],
82
+ supported_features: 40,
83
+ xy_color: null,
84
+ },
85
+ context: {
86
+ id: "01HX722Y1JFS6KN2MDERK0VJ2D",
87
+ parent_id: null,
88
+ user_id: null,
89
+ },
90
+ entity_id: "light.bedroom_ceiling_fan",
91
+ last_changed: "2024-05-06T13:39:28.645503+00:00",
92
+ last_reported: "2024-05-06T13:39:28.645503+00:00",
93
+ last_updated: "2024-05-06T13:39:28.645503+00:00",
94
+ state: "off",
95
+ },
96
+ },
66
97
  person: {
67
98
  digital_alchemy: {
68
99
  attributes: {
@@ -84,6 +115,24 @@ exports.ENTITY_SETUP = {
84
115
  state: "unknown",
85
116
  },
86
117
  },
118
+ scene: {
119
+ games_room_auto: {
120
+ attributes: {
121
+ "Managed By": "home_automation",
122
+ friendly_name: "bedroom off",
123
+ },
124
+ context: {
125
+ id: "01HWXW289S8HP5MSGNNTNB2CBG",
126
+ parent_id: null,
127
+ user_id: null,
128
+ },
129
+ entity_id: "scene.bedroom_off",
130
+ last_changed: "2024-05-03T00:01:03.801727+00:00",
131
+ last_reported: "2024-05-03T00:01:03.801727+00:00",
132
+ last_updated: "2024-05-03T00:01:03.801727+00:00",
133
+ state: "unknown",
134
+ },
135
+ },
87
136
  sensor: {
88
137
  magic: {
89
138
  attributes: {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":";;;AAaA,sBAAsB;AACT,QAAA,YAAY,GAAG;IAC1B,aAAa,EAAE;QACb,eAAe,EAAE;YACf,UAAU,EAAE;gBACV,aAAa,EAAE,iBAAiB;gBAChC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,+BAA+B;YAC1C,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;QACD,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,aAAa,EAAE,SAAS;gBACxB,IAAI,EAAE,+BAA+B;gBACrC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,uBAAuB;YAClC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;KACF;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE;YAChB,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,qBAAqB;gBAC/B,aAAa,EAAE,mBAAmB;gBAClC,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,qBAAqB;aAClC;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,2BAA2B;YACtC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,KAAK;SACb;KACF;IACD,KAAK,EAAE;QACL,mBAAmB,EAAE;YACnB,UAAU,EAAE;gBACV,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,qBAAqB;gBACpC,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,qBAAqB,EAAE,IAAI;gBAC3B,UAAU,EAAE,GAAG;gBACf,qBAAqB,EAAE,IAAI;gBAC3B,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;gBAC3C,kBAAkB,EAAE,EAAE;gBACtB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,2BAA2B;YACtC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,KAAK;SACb;KACF;IACD,MAAM,EAAE;QACN,eAAe,EAAE;YACf,UAAU,EAAE;gBACV,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,iBAAiB;gBAChC,EAAE,EAAE,iBAAiB;gBACrB,OAAO,EAAE,kCAAkC;aAC5C;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,wBAAwB;YACnC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,SAAS;SACjB;KACF;IACD,KAAK,EAAE;QACL,eAAe,EAAE;YACf,UAAU,EAAE;gBACV,YAAY,EAAE,iBAAiB;gBAC/B,aAAa,EAAE,aAAa;aAC7B;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,mBAAmB;YAC9B,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,SAAS;SACjB;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,aAAa,EAAE,OAAO;gBACtB,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,eAAe;aAC/B;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,sBAAsB;YACjC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,eAAe;aAC/B;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,sBAAsB;YACjC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;QACD,iBAAiB,EAAE;YACjB,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,mBAAmB;aACnC;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,0BAA0B;YACrC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,eAAe;aAC/B;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,sBAAsB;YACjC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;QACD,eAAe,EAAE;YACf,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,iBAAiB;aACjC;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,wBAAwB;YACnC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;QACD,gBAAgB,EAAE;YAChB,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,kBAAkB;aAClC;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,yBAAyB;YACpC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,2BAA2B;SACnC;KACF;IACD,GAAG,EAAE;QACH,GAAG,EAAE;YACH,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,CAAC,KAAK;gBACjB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,kCAAkC;gBAC7C,SAAS,EAAE,kCAAkC;gBAC7C,aAAa,EAAE,2BAA2B;gBAC1C,SAAS,EAAE,2BAA2B;gBACtC,WAAW,EAAE,kCAAkC;gBAC/C,YAAY,EAAE,kCAAkC;gBAChD,MAAM,EAAE,IAAI;aACb;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,eAAe;SACvB;KACF;IACD,MAAM,EAAE;QACN,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,aAAa,EAAE,cAAc;gBAC7B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,qBAAqB;YAChC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;QACD,gBAAgB,EAAE;YAChB,UAAU,EAAE;gBACV,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,yBAAyB;YACpC,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;QACD,uBAAuB,EAAE;YACvB,UAAU,EAAE;gBACV,aAAa,EAAE,yBAAyB;gBACxC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,gCAAgC;YAC3C,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;QACD,WAAW,EAAE;YACX,UAAU,EAAE;gBACV,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,CAAC;aACtB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,aAAa;SACrB;KACF;IACD,IAAI,EAAE;QACJ,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,aAAa,EAAE,eAAe;gBAC9B,kBAAkB,EAAE,EAAE;aACvB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,GAAG;SACX;KACF;IACD,GAAG,EAAE;QACH,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,aAAa,EAAE,eAAe;aAC/B;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,mBAAmB;YAC9B,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,SAAS;SACjB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,UAAU,EAAE;gBACV,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,MAAM;gBACrB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,GAAG;aACZ;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,4BAA4B;gBAChC,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,kCAAkC;YAChD,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,kCAAkC;YAChD,KAAK,EAAE,GAAG;SACX;KACF;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
2
  import { BackupResponse, HomeAssistantBackup } from "../helpers";
3
- export declare function Backup({ logger, hass }: TServiceParams): {
3
+ export declare function Backup({ logger, hass, config }: TServiceParams): {
4
4
  download: (slug: string, destination: string) => Promise<void>;
5
5
  generate: () => Promise<HomeAssistantBackup>;
6
6
  list: () => Promise<BackupResponse>;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Backup = void 0;
4
4
  const core_1 = require("@digital-alchemy/core");
5
- function Backup({ logger, hass }) {
5
+ function Backup({ logger, hass, config }) {
6
6
  async function download(slug, destination) {
7
7
  const result = await hass.socket.sendMessage({
8
8
  path: `/api/backup/download/${slug}`,
@@ -16,24 +16,24 @@ function Backup({ logger, hass }) {
16
16
  });
17
17
  }
18
18
  async function generate() {
19
- let current = await list();
19
+ let current = await hass.backup.list();
20
20
  // const originalLength = current.backups.length;
21
21
  if (current.backing_up) {
22
- logger.warn({ name: generate }, `a backup is currently in progress. Waiting for that to complete instead.`);
22
+ logger.warn({ name: generate }, `a backup is currently in progress. waiting for that to complete instead`);
23
23
  }
24
24
  else {
25
25
  logger.info({ name: generate }, "initiating new backup");
26
26
  hass.socket.sendMessage({ type: "backup/generate" });
27
27
  while (current.backing_up === false) {
28
28
  logger.debug({ name: generate }, "... waiting");
29
- await (0, core_1.sleep)(core_1.HALF * core_1.SECOND);
30
- current = await list();
29
+ await (0, core_1.sleep)(config.hass.RETRY_INTERVAL * core_1.SECOND);
30
+ current = await hass.backup.list();
31
31
  }
32
32
  }
33
33
  while (current.backing_up === true) {
34
34
  logger.debug({ name: generate }, "... waiting");
35
- await (0, core_1.sleep)(core_1.HALF * core_1.SECOND);
36
- current = await list();
35
+ await (0, core_1.sleep)(config.hass.RETRY_INTERVAL * core_1.SECOND);
36
+ current = await hass.backup.list();
37
37
  }
38
38
  logger.info({ name: generate }, `backup complete`);
39
39
  return current.backups.pop();
@@ -46,7 +46,7 @@ function Backup({ logger, hass }) {
46
46
  }
47
47
  async function remove(slug) {
48
48
  logger.trace({ name: remove }, "send");
49
- await hass.socket.sendMessage({ slug, type: "backup/remove" }, false);
49
+ await hass.socket.sendMessage({ slug, type: "backup/remove" });
50
50
  }
51
51
  return { download, generate, list, remove };
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backup.extension.js","sourceRoot":"","sources":["../../src/extensions/backup.extension.ts"],"names":[],"mappings":";;;AAAA,gDAAgF;AAQhF,SAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAkB;IACrD,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,WAAmB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAsB;YAChE,IAAI,EAAE,wBAAwB,IAAI,EAAE;YACpC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,IAAI,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,iDAAiD;QACjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,0EAA0E,CAC3E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;gBAChD,MAAM,IAAA,YAAK,EAAC,WAAI,GAAG,aAAM,CAAC,CAAC;gBAC3B,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,IAAA,YAAK,EAAC,WAAI,GAAG,aAAM,CAAC,CAAC;YAC3B,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;YACnD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAY;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;AArDD,wBAqDC"}
1
+ {"version":3,"file":"backup.extension.js","sourceRoot":"","sources":["../../src/extensions/backup.extension.ts"],"names":[],"mappings":";;;AAAA,gDAA0E;AAQ1E,SAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAkB;IAC7D,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,WAAmB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAsB;YAChE,IAAI,EAAE,wBAAwB,IAAI,EAAE;YACpC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,iDAAiD;QACjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,yEAAyE,CAC1E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;gBAChD,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,aAAM,CAAC,CAAC;gBACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,aAAM,CAAC,CAAC;YACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;YACnD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAY;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;AArDD,wBAqDC"}
@@ -1,4 +1,4 @@
1
- import { TAreaId, TDeviceId, TLabelId } from "../dynamic";
1
+ import { TAreaId, TDeviceId, TLabelId, TRawDomains } from "../dynamic";
2
2
  import { ENTITY_STATE, PICK_ENTITY } from "./utility.helper";
3
3
  export declare enum HassEvents {
4
4
  state_changed = "state_changed",
@@ -19,10 +19,10 @@ type GenericEntityAttributes = {
19
19
  */
20
20
  friendly_name?: string;
21
21
  };
22
- export interface GenericEntityDTO<ATTRIBUTES extends object = GenericEntityAttributes, STATE extends unknown = string, CONTEXT extends HassEntityContext = HassEntityContext> {
22
+ export interface GenericEntityDTO<ATTRIBUTES extends object = GenericEntityAttributes, STATE extends unknown = string, CONTEXT extends HassEntityContext = HassEntityContext, DOMAIN extends TRawDomains = TRawDomains> {
23
23
  attributes: ATTRIBUTES;
24
24
  context: CONTEXT;
25
- entity_id: PICK_ENTITY;
25
+ entity_id: PICK_ENTITY<DOMAIN>;
26
26
  last_changed: string;
27
27
  last_updated: string;
28
28
  state: STATE;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@digital-alchemy/core");
4
+ const mock_assistant_1 = require("../mock_assistant");
5
+ describe("Backup", () => {
6
+ let application;
7
+ afterEach(async () => {
8
+ if (application) {
9
+ await application.teardown();
10
+ application = undefined;
11
+ }
12
+ jest.restoreAllMocks();
13
+ });
14
+ it("should format removes properly", async () => {
15
+ expect.assertions(1);
16
+ application = (0, mock_assistant_1.CreateTestingApplication)({
17
+ Test({ lifecycle, hass }) {
18
+ lifecycle.onReady(async () => {
19
+ const spy = jest.spyOn(hass.socket, "sendMessage");
20
+ await hass.backup.remove("test");
21
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
22
+ slug: "test",
23
+ type: "backup/remove",
24
+ }));
25
+ });
26
+ },
27
+ });
28
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
29
+ });
30
+ it("should format list requests properly", async () => {
31
+ expect.assertions(1);
32
+ application = (0, mock_assistant_1.CreateTestingApplication)({
33
+ Test({ lifecycle, hass }) {
34
+ lifecycle.onReady(async () => {
35
+ const spy = jest.spyOn(hass.socket, "sendMessage");
36
+ await hass.backup.list();
37
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
38
+ type: "backup/info",
39
+ }));
40
+ });
41
+ },
42
+ });
43
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
44
+ });
45
+ it("should first attempt to sign with downloads", async () => {
46
+ expect.assertions(1);
47
+ application = (0, mock_assistant_1.CreateTestingApplication)({
48
+ Test({ lifecycle, hass }) {
49
+ lifecycle.onReady(async () => {
50
+ const spy = jest
51
+ .spyOn(hass.socket, "sendMessage")
52
+ .mockImplementation(async () => undefined);
53
+ await hass.backup.download("test", "/foo/bar");
54
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
55
+ path: `/api/backup/download/test`,
56
+ type: "auth/sign_path",
57
+ }));
58
+ });
59
+ },
60
+ });
61
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
62
+ });
63
+ it("should use the sign path to download", async () => {
64
+ expect.assertions(1);
65
+ application = (0, mock_assistant_1.CreateTestingApplication)({
66
+ Test({ lifecycle, hass }) {
67
+ lifecycle.onReady(async () => {
68
+ const path = "/test/thing";
69
+ const destination = "/foo/bar";
70
+ jest
71
+ .spyOn(hass.socket, "sendMessage")
72
+ .mockImplementation(async () => ({ path }));
73
+ const spy = jest
74
+ .spyOn(hass.fetch, "download")
75
+ .mockImplementation(async () => undefined);
76
+ await hass.backup.download("test", destination);
77
+ expect(spy).toHaveBeenCalledWith(destination, expect.objectContaining({ url: path }));
78
+ });
79
+ },
80
+ });
81
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
82
+ });
83
+ it("should use the sign path to download", async () => {
84
+ expect.assertions(1);
85
+ application = (0, mock_assistant_1.CreateTestingApplication)({
86
+ Test({ lifecycle, hass }) {
87
+ lifecycle.onReady(async () => {
88
+ const path = "/test/thing";
89
+ const destination = "/foo/bar";
90
+ jest
91
+ .spyOn(hass.socket, "sendMessage")
92
+ .mockImplementation(async () => ({ path }));
93
+ const spy = jest
94
+ .spyOn(hass.fetch, "download")
95
+ .mockImplementation(async () => undefined);
96
+ await hass.backup.download("test", destination);
97
+ expect(spy).toHaveBeenCalledWith(destination, expect.objectContaining({ url: path }));
98
+ });
99
+ },
100
+ });
101
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true } }, true));
102
+ });
103
+ it("should not start a new backup if one is already in progress", async () => {
104
+ expect.assertions(1);
105
+ application = (0, mock_assistant_1.CreateTestingApplication)({
106
+ Test({ lifecycle, hass }) {
107
+ lifecycle.onReady(async () => {
108
+ const spy = jest.spyOn(hass.socket, "sendMessage");
109
+ const responses = [
110
+ { backing_up: true, backups: [] },
111
+ { backing_up: false, backups: [] },
112
+ ];
113
+ jest
114
+ .spyOn(hass.backup, "list")
115
+ .mockImplementation(async () => responses.shift());
116
+ await hass.backup.generate();
117
+ expect(spy).not.toHaveBeenCalledWith({ type: "backup/generate" });
118
+ });
119
+ },
120
+ });
121
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true, RETRY_INTERVAL: 0 } }, true));
122
+ });
123
+ it("should start a new backup if one is not already in progress", async () => {
124
+ expect.assertions(1);
125
+ application = (0, mock_assistant_1.CreateTestingApplication)({
126
+ Test({ lifecycle, hass }) {
127
+ lifecycle.onReady(async () => {
128
+ const spy = jest.spyOn(hass.socket, "sendMessage");
129
+ const responses = [
130
+ { backing_up: false, backups: [] },
131
+ { backing_up: true, backups: [] },
132
+ { backing_up: false, backups: [] },
133
+ ];
134
+ jest
135
+ .spyOn(hass.backup, "list")
136
+ .mockImplementation(async () => responses.shift());
137
+ await hass.backup.generate();
138
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({ type: "backup/generate" }));
139
+ });
140
+ },
141
+ });
142
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true, RETRY_INTERVAL: 0 } }, true));
143
+ });
144
+ it("should confirm a new backup is in progress before monitoring", async () => {
145
+ expect.assertions(1);
146
+ application = (0, mock_assistant_1.CreateTestingApplication)({
147
+ Test({ lifecycle, hass }) {
148
+ lifecycle.onReady(async () => {
149
+ const responses = [
150
+ // not backing up
151
+ { backing_up: false, backups: [] },
152
+ // waiting...
153
+ { backing_up: false, backups: [] },
154
+ // waiting...
155
+ { backing_up: false, backups: [] },
156
+ // waiting...
157
+ { backing_up: false, backups: [] },
158
+ // true breaks out of loop confirm loop
159
+ { backing_up: true, backups: [] },
160
+ // false breaks out of actively backing up loop
161
+ { backing_up: false, backups: [] },
162
+ // should never be sent
163
+ { backing_up: false, backups: [] },
164
+ ];
165
+ const length = responses.length;
166
+ const spy = jest
167
+ .spyOn(hass.backup, "list")
168
+ .mockImplementation(async () => responses.shift());
169
+ await hass.backup.generate();
170
+ expect(spy).toHaveBeenCalledTimes(length - core_1.SINGLE);
171
+ });
172
+ },
173
+ });
174
+ await application.bootstrap((0, mock_assistant_1.SILENT_BOOT)({ hass: { MOCK_SOCKET: true, RETRY_INTERVAL: 0 } }, true));
175
+ });
176
+ });
177
+ //# sourceMappingURL=backup.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.spec.js","sourceRoot":"","sources":["../../src/testing/backup.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@digital-alchemy/hass",
3
3
  "repository": "https://github.com/Digital-Alchemy-TS/hass",
4
4
  "homepage": "https://docs.digital-alchemy.app/Hass",
5
- "version": "0.3.24",
5
+ "version": "0.3.25",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist/; tsc",
8
8
  "lint": "eslint src",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@digital-alchemy/core": "^0.3.14",
32
+ "@digital-alchemy/core": "^0.3.15",
33
33
  "dayjs": "^1.11.11",
34
34
  "prom-client": "^15.1.2",
35
35
  "ws": "^8.17.0"