-
-
Notifications
You must be signed in to change notification settings - Fork 622
Expand file tree
/
Copy pathAdaptiveLightingController.html
More file actions
130 lines (130 loc) · 48.7 KB
/
AdaptiveLightingController.html
File metadata and controls
130 lines (130 loc) · 48.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AdaptiveLightingController | @homebridge/hap-nodejs</title><meta name="description" content="Documentation for @homebridge/hap-nodejs"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@homebridge/hap-nodejs</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">AdaptiveLightingController</a></li></ul><h1>Class AdaptiveLightingController</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>This class allows adding Adaptive Lighting support to Lightbulb services.
The Lightbulb service MUST have the <a href="Characteristic.html#colortemperature" class="tsd-kind-property">Characteristic.ColorTemperature</a> characteristic AND
the <a href="Characteristic.html#brightness" class="tsd-kind-property">Characteristic.Brightness</a> characteristic added.
The light may also expose <a href="Characteristic.html#hue" class="tsd-kind-property">Characteristic.Hue</a> and <a href="Characteristic.html#saturation" class="tsd-kind-property">Characteristic.Saturation</a> characteristics
(though additional work is required to keep them in sync with the color temperature characteristic. see below)</p>
<p>How Adaptive Lighting works:
When enabling AdaptiveLighting the iDevice will send a transition schedule for the next 24 hours.
This schedule will be renewed all 24 hours by a HomeHub in your home
(updating the schedule according to your current day/night situation).
Once enabled the lightbulb will execute the provided transitions. The color temperature value set is always
dependent on the current brightness value. Meaning brighter light will be colder and darker light will be warmer.
HomeKit considers Adaptive Lighting to be disabled as soon a write happens to either the
Hue/Saturation or the ColorTemperature characteristics.
The AdaptiveLighting state must persist across reboots.</p>
<p>The AdaptiveLightingController can be operated in two modes: <a href="../enums/AdaptiveLightingControllerMode.html#automatic" class="tsd-kind-enum-member">AdaptiveLightingControllerMode.AUTOMATIC</a> and
<a href="../enums/AdaptiveLightingControllerMode.html#manual" class="tsd-kind-enum-member">AdaptiveLightingControllerMode.MANUAL</a> with AUTOMATIC being the default.
The goal would be that the color transition is done DIRECTLY on the light itself, thus not creating any
additional/heavy traffic on the network.
So if your light hardware/API supports transitions please go the extra mile and use MANUAL mode.</p>
<p>Below is an overview what you need to or consider when enabling AdaptiveLighting (categorized by mode).
The <a href="../enums/AdaptiveLightingControllerMode.html" class="tsd-kind-enum">AdaptiveLightingControllerMode</a> can be defined with the second constructor argument.</p>
<p><b>AUTOMATIC (Default mode):</b></p>
<p>This is the easiest mode to setup and needs less to no work form your side for AdaptiveLighting to work.
The AdaptiveLightingController will go through setup procedure with HomeKit and automatically update
the color temperature characteristic base on the current transition schedule.
It is also adjusting the color temperature when a write to the brightness characteristic happens.
Additionally, it will also handle turning off AdaptiveLighting, when it detects a write happening to the
ColorTemperature, Hue or Saturation characteristic (though it can only detect writes coming from HomeKit and
can't detect changes done to the physical devices directly! See below).</p>
<p>So what do you need to consider in automatic mode:</p>
<ul>
<li>Brightness and ColorTemperature characteristics MUST be set up. Hue and Saturation may be added for color support.</li>
<li>Color temperature will be updated all 60 seconds by calling the SET handler of the ColorTemperature characteristic.
So every transition behaves like a regular write to the ColorTemperature characteristic.</li>
<li>Every transition step is dependent on the current brightness value. Try to keep the internal cache updated
as the controller won't call the GET handler every 60 seconds.
(The cached brightness value is updated on SET/GET operations or by manually calling <a href="Characteristic.html#updatevalue" class="tsd-kind-method">Characteristic.updateValue</a>
on the brightness characteristic).</li>
<li>Detecting changes on the lightbulb side:
Any manual change to ColorTemperature or Hue/Saturation is considered as a signal to turn AdaptiveLighting off.
In order to notify the AdaptiveLightingController of such an event happening OUTSIDE of HomeKit
you must call <a href="#disableadaptivelighting" class="tsd-kind-method">disableAdaptiveLighting</a> manually!</li>
<li>Be aware that even when the light is turned off the transition will continue to call the SET handler
of the ColorTemperature characteristic.</li>
<li>When using Hue/Saturation:
When using Hue/Saturation in combination with the ColorTemperature characteristic you need to update the
respective other in a particular way depending on if being in "color mode" or "color temperature mode".
When a write happens to Hue/Saturation characteristic in is advised to set the internal value of the
ColorTemperature to the minimal (NOT RAISING an event).
When a write happens to the ColorTemperature characteristic just MUST convert to a proper representation
in hue and saturation values, with RAISING an event.
As noted above you MUST NOT call the <a href="Characteristic.html#setvalue" class="tsd-kind-method">Characteristic.setValue</a> method for this, as this will be considered
a write to the characteristic and will turn off AdaptiveLighting. Instead, you should use
<a href="Characteristic.html#updatevalue" class="tsd-kind-method">Characteristic.updateValue</a> for this.
You can and SHOULD use the supplied utility method <a href="ColorUtils.html#colortemperaturetohueandsaturation" class="tsd-kind-method">ColorUtils.colorTemperatureToHueAndSaturation</a>
for converting mired to hue and saturation values.</li>
</ul>
<p><b>MANUAL mode:</b></p>
<p>Manual mode is recommended for any accessories which support transitions natively on the devices end.
Like for example ZigBee lights which support sending transitions directly to the lightbulb which
then get executed ON the lightbulb itself reducing unnecessary network traffic.
Here is a quick overview what you have to consider to successfully implement AdaptiveLighting support.
The AdaptiveLightingController will also in manual mode do all the setup procedure.
It will also save the transition schedule to disk to keep AdaptiveLighting enabled across reboots.
The "only" thing you have to do yourself is handling the actual transitions, check that event notifications
are only sent in the defined interval threshold, adjust the color temperature when brightness is changed
and signal that Adaptive Lighting should be disabled if ColorTemperature, Hue or Saturation is changed manually.</p>
<p>First step is to setup up an event handler for the <a href="../enums/AdaptiveLightingControllerEvents.html#update" class="tsd-kind-enum-member">AdaptiveLightingControllerEvents.UPDATE</a>, which is called
when AdaptiveLighting is enabled, the HomeHub updates the schedule for the next 24 hours or AdaptiveLighting
is restored from disk on startup.
In the event handler you can get the current schedule via <a href="#getadaptivelightingtransitioncurve" class="tsd-kind-method">AdaptiveLightingController.getAdaptiveLightingTransitionCurve</a>,
retrieve current intervals like <a href="#getadaptivelightingupdateinterval" class="tsd-kind-method">AdaptiveLightingController.getAdaptiveLightingUpdateInterval</a> or
<a href="#getadaptivelightingnotifyintervalthreshold" class="tsd-kind-method">AdaptiveLightingController.getAdaptiveLightingNotifyIntervalThreshold</a> and get the date in epoch millis
when the current transition curve started using <a href="#getadaptivelightingstarttimeoftransition" class="tsd-kind-method">AdaptiveLightingController.getAdaptiveLightingStartTimeOfTransition</a>.
Additionally <a href="#getadaptivelightingbrightnessmultiplierrange" class="tsd-kind-method">AdaptiveLightingController.getAdaptiveLightingBrightnessMultiplierRange</a> can be used
to get the valid range for the brightness value to calculate the brightness adjustment factor.
The method <a href="#isadaptivelightingactive" class="tsd-kind-method">AdaptiveLightingController.isAdaptiveLightingActive</a> can be used to check if AdaptiveLighting is enabled.
Besides, actually running the transition (see <a href="../interfaces/AdaptiveLightingTransitionCurveEntry.html" class="tsd-kind-interface">AdaptiveLightingTransitionCurveEntry</a>) you must correctly update
the color temperature when the brightness of the lightbulb changes (see <a href="../interfaces/AdaptiveLightingTransitionCurveEntry.html#brightnessadjustmentfactor" class="tsd-kind-property">AdaptiveLightingTransitionCurveEntry.brightnessAdjustmentFactor</a>),
and signal when AdaptiveLighting got disabled by calling <a href="#disableadaptivelighting" class="tsd-kind-method">AdaptiveLightingController.disableAdaptiveLighting</a>
when ColorTemperature, Hue or Saturation where changed manually.
Lastly you should set up a event handler for the <a href="../enums/AdaptiveLightingControllerEvents.html#disabled" class="tsd-kind-enum-member">AdaptiveLightingControllerEvents.DISABLED</a> event.
In yet unknown circumstances HomeKit may also send a dedicated disable command via the control point characteristic.
Be prepared to handle that.</p>
</div></section><section class="tsd-panel tsd-hierarchy" data-refl="118296"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">EventEmitter</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">AdaptiveLightingController</span></li></ul></li></ul></section><section class="tsd-panel"><h4>Implements</h4><ul class="tsd-hierarchy"><li><a href="../interfaces/SerializableController.html" class="tsd-signature-type tsd-kind-interface">SerializableController</a><span class="tsd-signature-symbol"><</span><br/> <a href="../interfaces/ControllerServiceMap.html" class="tsd-signature-type tsd-kind-interface">ControllerServiceMap</a><span class="tsd-signature-symbol">,</span><br/> <a href="../interfaces/SerializedAdaptiveLightingControllerState.html" class="tsd-signature-type tsd-kind-interface">SerializedAdaptiveLightingControllerState</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L331">lib/controller/AdaptiveLightingController.ts:331</a></li><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L461">lib/controller/AdaptiveLightingController.ts:461</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#disableadaptivelighting" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>disable<wbr/>Adaptive<wbr/>Lighting</span></a>
<a href="#emit" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a>
<a href="#getadaptivelightingbrightnessmultiplierrange" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Brightness<wbr/>Multiplier<wbr/>Range</span></a>
<a href="#getadaptivelightingnotifyintervalthreshold" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Notify<wbr/>Interval<wbr/>Threshold</span></a>
<a href="#getadaptivelightingstarttimeoftransition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Start<wbr/>Time<wbr/>Of<wbr/>Transition</span></a>
<a href="#getadaptivelightingtimeoffset" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Time<wbr/>Offset</span></a>
<a href="#getadaptivelightingtransitioncurve" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Curve</span></a>
<a href="#getadaptivelightingupdateinterval" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Update<wbr/>Interval</span></a>
<a href="#getcurrentadaptivelightingtransitionpoint" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Current<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Point</span></a>
<a href="#isadaptivelightingactive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Adaptive<wbr/>Lighting<wbr/>Active</span></a>
<a href="#on" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a>
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Constructors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="constructoradaptivelightingcontroller"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">AdaptiveLightingController</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">service</span><span class="tsd-signature-symbol">:</span> <a href="_definitions.Services.Lightbulb.html" class="tsd-signature-type tsd-kind-class">Lightbulb</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="../interfaces/AdaptiveLightingOptions.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">AdaptiveLightingController</a><a href="#constructoradaptivelightingcontroller" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Creates a new instance of the AdaptiveLightingController.
Refer to the <a href="#" class="tsd-kind-class">AdaptiveLightingController</a> documentation on how to use it.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">service</span>: <a href="_definitions.Services.Lightbulb.html" class="tsd-signature-type tsd-kind-class">Lightbulb</a></span><div class="tsd-comment tsd-typography"><p>The lightbulb to which Adaptive Lighting support should be added.</p>
</div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">options</span>: <a href="../interfaces/AdaptiveLightingOptions.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingOptions</a></span><div class="tsd-comment tsd-typography"><p>Optional options to define the operating mode (automatic vs manual).</p>
</div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">AdaptiveLightingController</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L500">lib/controller/AdaptiveLightingController.ts:500</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="disableadaptivelighting"><span>disable<wbr/>Adaptive<wbr/>Lighting</span><a href="#disableadaptivelighting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="disableadaptivelighting-1"><span class="tsd-kind-call-signature">disableAdaptiveLighting</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#disableadaptivelighting-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>This method can be called to manually disable the current active Adaptive Lighting transition.
When using <a href="../enums/AdaptiveLightingControllerMode.html#automatic" class="tsd-kind-enum-member">AdaptiveLightingControllerMode.AUTOMATIC</a> you won't need to call this method.
In <a href="../enums/AdaptiveLightingControllerMode.html#manual" class="tsd-kind-enum-member">AdaptiveLightingControllerMode.MANUAL</a> you must call this method when Adaptive Lighting should be disabled.
This is the case when the user manually changes the value of Hue, Saturation or ColorTemperature characteristics
(or if any of those values is changed by physical interaction with the lightbulb).</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L536">lib/controller/AdaptiveLightingController.ts:536</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="emit"><span>emit</span><a href="#emit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="emit-1"><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">update</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingControllerUpdate</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><a href="#emit-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>See <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-kind-interface">AdaptiveLightingControllerUpdate</a></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"update"</span></span></li><li><span><span class="tsd-kind-parameter">update</span>: <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingControllerUpdate</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L351">lib/controller/AdaptiveLightingController.ts:351</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="emit-2"><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disable"</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><a href="#emit-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"disable"</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L352">lib/controller/AdaptiveLightingController.ts:352</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingbrightnessmultiplierrange"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Brightness<wbr/>Multiplier<wbr/>Range</span><a href="#getadaptivelightingbrightnessmultiplierrange" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingbrightnessmultiplierrange-1"><span class="tsd-kind-call-signature">getAdaptiveLightingBrightnessMultiplierRange</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/BrightnessAdjustmentMultiplierRange.html" class="tsd-signature-type tsd-kind-interface">BrightnessAdjustmentMultiplierRange</a><a href="#getadaptivelightingbrightnessmultiplierrange-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="../interfaces/BrightnessAdjustmentMultiplierRange.html" class="tsd-signature-type tsd-kind-interface">BrightnessAdjustmentMultiplierRange</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L605">lib/controller/AdaptiveLightingController.ts:605</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingnotifyintervalthreshold"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Notify<wbr/>Interval<wbr/>Threshold</span><a href="#getadaptivelightingnotifyintervalthreshold" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingnotifyintervalthreshold-1"><span class="tsd-kind-call-signature">getAdaptiveLightingNotifyIntervalThreshold</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><a href="#getadaptivelightingnotifyintervalthreshold-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the minimum interval threshold (in milliseconds) a accessory may notify HomeKit controllers about a new
color temperature value via event notifications (what happens when you call <a href="Characteristic.html#updatevalue" class="tsd-kind-method">Characteristic.updateValue</a>).
Meaning the accessory should only send event notifications to subscribed HomeKit controllers at the specified interval.</p>
<p>Typically this evaluates to 600000 milliseconds (10 minutes).</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L633">lib/controller/AdaptiveLightingController.ts:633</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingstarttimeoftransition"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Start<wbr/>Time<wbr/>Of<wbr/>Transition</span><a href="#getadaptivelightingstarttimeoftransition" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingstarttimeoftransition-1"><span class="tsd-kind-call-signature">getAdaptiveLightingStartTimeOfTransition</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><a href="#getadaptivelightingstarttimeoftransition-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the time where the current transition curve was started in epoch time millis.
A transition curves is active for 24 hours typically and is renewed every 24 hours by a HomeHub.
Additionally see <a href="#getadaptivelightingtimeoffset" class="tsd-kind-method">getAdaptiveLightingTimeOffset</a>.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L576">lib/controller/AdaptiveLightingController.ts:576</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingtimeoffset"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Time<wbr/>Offset</span><a href="#getadaptivelightingtimeoffset" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingtimeoffset-1"><span class="tsd-kind-call-signature">getAdaptiveLightingTimeOffset</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><a href="#getadaptivelightingtimeoffset-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>It is not necessarily given, that we have the same time (or rather the correct time) as the HomeKit controller
who set up the transition schedule.
Thus we record the delta between our current time and the the time send with the setup request.
<code>timeOffset</code> is defined as <code>Date.now() - getAdaptiveLightingStartTimeOfTransition();</code>.
So in the case were we actually have a correct local time, it most likely will be positive (due to network latency).
But of course it can also be negative.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L591">lib/controller/AdaptiveLightingController.ts:591</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingtransitioncurve"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Curve</span><a href="#getadaptivelightingtransitioncurve" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingtransitioncurve-1"><span class="tsd-kind-call-signature">getAdaptiveLightingTransitionCurve</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/AdaptiveLightingTransitionCurveEntry.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingTransitionCurveEntry</a><span class="tsd-signature-symbol">[]</span><a href="#getadaptivelightingtransitioncurve-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="../interfaces/AdaptiveLightingTransitionCurveEntry.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingTransitionCurveEntry</a><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L598">lib/controller/AdaptiveLightingController.ts:598</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getadaptivelightingupdateinterval"><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Update<wbr/>Interval</span><a href="#getadaptivelightingupdateinterval" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getadaptivelightingupdateinterval-1"><span class="tsd-kind-call-signature">getAdaptiveLightingUpdateInterval</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><a href="#getadaptivelightingupdateinterval-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>This method returns the interval (in milliseconds) in which the light should update its internal color temperature
(aka changes it physical color).
A lightbulb should ideally change this also when turned of in oder to have a smooth transition when turning the light on.</p>
<p>Typically this evaluates to 60000 milliseconds (60 seconds).</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L619">lib/controller/AdaptiveLightingController.ts:619</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getcurrentadaptivelightingtransitionpoint"><span>get<wbr/>Current<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Point</span><a href="#getcurrentadaptivelightingtransitionpoint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getcurrentadaptivelightingtransitionpoint-1"><span class="tsd-kind-call-signature">getCurrentAdaptiveLightingTransitionPoint</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">|</span> <a href="../interfaces/AdaptiveLightingTransitionPoint.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingTransitionPoint</a><br/><span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><a href="#getcurrentadaptivelightingtransitionpoint-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Retrieve the <a href="../interfaces/AdaptiveLightingTransitionPoint.html" class="tsd-kind-interface">AdaptiveLightingTransitionPoint</a> for the current timestamp.
Returns undefined if the current transition schedule reached its end.</p>
</div><h4 class="tsd-returns-title">Returns <a href="../interfaces/AdaptiveLightingTransitionPoint.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingTransitionPoint</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L757">lib/controller/AdaptiveLightingController.ts:757</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="isadaptivelightingactive"><span>is<wbr/>Adaptive<wbr/>Lighting<wbr/>Active</span><a href="#isadaptivelightingactive" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="isadaptivelightingactive-1"><span class="tsd-kind-call-signature">isAdaptiveLightingActive</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><a href="#isadaptivelightingactive-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns if a Adaptive Lighting transition is currently active.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L525">lib/controller/AdaptiveLightingController.ts:525</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="on"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="on-1"><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">listener</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">update</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingControllerUpdate</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">this</span><a href="#on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>See <a href="../enums/AdaptiveLightingControllerEvents.html#update" class="tsd-kind-enum-member">AdaptiveLightingControllerEvents.UPDATE</a>
Also see <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-kind-interface">AdaptiveLightingControllerUpdate</a></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"update"</span></span></li><li><span><span class="tsd-kind-parameter">listener</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">update</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/AdaptiveLightingControllerUpdate.html" class="tsd-signature-type tsd-kind-interface">AdaptiveLightingControllerUpdate</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L339">lib/controller/AdaptiveLightingController.ts:339</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="on-2"><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disable"</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">listener</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">this</span><a href="#on-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>See <a href="../enums/AdaptiveLightingControllerEvents.html#disabled" class="tsd-kind-enum-member">AdaptiveLightingControllerEvents.DISABLED</a></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"disable"</span></span></li><li><span><span class="tsd-kind-parameter">listener</span>: <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge/HAP-NodeJS/blob/cd7fca24e1ee3fa99ce0a968c7b0346a781d7f71/src/lib/controller/AdaptiveLightingController.ts#L346">lib/controller/AdaptiveLightingController.ts:346</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#disableadaptivelighting"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>disable<wbr/>Adaptive<wbr/>Lighting</span></a><a href="#emit"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a><a href="#getadaptivelightingbrightnessmultiplierrange"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Brightness<wbr/>Multiplier<wbr/>Range</span></a><a href="#getadaptivelightingnotifyintervalthreshold"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Notify<wbr/>Interval<wbr/>Threshold</span></a><a href="#getadaptivelightingstarttimeoftransition"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Start<wbr/>Time<wbr/>Of<wbr/>Transition</span></a><a href="#getadaptivelightingtimeoffset"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Time<wbr/>Offset</span></a><a href="#getadaptivelightingtransitioncurve"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Curve</span></a><a href="#getadaptivelightingupdateinterval"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Adaptive<wbr/>Lighting<wbr/>Update<wbr/>Interval</span></a><a href="#getcurrentadaptivelightingtransitionpoint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Current<wbr/>Adaptive<wbr/>Lighting<wbr/>Transition<wbr/>Point</span></a><a href="#isadaptivelightingactive"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Adaptive<wbr/>Lighting<wbr/>Active</span></a><a href="#on"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@homebridge/hap-nodejs</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>