Revised Example 11 (Service Names) to use ConfiguredName Characteristic
Complete re-work of Example 11 - fully tested for iOS 17.2.1
This commit is contained in:
parent
66541cbef9
commit
a3846901e7
|
|
@ -32,7 +32,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<i> Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.</i><br><table>
|
<i> Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Identify (14) :small_blue_diamond:</b><ul><li> triggers an update when HomeKit wants HomeSpan to run its identification routine for an Accessory</li></ul></td><td align="center">bool</td><td align="center">PW</td><td align="center">1</td><td align="center">1</td><td><ul><li><span>RUN_ID (1) </span></li></ul></td></tr>
|
<tr><td><b>Identify (14) :small_blue_diamond:</b><ul><li> triggers an update when HomeKit wants HomeSpan to run its identification routine for an Accessory</li></ul></td><td align="center">bool</td><td align="center">PW</td><td align="center">1</td><td align="center">1</td><td><ul><li><span>RUN_ID (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>Name (23) </b><ul><li> name of the Accessory when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>Name (23) </b><ul><li> default display name of the Accessory</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
<tr><td><b>FirmwareRevision (52) </b><ul><li> must be in form x[.y[.z]] - informational only</li></ul></td><td align="center">string</td><td align="center">PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"1.0.0"</td></tr>
|
<tr><td><b>FirmwareRevision (52) </b><ul><li> must be in form x[.y[.z]] - informational only</li></ul></td><td align="center">string</td><td align="center">PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"1.0.0"</td></tr>
|
||||||
<tr><td><b>Manufacturer (20) </b><ul><li> any string - informational only</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"HomeSpan"</td></tr>
|
<tr><td><b>Manufacturer (20) </b><ul><li> any string - informational only</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"HomeSpan"</td></tr>
|
||||||
<tr><td><b>Model (21) </b><ul><li> any string - informational only</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"HomeSpan-ESP32"</td></tr>
|
<tr><td><b>Model (21) </b><ul><li> any string - informational only</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"HomeSpan-ESP32"</td></tr>
|
||||||
|
|
@ -47,7 +47,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>BatteryLevel (68) :small_blue_diamond:</b><ul><li> measured as a percentage</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">100</td></tr>
|
<tr><td><b>BatteryLevel (68) :small_blue_diamond:</b><ul><li> measured as a percentage</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">100</td></tr>
|
||||||
<tr><td><b>ChargingState (8F) :small_blue_diamond:</b><ul><li> indicates state of battery charging</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>NOT_CHARGING (0) </span>:heavy_check_mark:</li><li><span>CHARGING (1) </span></li><li><span>NOT_CHARGEABLE (2) </span></li></ul></td></tr>
|
<tr><td><b>ChargingState (8F) :small_blue_diamond:</b><ul><li> indicates state of battery charging</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>NOT_CHARGING (0) </span>:heavy_check_mark:</li><li><span>CHARGING (1) </span></li><li><span>NOT_CHARGEABLE (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) :small_blue_diamond:</b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) :small_blue_diamond:</b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### LightBulb (43)
|
### LightBulb (43)
|
||||||
|
|
@ -58,15 +58,15 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>Hue (13) </b><ul><li> color (in degrees) from red (0) to green (120) to blue (240) and back to red (360)</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">360</td><td align="center">0</td></tr>
|
<tr><td><b>Hue (13) </b><ul><li> color (in degrees) from red (0) to green (120) to blue (240) and back to red (360)</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">360</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>Saturation (2F) </b><ul><li> color saturation, measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>Saturation (2F) </b><ul><li> color saturation, measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ColorTemperature (CE) </b><ul><li> measured in inverse megaKelvin (= 1,000,000 / Kelvin)</li></ul></td><td align="center">uint32</td><td align="center">PR+PW+EV</td><td align="center">140</td><td align="center">500</td><td align="center">200</td></tr>
|
<tr><td><b>ColorTemperature (CE) </b><ul><li> measured in inverse megaKelvin (= 1,000,000 / Kelvin)</li></ul></td><td align="center">uint32</td><td align="center">PR+PW+EV</td><td align="center">140</td><td align="center">500</td><td align="center">200</td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Outlet (47)
|
### Outlet (47)
|
||||||
<i> Defines an controllable Outlet used to power any light or appliance.</i><br><table>
|
<i> Defines a controllable Outlet used to power any light or appliance.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>On (25) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">bool</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>OFF (0) </span>:heavy_check_mark:</li><li><span>ON (1) </span></li></ul></td></tr>
|
<tr><td><b>On (25) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">bool</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>OFF (0) </span>:heavy_check_mark:</li><li><span>ON (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>OutletInUse (26) :small_blue_diamond:</b><ul><li> indicates if an appliance or light is plugged into the outlet, regardless of whether on or off </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
<tr><td><b>OutletInUse (26) :small_blue_diamond:</b><ul><li> indicates if an appliance or light is plugged into the outlet, regardless of whether on or off </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### StatelessProgrammableSwitch (89)
|
### StatelessProgrammableSwitch (89)
|
||||||
|
|
@ -80,24 +80,24 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<i> Defines a generic Switch.</i><br><table>
|
<i> Defines a generic Switch.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>On (25) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">bool</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>OFF (0) </span>:heavy_check_mark:</li><li><span>ON (1) </span></li></ul></td></tr>
|
<tr><td><b>On (25) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">bool</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>OFF (0) </span>:heavy_check_mark:</li><li><span>ON (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## HEATING, VENTILATION, AND AIR CONDITIONING (HVAC)
|
## HEATING, VENTILATION, AND AIR CONDITIONING (HVAC)
|
||||||
### AirPurifier (BB)
|
### AirPurifier (BB)
|
||||||
<i> Defines a basic Air Purifier with an optional fan. Optional Linked Services: <b>FilterMaintenance</b>, <b>AirQualitySensor</b>, <b>Fan</b>, and <b>Slat</b></i><br><table>
|
<i> Defines a basic Air Purifier with an optional fan and swing mode. Optional Linked Services: <b>FilterMaintenance</b>. Combine with an <b>AirSensor</b> Service for automated operations.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentAirPurifierState (A9) :small_blue_diamond:</b><ul><li> indicates current state of air purification</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>INACTIVE (0) </span></li><li><span>IDLE (1) </span>:heavy_check_mark:</li><li><span>PURIFYING (2) </span></li></ul></td></tr>
|
<tr><td><b>CurrentAirPurifierState (A9) :small_blue_diamond:</b><ul><li> indicates current state of air purification</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>IDLE (1) </span></li><li><span>PURIFYING (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>TargetAirPurifierState (A8) :small_blue_diamond:</b><ul><li> indicates desired state of air purifier</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>MANUAL (0) </span></li><li><span>AUTO (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>TargetAirPurifierState (A8) :small_blue_diamond:</b><ul><li> indicates desired state of air purifier</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>MANUAL (0) </span></li><li><span>AUTO (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>RotationSpeed (29) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>RotationSpeed (29) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Fan (B7)
|
### Fan (B7)
|
||||||
<i> Defines a Fan. Can be used in conjunction with a <b>LightBulb</b> Service to create a Lighted Ceiling Fan.</i><br><table>
|
<i> Defines a Fan. Combine with a <b>LightBulb</b> Service to create a Lighted Ceiling Fan.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentFanState (AF) </b><ul><li> indicates current state of a fan</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>INACTIVE (0) </span></li><li><span>IDLE (1) </span>:heavy_check_mark:</li><li><span>BLOWING (2) </span></li></ul></td></tr>
|
<tr><td><b>CurrentFanState (AF) </b><ul><li> indicates current state of a fan</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>INACTIVE (0) </span></li><li><span>IDLE (1) </span>:heavy_check_mark:</li><li><span>BLOWING (2) </span></li></ul></td></tr>
|
||||||
|
|
@ -106,20 +106,20 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>RotationSpeed (29) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>RotationSpeed (29) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### FilterMaintenance (BA)
|
### FilterMaintenance (BA)
|
||||||
<i> Defines a Filter Maintainence check.</i><br><table>
|
<i> Defines a Filter Maintainence check. Use only as a Linked Service for the <b>AirPurifier</b> Service.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>FilterChangeIndication (AC) :small_blue_diamond:</b><ul><li> indicates state of filter</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_CHANGE_NEEDED (0) </span>:heavy_check_mark:</li><li><span>CHANGE_NEEDED (1) </span></li></ul></td></tr>
|
<tr><td><b>FilterChangeIndication (AC) :small_blue_diamond:</b><ul><li> indicates state of filter</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_CHANGE_NEEDED (0) </span>:heavy_check_mark:</li><li><span>CHANGE_NEEDED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>FilterLifeLevel (AB) </b><ul><li> measures as a percentage of remaining life</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>FilterLifeLevel (AB) </b><ul><li> measured as a percentage of remaining life</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">100</td></tr>
|
||||||
<tr><td><b>ResetFilterIndication (AD) </b><ul><li> triggers and update when the user chooses to reset the <b>FilterChangeIndication</b> from the Home App</li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">1</td><td align="center">1</td><td><ul><li><span>RESET_FILTER (1) </span></li></ul></td></tr>
|
<tr><td><b>ResetFilterIndication (AD) </b><ul><li> triggers an update when the user chooses to reset the <b>FilterChangeIndication</b> (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">1</td><td align="center">1</td><td><ul><li><span>RESET_FILTER (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### HeaterCooler (BC)
|
### HeaterCooler (BC)
|
||||||
<i> Defines a standalone Heater, Cooler, or combined Heater/Cooler. Can be used with a separate <b>Fan</b> Service and/or <b>Slat</b> Service to extend functionality.</i><br><table>
|
<i> Defines a standalone Heater, Cooler, or combined Heater/Cooler.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentTemperature (11) :small_blue_diamond:</b><ul><li> current temperature measured in Celsius</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentTemperature (11) :small_blue_diamond:</b><ul><li> current temperature measured in Celsius</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
|
|
@ -131,11 +131,11 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CoolingThresholdTemperature (D) </b><ul><li> cooling turns on when temperature (in Celsius) rises above this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">10</td><td align="center">35</td><td align="center">10</td></tr>
|
<tr><td><b>CoolingThresholdTemperature (D) </b><ul><li> cooling turns on when temperature (in Celsius) rises above this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">10</td><td align="center">35</td><td align="center">10</td></tr>
|
||||||
<tr><td><b>HeatingThresholdTemperature (12) </b><ul><li> heating turns on when temperature (in Celsius) falls below this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">25</td><td align="center">16</td></tr>
|
<tr><td><b>HeatingThresholdTemperature (12) </b><ul><li> heating turns on when temperature (in Celsius) falls below this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">25</td><td align="center">16</td></tr>
|
||||||
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### HumidifierDehumidifier (BD)
|
### HumidifierDehumidifier (BD)
|
||||||
<i> Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier. Can be used with a separate <b>Fan</b> Service and/or <b>Slat</b> Service to extend functionality.</i><br><table>
|
<i> Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentRelativeHumidity (10) :small_blue_diamond:</b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentRelativeHumidity (10) :small_blue_diamond:</b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
|
|
@ -147,7 +147,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>WaterLevel (B5) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>WaterLevel (B5) </b><ul><li> measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>LockPhysicalControls (A7) </b><ul><li> indicates if local control lock is enabled</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>CONTROL_LOCK_DISABLED (0) </span>:heavy_check_mark:</li><li><span>CONTROL_LOCK_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Slat (B9)
|
### Slat (B9)
|
||||||
|
|
@ -158,7 +158,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
<tr><td><b>SwingMode (B6) </b><ul><li> indicates whether swing-mode is enabled</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>SWING_DISABLED (0) </span>:heavy_check_mark:</li><li><span>SWING_ENABLED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentTiltAngle (C1) </b><ul><li> current angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)</li></ul></td><td align="center">int</td><td align="center">PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentTiltAngle (C1) </b><ul><li> current angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)</li></ul></td><td align="center">int</td><td align="center">PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>TargetTiltAngle (C2) </b><ul><li> indicated desired angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90) </li></ul></td><td align="center">int</td><td align="center">PW+PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
<tr><td><b>TargetTiltAngle (C2) </b><ul><li> indicated desired angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90) </li></ul></td><td align="center">int</td><td align="center">PW+PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Thermostat (4A)
|
### Thermostat (4A)
|
||||||
|
|
@ -173,7 +173,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CurrentRelativeHumidity (10) </b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentRelativeHumidity (10) </b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>HeatingThresholdTemperature (12) </b><ul><li> heating turns on when temperature (in Celsius) falls below this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">25</td><td align="center">16</td></tr>
|
<tr><td><b>HeatingThresholdTemperature (12) </b><ul><li> heating turns on when temperature (in Celsius) falls below this threshold</li></ul></td><td align="center">float</td><td align="center">PR+PW+EV</td><td align="center">0</td><td align="center">25</td><td align="center">16</td></tr>
|
||||||
<tr><td><b>TargetRelativeHumidity (34) </b><ul><li> indicates desired humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>TargetRelativeHumidity (34) </b><ul><li> indicates desired humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## STANDALONE SENSORS
|
## STANDALONE SENSORS
|
||||||
|
|
@ -188,10 +188,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>PM10Density (C7) </b><ul><li> 10-micron particulate density, measured in µg/m<sup>3</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1000</td><td align="center">0</td></tr>
|
<tr><td><b>PM10Density (C7) </b><ul><li> 10-micron particulate density, measured in µg/m<sup>3</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1000</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>VOCDensity (C8) </b><ul><li> measured in µg/m<sup>3</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1000</td><td align="center">0</td></tr>
|
<tr><td><b>VOCDensity (C8) </b><ul><li> measured in µg/m<sup>3</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1000</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### CarbonDioxideSensor (97)
|
### CarbonDioxideSensor (97)
|
||||||
|
|
@ -201,10 +201,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CarbonDioxideLevel (93) </b><ul><li> measured on parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100000</td><td align="center">0</td></tr>
|
<tr><td><b>CarbonDioxideLevel (93) </b><ul><li> measured on parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100000</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>CarbonDioxidePeakLevel (94) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100000</td><td align="center">0</td></tr>
|
<tr><td><b>CarbonDioxidePeakLevel (94) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100000</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### CarbonMonoxideSensor (7F)
|
### CarbonMonoxideSensor (7F)
|
||||||
|
|
@ -214,10 +214,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CarbonMonoxideLevel (90) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CarbonMonoxideLevel (90) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>CarbonMonoxidePeakLevel (91) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CarbonMonoxidePeakLevel (91) </b><ul><li> measured in parts per million (ppm)</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### ContactSensor (80)
|
### ContactSensor (80)
|
||||||
|
|
@ -225,10 +225,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>ContactSensorState (6A) :small_blue_diamond:</b><ul><li> indictates if contact is detected (i.e. closed)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>DETECTED (0) </span></li><li><span>NOT_DETECTED (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>ContactSensorState (6A) :small_blue_diamond:</b><ul><li> indictates if contact is detected (i.e. closed)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>DETECTED (0) </span></li><li><span>NOT_DETECTED (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### HumiditySensor (82)
|
### HumiditySensor (82)
|
||||||
|
|
@ -236,10 +236,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>CurrentRelativeHumidity (10) :small_blue_diamond:</b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentRelativeHumidity (10) :small_blue_diamond:</b><ul><li> current humidity measured as a percentage</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### LeakSensor (83)
|
### LeakSensor (83)
|
||||||
|
|
@ -247,10 +247,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>LeakDetected (70) :small_blue_diamond:</b><ul><li> indictates if a leak is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>LeakDetected (70) :small_blue_diamond:</b><ul><li> indictates if a leak is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### LightSensor (84)
|
### LightSensor (84)
|
||||||
|
|
@ -258,10 +258,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>CurrentAmbientLightLevel (6B) :small_blue_diamond:</b><ul><li> measured in Lux (lumens/m<sup>2</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0.0001</td><td align="center">100000</td><td align="center">1</td></tr>
|
<tr><td><b>CurrentAmbientLightLevel (6B) :small_blue_diamond:</b><ul><li> measured in Lux (lumens/m<sup>2</sup></li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0.0001</td><td align="center">100000</td><td align="center">1</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### MotionSensor (85)
|
### MotionSensor (85)
|
||||||
|
|
@ -269,10 +269,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>MotionDetected (22) :small_blue_diamond:</b><ul><li> indicates if motion is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>MotionDetected (22) :small_blue_diamond:</b><ul><li> indicates if motion is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### OccupancySensor (86)
|
### OccupancySensor (86)
|
||||||
|
|
@ -280,10 +280,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>OccupancyDetected (71) :small_blue_diamond:</b><ul><li> indicates if occupanccy is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>OccupancyDetected (71) :small_blue_diamond:</b><ul><li> indicates if occupanccy is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### SmokeSensor (87)
|
### SmokeSensor (87)
|
||||||
|
|
@ -291,10 +291,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>SmokeDetected (76) :small_blue_diamond:</b><ul><li> indicates if smoke is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>SmokeDetected (76) :small_blue_diamond:</b><ul><li> indicates if smoke is detected</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### TemperatureSensor (8A)
|
### TemperatureSensor (8A)
|
||||||
|
|
@ -302,10 +302,10 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>CurrentTemperature (11) :small_blue_diamond:</b><ul><li> current temperature measured in Celsius</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentTemperature (11) :small_blue_diamond:</b><ul><li> current temperature measured in Celsius</li></ul></td><td align="center">float</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>StatusActive (75) </b><ul><li> indicates whether the Service is properly functioning </li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_FUNCTIONING (0) </span></li><li><span>FUNCTIONING (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusLowBattery (79) </b><ul><li> indicates state of battery</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_LOW_BATTERY (0) </span>:heavy_check_mark:</li><li><span>LOW_BATTERY (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## DOORS, LOCKS, AND WINDOWS
|
## DOORS, LOCKS, AND WINDOWS
|
||||||
|
|
@ -315,14 +315,14 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CurrentPosition (6D) :small_blue_diamond:</b><ul><li> current position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentPosition (6D) :small_blue_diamond:</b><ul><li> current position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>TargetPosition (7C) :small_blue_diamond:</b><ul><li> indicates target position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>TargetPosition (7C) :small_blue_diamond:</b><ul><li> indicates target position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Doorbell (121)
|
### Doorbell (121)
|
||||||
<i> Defines a Doorbell. Can be used on a standalone basis or in conjunction with a <b>LockMechanism</b> Service.</i><br><table>
|
<i> Defines a Doorbell. Can be used on a standalone basis or in conjunction with a <b>LockMechanism</b> Service.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>ProgrammableSwitchEvent (73) :small_blue_diamond:</b><ul><li> specifies type of button press</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+NV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>SINGLE_PRESS (0) </span>:heavy_check_mark:</li><li><span>DOUBLE_PRESS (1) </span></li><li><span>LONG_PRESS (2) </span></li></ul></td></tr>
|
<tr><td><b>ProgrammableSwitchEvent (73) :small_blue_diamond:</b><ul><li> specifies type of button press</li></ul></td><td align="center">uint8</td><td align="center">PR+EV+NV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>SINGLE_PRESS (0) </span>:heavy_check_mark:</li><li><span>DOUBLE_PRESS (1) </span></li><li><span>LONG_PRESS (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### GarageDoorOpener (41)
|
### GarageDoorOpener (41)
|
||||||
|
|
@ -333,7 +333,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ObstructionDetected (24) :small_blue_diamond:</b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>ObstructionDetected (24) :small_blue_diamond:</b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>LockCurrentState (1D) </b><ul><li> indicates state of a lock</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>UNLOCKED (0) </span>:heavy_check_mark:</li><li><span>LOCKED (1) </span></li><li><span>JAMMED (2) </span></li><li><span>UNKNOWN (3) </span></li></ul></td></tr>
|
<tr><td><b>LockCurrentState (1D) </b><ul><li> indicates state of a lock</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>UNLOCKED (0) </span>:heavy_check_mark:</li><li><span>LOCKED (1) </span></li><li><span>JAMMED (2) </span></li><li><span>UNKNOWN (3) </span></li></ul></td></tr>
|
||||||
<tr><td><b>LockTargetState (1E) </b><ul><li> indicates desired state of lock</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>UNLOCK (0) </span>:heavy_check_mark:</li><li><span>LOCK (1) </span></li></ul></td></tr>
|
<tr><td><b>LockTargetState (1E) </b><ul><li> indicates desired state of lock</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>UNLOCK (0) </span>:heavy_check_mark:</li><li><span>LOCK (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### LockMechanism (45)
|
### LockMechanism (45)
|
||||||
|
|
@ -341,7 +341,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>LockCurrentState (1D) :small_blue_diamond:</b><ul><li> indicates state of a lock</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>UNLOCKED (0) </span>:heavy_check_mark:</li><li><span>LOCKED (1) </span></li><li><span>JAMMED (2) </span></li><li><span>UNKNOWN (3) </span></li></ul></td></tr>
|
<tr><td><b>LockCurrentState (1D) :small_blue_diamond:</b><ul><li> indicates state of a lock</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>UNLOCKED (0) </span>:heavy_check_mark:</li><li><span>LOCKED (1) </span></li><li><span>JAMMED (2) </span></li><li><span>UNKNOWN (3) </span></li></ul></td></tr>
|
||||||
<tr><td><b>LockTargetState (1E) :small_blue_diamond:</b><ul><li> indicates desired state of lock</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>UNLOCK (0) </span>:heavy_check_mark:</li><li><span>LOCK (1) </span></li></ul></td></tr>
|
<tr><td><b>LockTargetState (1E) :small_blue_diamond:</b><ul><li> indicates desired state of lock</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>UNLOCK (0) </span>:heavy_check_mark:</li><li><span>LOCK (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Window (8B)
|
### Window (8B)
|
||||||
|
|
@ -350,7 +350,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CurrentPosition (6D) :small_blue_diamond:</b><ul><li> current position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentPosition (6D) :small_blue_diamond:</b><ul><li> current position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>TargetPosition (7C) :small_blue_diamond:</b><ul><li> indicates target position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
<tr><td><b>TargetPosition (7C) :small_blue_diamond:</b><ul><li> indicates target position (as a percentage) from fully closed (0) to full open (100)</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">100</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### WindowCovering (8C)
|
### WindowCovering (8C)
|
||||||
|
|
@ -363,7 +363,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>CurrentVerticalTiltAngle (6E) </b><ul><li> current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)</li></ul></td><td align="center">int</td><td align="center">PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
<tr><td><b>CurrentVerticalTiltAngle (6E) </b><ul><li> current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)</li></ul></td><td align="center">int</td><td align="center">PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>TargetVerticalTiltAngle (7D) </b><ul><li> indicates desired angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)</li></ul></td><td align="center">int</td><td align="center">PW+PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
<tr><td><b>TargetVerticalTiltAngle (7D) </b><ul><li> indicates desired angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)</li></ul></td><td align="center">int</td><td align="center">PW+PR+EV</td><td align="center">-90</td><td align="center">90</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
<tr><td><b>ObstructionDetected (24) </b><ul><li> indicates if obstruction is detected</li></ul></td><td align="center">bool</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_DETECTED (0) </span>:heavy_check_mark:</li><li><span>DETECTED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## WATER SYSTEMS
|
## WATER SYSTEMS
|
||||||
|
|
@ -371,8 +371,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<i> Defines the master control for a multi-Valve appliance. Linked Services: <b>Valve</b> (at least one required), and <b>HeaterCooler</b> (optional).</i><br><table>
|
<i> Defines the master control for a multi-Valve appliance. Linked Services: <b>Valve</b> (at least one required), and <b>HeaterCooler</b> (optional).</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### IrrigationSystem (CF)
|
### IrrigationSystem (CF)
|
||||||
|
|
@ -382,12 +382,12 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ProgramMode (D1) :small_blue_diamond:</b><ul><li> indicates if pre-scheduled program is running</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>NONE (0) </span>:heavy_check_mark:</li><li><span>SCHEDULED (1) </span></li><li><span>SCHEDULE_OVERRIDEN (2) </span></li></ul></td></tr>
|
<tr><td><b>ProgramMode (D1) :small_blue_diamond:</b><ul><li> indicates if pre-scheduled program is running</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">2</td><td><ul><li><span>NONE (0) </span>:heavy_check_mark:</li><li><span>SCHEDULED (1) </span></li><li><span>SCHEDULE_OVERRIDEN (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>InUse (D2) :small_blue_diamond:</b><ul><li> if Service is set to active, this indictes whether it is currently in use</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
<tr><td><b>InUse (D2) :small_blue_diamond:</b><ul><li> if Service is set to active, this indictes whether it is currently in use</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>RemainingDuration (D4) </b><ul><li> duration (in seconds) remaining for Service to be active/on</li></ul></td><td align="center">uint32</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3600</td><td align="center">60</td></tr>
|
<tr><td><b>RemainingDuration (D4) </b><ul><li> duration (in seconds) remaining for Service to be active/on</li></ul></td><td align="center">uint32</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3600</td><td align="center">60</td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### Valve (D0)
|
### Valve (D0)
|
||||||
<i> Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the <b>Faucet</b> and <b>IrrigationSystem</b> Services.</i><br><table>
|
<i> Defines an electronic Valve. Can be used standalone or as a Linked Service for either a <b>Faucet</b> or <b>IrrigationSystem</b> Service.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
<tr><td><b>Active (B0) :small_blue_diamond:</b><ul><li> indicates if the Service is active/on</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>INACTIVE (0) </span>:heavy_check_mark:</li><li><span>ACTIVE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>InUse (D2) :small_blue_diamond:</b><ul><li> if Service is set to active, this indictes whether it is currently in use</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
<tr><td><b>InUse (D2) :small_blue_diamond:</b><ul><li> if Service is set to active, this indictes whether it is currently in use</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_IN_USE (0) </span>:heavy_check_mark:</li><li><span>IN_USE (1) </span></li></ul></td></tr>
|
||||||
|
|
@ -396,20 +396,20 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>RemainingDuration (D4) </b><ul><li> duration (in seconds) remaining for Service to be active/on</li></ul></td><td align="center">uint32</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3600</td><td align="center">60</td></tr>
|
<tr><td><b>RemainingDuration (D4) </b><ul><li> duration (in seconds) remaining for Service to be active/on</li></ul></td><td align="center">uint32</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3600</td><td align="center">60</td></tr>
|
||||||
<tr><td><b>IsConfigured (D6) </b><ul><li> indicates if a predefined Service has been configured</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_CONFIGURED (0) </span>:heavy_check_mark:</li><li><span>CONFIGURED (1) </span></li></ul></td></tr>
|
<tr><td><b>IsConfigured (D6) </b><ul><li> indicates if a predefined Service has been configured</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_CONFIGURED (0) </span>:heavy_check_mark:</li><li><span>CONFIGURED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ServiceLabelIndex (CB) </b><ul><li> numerical index used to distinguish multiple copies of the same Service within an Accessory</li></ul></td><td align="center">uint8</td><td align="center">PR</td><td align="center">1</td><td align="center">255</td><td align="center">1</td></tr>
|
<tr><td><b>ServiceLabelIndex (CB) </b><ul><li> numerical index used to distinguish multiple copies of the same Service within an Accessory</li></ul></td><td align="center">uint8</td><td align="center">PR</td><td align="center">1</td><td align="center">255</td><td align="center">1</td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## SECURITY SYSTEMS
|
## SECURITY SYSTEMS
|
||||||
### SecuritySystem (7E)
|
### SecuritySystem (7E)
|
||||||
<i> Defines a Security System. Often combined with <b>MotionSensor</b> and <b>ContactSensor</b> Services.</i><br><table>
|
<i> Defines a Security System. Often used in combination with <b>MotionSensor</b> and <b>ContactSensor</b> Services.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>SecuritySystemCurrentState (66) :small_blue_diamond:</b><ul><li> indicates current state of the security system </li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">4</td><td><ul><li><span>ARMED_STAY (0) </span></li><li><span>ARMED_AWAY (1) </span></li><li><span>ARMED_NIGHT (2) </span></li><li><span>DISARMED (3) </span>:heavy_check_mark:</li><li><span>ALARM_TRIGGERED (4) </span></li></ul></td></tr>
|
<tr><td><b>SecuritySystemCurrentState (66) :small_blue_diamond:</b><ul><li> indicates current state of the security system </li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">4</td><td><ul><li><span>ARMED_STAY (0) </span></li><li><span>ARMED_AWAY (1) </span></li><li><span>ARMED_NIGHT (2) </span></li><li><span>DISARMED (3) </span>:heavy_check_mark:</li><li><span>ALARM_TRIGGERED (4) </span></li></ul></td></tr>
|
||||||
<tr><td><b>SecuritySystemTargetState (67) :small_blue_diamond:</b><ul><li> indicates desired state of the security system</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>ARM_STAY (0) </span></li><li><span>ARM_AWAY (1) </span></li><li><span>ARM_NIGHT (2) </span></li><li><span>DISARM (3) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>SecuritySystemTargetState (67) :small_blue_diamond:</b><ul><li> indicates desired state of the security system</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>ARM_STAY (0) </span></li><li><span>ARM_AWAY (1) </span></li><li><span>ARM_NIGHT (2) </span></li><li><span>DISARM (3) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>SecuritySystemAlarmType (8E) </b><ul><li> indicates whether alarm was triggered for known reason</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>KNOWN (0) </span>:heavy_check_mark:</li><li><span>UNKNOWN (1) </span></li></ul></td></tr>
|
<tr><td><b>SecuritySystemAlarmType (8E) </b><ul><li> indicates whether alarm was triggered for known reason</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>KNOWN (0) </span>:heavy_check_mark:</li><li><span>UNKNOWN (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusFault (77) </b><ul><li> indicates whether the Service has a fault (only appears in Eve App, not Home App)</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NO_FAULT (0) </span>:heavy_check_mark:</li><li><span>FAULT (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
<tr><td><b>StatusTampered (7A) </b><ul><li> indicates whether the Service has been tampered with</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_TAMPERED (0) </span>:heavy_check_mark:</li><li><span>TAMPERED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## TELEVISIONS
|
## TELEVISIONS
|
||||||
|
|
@ -417,7 +417,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<i> Defines an Input Source for a TV. Use only as a Linked Service for the <b>Television</b> Service.</i><br><table>
|
<i> Defines an Input Source for a TV. Use only as a Linked Service for the <b>Television</b> Service.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>Identifier (E6) :small_blue_diamond:</b><ul><li> numerical Identifer of the <b>InputSource</b>.</li></ul></td><td align="center">uint32</td><td align="center">PR</td><td align="center">0</td><td align="center">255</td><td align="center">0</td></tr>
|
<tr><td><b>Identifier (E6) :small_blue_diamond:</b><ul><li> numerical Identifer of the <b>InputSource</b>.</li></ul></td><td align="center">uint32</td><td align="center">PR</td><td align="center">0</td><td align="center">255</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
<tr><td><b>IsConfigured (D6) </b><ul><li> indicates if a predefined Service has been configured</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_CONFIGURED (0) </span>:heavy_check_mark:</li><li><span>CONFIGURED (1) </span></li></ul></td></tr>
|
<tr><td><b>IsConfigured (D6) </b><ul><li> indicates if a predefined Service has been configured</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>NOT_CONFIGURED (0) </span>:heavy_check_mark:</li><li><span>CONFIGURED (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>CurrentVisibilityState (135) </b><ul><li> current visibility of the Service, as selectable on the Settings Page of the Home App</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VISIBLE (0) </span>:heavy_check_mark:</li><li><span>NOT_VISIBLE (1) </span></li></ul></td></tr>
|
<tr><td><b>CurrentVisibilityState (135) </b><ul><li> current visibility of the Service, as selectable on the Settings Page of the Home App</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VISIBLE (0) </span>:heavy_check_mark:</li><li><span>NOT_VISIBLE (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>TargetVisibilityState (134) </b><ul><li> indicates desired visibility of the Service, as selectable on the Settings Page of the Home App</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VISIBLE (0) </span>:heavy_check_mark:</li><li><span>NOT_VISIBLE (1) </span></li></ul></td></tr>
|
<tr><td><b>TargetVisibilityState (134) </b><ul><li> indicates desired visibility of the Service, as selectable on the Settings Page of the Home App</li></ul></td><td align="center">uint8</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VISIBLE (0) </span>:heavy_check_mark:</li><li><span>NOT_VISIBLE (1) </span></li></ul></td></tr>
|
||||||
|
|
@ -430,7 +430,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ActiveIdentifier (E7) </b><ul><li> numerical Identifier of the <b>InputSource</b> selected in the Home App.</li></ul></td><td align="center">uint32</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">255</td><td align="center">0</td></tr>
|
<tr><td><b>ActiveIdentifier (E7) </b><ul><li> numerical Identifier of the <b>InputSource</b> selected in the Home App.</li></ul></td><td align="center">uint32</td><td align="center">PW+PR+EV</td><td align="center">0</td><td align="center">255</td><td align="center">0</td></tr>
|
||||||
<tr><td><b>RemoteKey (E1) </b><ul><li> triggers an update when the corresponding key is pressed in the Remote Control widget on an iPhone </li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">4</td><td align="center">15</td><td><ul><li><span>UP (4) </span></li><li><span>DOWN (5) </span></li><li><span>LEFT (6) </span></li><li><span>RIGHT (7) </span></li><li><span>CENTER (8) </span></li><li><span>BACK (9) </span></li><li><span>PLAY_PAUSE (11) </span></li><li><span>INFO (15) </span></li></ul></td></tr>
|
<tr><td><b>RemoteKey (E1) </b><ul><li> triggers an update when the corresponding key is pressed in the Remote Control widget on an iPhone </li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">4</td><td align="center">15</td><td><ul><li><span>UP (4) </span></li><li><span>DOWN (5) </span></li><li><span>LEFT (6) </span></li><li><span>RIGHT (7) </span></li><li><span>CENTER (8) </span></li><li><span>BACK (9) </span></li><li><span>PLAY_PAUSE (11) </span></li><li><span>INFO (15) </span></li></ul></td></tr>
|
||||||
<tr><td><b>PowerModeSelection (DF) </b><ul><li> when defined, creates a "View TV Settings" button in the Home App that triggers an update to this Characteristic when pressed </li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">0</td><td align="center">0</td><td><ul><li><span>VIEW_SETTINGS (0) </span></li></ul></td></tr>
|
<tr><td><b>PowerModeSelection (DF) </b><ul><li> when defined, creates a "View TV Settings" button in the Home App that triggers an update to this Characteristic when pressed </li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">0</td><td align="center">0</td><td><ul><li><span>VIEW_SETTINGS (0) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
### TelevisionSpeaker (113)
|
### TelevisionSpeaker (113)
|
||||||
|
|
@ -438,12 +438,12 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>VolumeControlType (E9) :small_blue_diamond:</b><ul><li> indicates the type of volume control</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>NONE (0) </span></li><li><span>RELATIVE (1) </span></li><li><span>RELATIVE_CURRENT (2) </span></li><li><span>ABSOLUTE (3) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>VolumeControlType (E9) :small_blue_diamond:</b><ul><li> indicates the type of volume control</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">3</td><td><ul><li><span>NONE (0) </span></li><li><span>RELATIVE (1) </span></li><li><span>RELATIVE_CURRENT (2) </span></li><li><span>ABSOLUTE (3) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
<tr><td><b>VolumeSelector (EA) :small_blue_diamond:</b><ul><li> triggered by presses to the iPhone's volume up/down buttons when TV is selected in the Remote Control widget</li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VOLUME_UP (0) </span></li><li><span>VOLUME_DOWN (1) </span></li></ul></td></tr>
|
<tr><td><b>VolumeSelector (EA) :small_blue_diamond:</b><ul><li> triggered by presses to the iPhone's volume up/down buttons when TV is selected in the Remote Control widget</li></ul></td><td align="center">uint8</td><td align="center">PW</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>VOLUME_UP (0) </span></li><li><span>VOLUME_DOWN (1) </span></li></ul></td></tr>
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> name of the Service when displayed in the Home App</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
<tr><td><b>ConfiguredName (E3) </b><ul><li> default display name of this Service</li></ul></td><td align="center">string</td><td align="center">PW+PR+EV</td><td align="center">-</td><td align="center">-</td><td align="center">"unnamed"</td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
||||||
## MISCELLANEOUS
|
## MISCELLANEOUS
|
||||||
### ServiceLabel (CC)
|
### ServiceLabel (CC)
|
||||||
<i> Groups together un-named (or un-nameable) Services by Linking them to this Service. When used, those other Services must each include a <b>ServiceLabelIndex</b> Characteristic with a unique value. Rarely needed.</i><br><table>
|
<i> Defines a naming scheme for un-nameable Services, such as a <b>StatelessProgrammableSwitch</b>, by Linking them to this Service. When used, those other Services must each include a <b>ServiceLabelIndex</b> Characteristic with a unique value.</i><br><table>
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
||||||
<tr><td><b>ServiceLabelNamespace (CD) :small_blue_diamond:</b><ul><li> indicates how un-named Services linked together with a <b>ServiceLabel</b> Service should be displayed in the Home App </li></ul></td><td align="center">uint8</td><td align="center">PR</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>DOTS (0) </span></li><li><span>NUMERALS (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
<tr><td><b>ServiceLabelNamespace (CD) :small_blue_diamond:</b><ul><li> indicates how un-named Services linked together with a <b>ServiceLabel</b> Service should be displayed in the Home App </li></ul></td><td align="center">uint8</td><td align="center">PR</td><td align="center">0</td><td align="center">1</td><td><ul><li><span>DOTS (0) </span></li><li><span>NUMERALS (1) </span>:heavy_check_mark:</li></ul></td></tr>
|
||||||
</table><br>
|
</table><br>
|
||||||
|
|
|
||||||
|
|
@ -25,33 +25,47 @@
|
||||||
*
|
*
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
// //
|
// //
|
||||||
// HomeSpan: A HomeKit implementation for the ESP32 //
|
// HomeSpan: A HomeKit implementation for the ESP32 //
|
||||||
// ------------------------------------------------ //
|
// ------------------------------------------------ //
|
||||||
// //
|
// //
|
||||||
// Example 11: Service Names: //
|
// Example 11: Service Names: //
|
||||||
// * setting the names of individual Services //
|
// * setting the names of individual Services //
|
||||||
// * changing the icons in a bridge Accessory //
|
// * "changing" the icons in a bridge Accessory //
|
||||||
// //
|
// //
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "HomeSpan.h"
|
#include "HomeSpan.h"
|
||||||
|
|
||||||
|
// INITIAL NOTE: Apple is constantly updating how the Home App Icons are chosen and how/if/where/when the Names for
|
||||||
|
// Accessories and Services are displayed. This example has been tested and verified as of iOS 17.2.1.
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
|
||||||
// As described in previous examples, when pairing a device the Home App will choose default names for each
|
// As described in previous examples, when pairing a device the Home App will choose default names for each
|
||||||
// Accessory Tile, unless you override those default names with your own names by adding a Name Characteristic
|
// Accessory Tile, unless you override those default names with your own names by adding a Name Characteristic
|
||||||
// to the Accessory Information Service for each Accessory (except the first, which is typically the Bridge Accessory).
|
// to the Accessory Information Service for each Accessory (except the first, which is typically the Bridge Accessory).
|
||||||
|
|
||||||
// The same process holds true for the names of the Services in an Accessory with multiple Services, such as a Ceiling Fan with a Light.
|
// The same process holds true for the names of the Services in an Accessory with multiple Services: if a Service is not named,
|
||||||
// When pairing, the Home App will choose default names for each Service (such as Fan, Fan 2, Light, Light 2) depending on the types
|
// the Home App will generate one. You can of course change the names of individual Services when prompted
|
||||||
// of Services included. Similar to the names of Accessory Tiles, you can change the names of individual Services when prompted
|
// during the pairing process, or at any time after pairing from within the appropriate settings pages in the Home App.
|
||||||
// during the pairing process, or at any time after pairing from within the appropriate settings pages in the Home App. More importantly,
|
|
||||||
// you can override the default Service names generated by the Home App by simply adding the Name Characteristic to any Service.
|
|
||||||
|
|
||||||
// However, note that Service names (whether or not overridden) only appear in the Home App if there is a chance of ambiguity,
|
// But more importantly, you can name Services in your sketch so that those name show up when pairing, saving you the need to
|
||||||
// such as a Accessory with two Services of the same type. But even if a Service name does not appear in the Home App,
|
// rename them from the settings pages in the Home App.
|
||||||
|
|
||||||
|
// Whereas we previously used the *Name* Characteristic to provide names for Accessory Tiles, we use the *ConfiguredName* Characteristic
|
||||||
|
// to provide names for individual Services within each Accessory.
|
||||||
|
|
||||||
|
// One important distinction between Name and ConfigureName is that Name is only used by the Home App during pairing. After that,
|
||||||
|
// any changes you make to the name of an Accessory Tile from within the Home App are never communicated back to HomeSpan, and any changes
|
||||||
|
// you might make to those names in your sketch will not be reflected in the Home App unless you unpair and re-pair the device. In contrast,
|
||||||
|
// ConfiguredName works like any other Characteristic: changes made to ConfiguredName from within a sketch are proporgated to the Home App,
|
||||||
|
// and any edits you make to a Service's name in the Home App trigger a corresponding call to update() in HomeSpan so HomeSpan and the Home App
|
||||||
|
// are always in sync with regard to the names of any Services that includes the ConfiguredName Characteristic.
|
||||||
|
|
||||||
|
// NOTE: Service names (whether those generated by the Home App or specified via the ConfiguredName Characteristic) are only displayed on the
|
||||||
|
// control screen of an Accessory Tile if there are two more more Services of the same type. But even if a Service name does not appear in the Home App,
|
||||||
// it will still be used by Siri to control a specific Service within an Accessory by voice.
|
// it will still be used by Siri to control a specific Service within an Accessory by voice.
|
||||||
|
|
||||||
// In the example below we create 5 different functional Accessories, each illustrating how names, as well as icons, are chosen by the Home App
|
// In the example below we create 5 different functional Accessories, each illustrating how names, as well as icons, are chosen by the Home App
|
||||||
|
|
@ -62,103 +76,92 @@ void setup() {
|
||||||
|
|
||||||
homeSpan.begin(Category::Bridges,"HomeSpan Bridge");
|
homeSpan.begin(Category::Bridges,"HomeSpan Bridge");
|
||||||
|
|
||||||
// Our first Accessory is the "Bridge" Accessory
|
// Our initial Accessory is therefore the "Bridge" Accessory
|
||||||
|
|
||||||
new SpanAccessory();
|
new SpanAccessory();
|
||||||
new Service::AccessoryInformation();
|
new Service::AccessoryInformation();
|
||||||
new Characteristic::Identify();
|
new Characteristic::Identify();
|
||||||
|
|
||||||
// Our second Accessory is a Ceiling Fan with a single Light. There are three things to note:
|
// Our first "functional" Accessory is a combination of a LightBulb, Outlet, and Switch. Note that when pairing, the Home App generates
|
||||||
//
|
// default names of "Light", "Outlet", and "Switch" for these three Services, though these names are NOT displayed on the control screen
|
||||||
// * when pairing, the Home App will generate default names of "Light" and "Fan" for the two Services.
|
// of the Accessory since there is only one type of each Service. Also note that the Home App selects a LightBulb icon for the Accessory Tile
|
||||||
// However, these names are not displayed on the control screen of the Accessory since there is no
|
|
||||||
// ambiguity between the Light and Fan controls - the Home App displays them differently
|
|
||||||
//
|
|
||||||
// * the icon used by the Home App for the Accessory Tile is a Lightbulb. Why does it choose this instead of a Fan icon?
|
|
||||||
// Recall from Example 3 that for Accessories with multiple Services, if there is any ambiguity of which icon to use,
|
|
||||||
// the Home App chooses based on the Category of the device. But since this device is configured as a Bridge, the
|
|
||||||
// Category provides no helpful information to the Home App. In such cases the Home App picks an icon for the
|
|
||||||
// Accessory Tile that matches the first functional Service in the Accessory, which in this instance in a LightBulb
|
|
||||||
//
|
|
||||||
// * when opening the control screen by clicking the Accessory Tile, the LightBulb control will appear on the left, and
|
|
||||||
// the Fan control will appear on the right
|
|
||||||
|
|
||||||
new SpanAccessory();
|
new SpanAccessory();
|
||||||
new Service::AccessoryInformation();
|
new Service::AccessoryInformation();
|
||||||
new Characteristic::Identify();
|
new Characteristic::Identify();
|
||||||
new Characteristic::Name("Light with Fan"); // this sets the name of the Accessory Tile
|
new Characteristic::Name("Light First"); // this sets the name of the Accessory Tile
|
||||||
new Service::LightBulb(); // the icon of the Accessory Tile will be a Lightbulb, since this is the first functional Service
|
new Service::LightBulb(); // the icon of the Accessory Tile will be a Lightbulb, since this is the first functional Service
|
||||||
|
new Characteristic::On();
|
||||||
|
new Service::Outlet();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::OutletInUse();
|
||||||
|
new Service::Switch();
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
new Service::Fan();
|
|
||||||
new Characteristic::Active();
|
|
||||||
|
|
||||||
// Our third Accessory is identical to the second, except we swapped the order of the Lightbulb and Fan Services.
|
// Our second Accessory is similar to the first, but here we define the Switch Service first. Note that the Home App now selects
|
||||||
// The result is that the Home App now displays the Accessory Tile with a Fan icon intead of a Lightbulb icon.
|
// a Switch icon for the Accessory Tile
|
||||||
// Also, when opening the control screen by clicking on the Accessory Tile, the Fan control will now appear on the
|
|
||||||
// left, and the LightBulb control on the right.
|
|
||||||
|
|
||||||
new SpanAccessory();
|
new SpanAccessory();
|
||||||
new Service::AccessoryInformation();
|
new Service::AccessoryInformation();
|
||||||
new Characteristic::Identify();
|
new Characteristic::Identify();
|
||||||
new Characteristic::Name("Fan with Light"); // this sets the name of the Accessory Tile
|
new Characteristic::Name("Switch First"); // this sets the name of the Accessory Tile
|
||||||
new Service::Fan(); // the icon of the Accessory Tile will be a Fan, since this is the first functional Service
|
new Service::Switch(); // the icon of the Accessory Tile will be a Switch, since this is the first functional Service
|
||||||
new Characteristic::Active();
|
new Characteristic::On();
|
||||||
|
new Service::Outlet();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::OutletInUse();
|
||||||
new Service::LightBulb();
|
new Service::LightBulb();
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
|
|
||||||
// Our fourth Accessory shows what happens if we implement two identical LightBulb Services (without any Fan Service).
|
// Our third Accessory is similar to the second, but here we define 2 Switches, 2 LightBulbs, but still only 1 Outlet. This time, during pairing
|
||||||
// Since both Services are LightBulbs, the Home App sensibly picks a Lightbulb icon for the Accessory Tile. However,
|
// the Home App generates default names of Switch, Switch 2, Light, Light 2, and Outlet. Importantly, note that on the control screen for
|
||||||
// when you click the Accessory Tile and open the control screen, you'll note that the Home App now does display the names
|
// this Accessory, the Home App now displays the names of the Switches ("Switch" and "Switch 2") as well as the LightBulbs ("Light" and "Light 2")
|
||||||
// of the Service beneath each control. In this case the Home App uses the default names "Light 1" and "Light 2". The Home App
|
// under each corresponding control, but it does NOT display the name "Outlet" under the Outlet control since there is only one Outlet Service
|
||||||
// presumably shows the names of each Service since the two controls are identical and there is otherwise no way of telling which
|
|
||||||
// control operates which light.
|
|
||||||
|
|
||||||
new SpanAccessory();
|
new SpanAccessory();
|
||||||
new Service::AccessoryInformation();
|
new Service::AccessoryInformation();
|
||||||
new Characteristic::Identify();
|
new Characteristic::Identify();
|
||||||
new Characteristic::Name("Ceiling Lights"); // this sets the name of the Accessory Tile
|
new Characteristic::Name("Two Switches"); // this sets the name of the Accessory Tile
|
||||||
|
new Service::Switch(); // the icon of the Accessory Tile will be a Switch, since this is the first functional Service
|
||||||
|
new Characteristic::On();
|
||||||
|
new Service::Switch();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Service::Outlet();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::OutletInUse();
|
||||||
new Service::LightBulb();
|
new Service::LightBulb();
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
new Service::LightBulb();
|
new Service::LightBulb();
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
|
|
||||||
// Our fifth Accessory combines a single Fan Service with two identical LightBulb Services. Since the first functional Service implemented
|
// Our fourth and final Accessory is the same as the third, but this time we use the ConfiguredName Characteristic to define a name for each Service.
|
||||||
// is a Fan, the Home App will pick a Fan icon for the Accessory Tile. Also, since we added Name Characteristics to two LightBulb
|
// When pairing, you should see the Home App now uses the names below instead of generating default names as it did in the other examples. You
|
||||||
// Services, their default names generated by the Home App ("Light 1" and "Light 2") will be changed to the names specified. Finally,
|
// should also see these names displayed under each control on the control screen for the Accessory, with the exception of the Outlet Service.
|
||||||
// note that the Home App displays a more compact form of controls on the control screen since there are three Services. The arrangement
|
// Though we did provide a name for the Outlet, since there is only one Outlet Service in this Accessory, the Home App does not display its name.
|
||||||
// and style of the controls will depend on what combination of Characteristics are implemented for each Service.
|
// Howevever, if from the settings screen for this Accessory you further navigate to the "Accessories" page, you will indeed see the names for each
|
||||||
|
// Service exactly as specified below, including the Outlet name "Aux Power"
|
||||||
|
|
||||||
new SpanAccessory();
|
new SpanAccessory();
|
||||||
new Service::AccessoryInformation();
|
new Service::AccessoryInformation();
|
||||||
new Characteristic::Identify();
|
new Characteristic::Identify();
|
||||||
new Characteristic::Name("Fan with Lights"); // this sets the name of the Accessory Tile
|
new Characteristic::Name("Central Control"); // this sets the name of the Accessory Tile
|
||||||
new Service::Fan();
|
new Service::Switch(); // the icon of the Accessory Tile will be a Switch, since this is the first functional Service
|
||||||
new Characteristic::Active();
|
|
||||||
new Service::LightBulb();
|
|
||||||
new Characteristic::Name("Main Light"); // this changes the default name of this LightBulb Service from "Light 1" to "Main Light"
|
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
new Service::LightBulb();
|
new Characteristic::ConfiguredName("High Voltage"); // this sets the name of the first Switch Service
|
||||||
new Characteristic::Name("Night Light"); // this changes the default name of this LightBulb Service from "Light 2" to "Night Light"
|
new Service::Switch();
|
||||||
new Characteristic::On();
|
new Characteristic::On();
|
||||||
|
new Characteristic::ConfiguredName("Low Voltage"); // this sets the name of the second Switch Service
|
||||||
|
new Service::Outlet();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::OutletInUse();
|
||||||
|
new Characteristic::ConfiguredName("Aux Power"); // this sets the name of the Outlet Service
|
||||||
|
new Service::LightBulb();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::ConfiguredName("Main Lights"); // this sets the name of the first LightBulb Service
|
||||||
|
new Service::LightBulb();
|
||||||
|
new Characteristic::On();
|
||||||
|
new Characteristic::ConfiguredName("Accent Lights"); // this sets the name of the second LightBulb Service
|
||||||
|
|
||||||
// Our sixth Accessory is similar to the fifth, except we added some more features to some of the Services. Note how this changes
|
|
||||||
// the layout of the controls on the control screen.
|
|
||||||
|
|
||||||
new SpanAccessory();
|
|
||||||
new Service::AccessoryInformation();
|
|
||||||
new Characteristic::Identify();
|
|
||||||
new Characteristic::Name("Multi-Function Fan");
|
|
||||||
new Service::Fan();
|
|
||||||
new Characteristic::Active();
|
|
||||||
new Characteristic::RotationDirection(); // add a control to change the direcion of rotation
|
|
||||||
new Characteristic::RotationSpeed(0); // add a control to set the rotation speed
|
|
||||||
new Service::LightBulb();
|
|
||||||
new Characteristic::Name("Main Light");
|
|
||||||
new Characteristic::On();
|
|
||||||
new Characteristic::Brightness(100); // make this light dimmable (with intitial value set to 100%)
|
|
||||||
new Service::LightBulb();
|
|
||||||
new Characteristic::Name("Night Light"); // don't add anything new to this light
|
|
||||||
new Characteristic::On();
|
|
||||||
|
|
||||||
} // end of setup()
|
} // end of setup()
|
||||||
|
|
||||||
|
|
|
||||||
30
src/Span.h
30
src/Span.h
|
|
@ -84,7 +84,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(Outlet,47) // Defines an controllable Outlet used to power any light or appliance.
|
CREATE_SERV(Outlet,47) // Defines a controllable Outlet used to power any light or appliance.
|
||||||
REQ(On);
|
REQ(On);
|
||||||
REQ(OutletInUse);
|
REQ(OutletInUse);
|
||||||
OPT(ConfiguredName);
|
OPT(ConfiguredName);
|
||||||
|
|
@ -105,7 +105,7 @@ namespace Service {
|
||||||
|
|
||||||
SERVICES_GROUP // Heating, Ventilation, and Air Conditioning (HVAC)
|
SERVICES_GROUP // Heating, Ventilation, and Air Conditioning (HVAC)
|
||||||
|
|
||||||
CREATE_SERV(AirPurifier,BB) // Defines a basic Air Purifier with an optional fan. Optional Linked Services: <b>FilterMaintenance</b>, <b>AirQualitySensor</b>, <b>Fan</b>, and <b>Slat</b>
|
CREATE_SERV(AirPurifier,BB) // Defines a basic Air Purifier with an optional fan and swing mode. Optional Linked Services: <b>FilterMaintenance</b>. Combine with an <b>AirSensor</b> Service for automated operations.
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
REQ(CurrentAirPurifierState);
|
REQ(CurrentAirPurifierState);
|
||||||
REQ(TargetAirPurifierState);
|
REQ(TargetAirPurifierState);
|
||||||
|
|
@ -116,7 +116,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(Fan,B7) // Defines a Fan. Can be used in conjunction with a <b>LightBulb</b> Service to create a Lighted Ceiling Fan.
|
CREATE_SERV(Fan,B7) // Defines a Fan. Combine with a <b>LightBulb</b> Service to create a Lighted Ceiling Fan.
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
OPT(CurrentFanState);
|
OPT(CurrentFanState);
|
||||||
OPT(TargetFanState);
|
OPT(TargetFanState);
|
||||||
|
|
@ -128,7 +128,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(FilterMaintenance,BA) // Defines a Filter Maintainence check.
|
CREATE_SERV(FilterMaintenance,BA) // Defines a Filter Maintainence check. Use only as a Linked Service for the <b>AirPurifier</b> Service.
|
||||||
REQ(FilterChangeIndication);
|
REQ(FilterChangeIndication);
|
||||||
OPT(FilterLifeLevel);
|
OPT(FilterLifeLevel);
|
||||||
OPT(ResetFilterIndication);
|
OPT(ResetFilterIndication);
|
||||||
|
|
@ -136,7 +136,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(HeaterCooler,BC) // Defines a standalone Heater, Cooler, or combined Heater/Cooler. Can be used with a separate <b>Fan</b> Service and/or <b>Slat</b> Service to extend functionality.
|
CREATE_SERV(HeaterCooler,BC) // Defines a standalone Heater, Cooler, or combined Heater/Cooler.
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
REQ(CurrentTemperature);
|
REQ(CurrentTemperature);
|
||||||
REQ(CurrentHeaterCoolerState);
|
REQ(CurrentHeaterCoolerState);
|
||||||
|
|
@ -151,7 +151,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(HumidifierDehumidifier,BD) // Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier. Can be used with a separate <b>Fan</b> Service and/or <b>Slat</b> Service to extend functionality.
|
CREATE_SERV(HumidifierDehumidifier,BD) // Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier.
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
REQ(CurrentRelativeHumidity);
|
REQ(CurrentRelativeHumidity);
|
||||||
REQ(CurrentHumidifierDehumidifierState);
|
REQ(CurrentHumidifierDehumidifierState);
|
||||||
|
|
@ -391,7 +391,7 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(Valve,D0) // Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the <b>Faucet</b> and <b>IrrigationSystem</b> Services.
|
CREATE_SERV(Valve,D0) // Defines an electronic Valve. Can be used standalone or as a Linked Service for either a <b>Faucet</b> or <b>IrrigationSystem</b> Service.
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
REQ(InUse);
|
REQ(InUse);
|
||||||
REQ(ValveType);
|
REQ(ValveType);
|
||||||
|
|
@ -406,7 +406,7 @@ namespace Service {
|
||||||
|
|
||||||
SERVICES_GROUP // Security Systems
|
SERVICES_GROUP // Security Systems
|
||||||
|
|
||||||
CREATE_SERV(SecuritySystem,7E) // Defines a Security System. Often combined with <b>MotionSensor</b> and <b>ContactSensor</b> Services.
|
CREATE_SERV(SecuritySystem,7E) // Defines a Security System. Often used in combination with <b>MotionSensor</b> and <b>ContactSensor</b> Services.
|
||||||
REQ(SecuritySystemCurrentState);
|
REQ(SecuritySystemCurrentState);
|
||||||
REQ(SecuritySystemTargetState);
|
REQ(SecuritySystemTargetState);
|
||||||
OPT(SecuritySystemAlarmType);
|
OPT(SecuritySystemAlarmType);
|
||||||
|
|
@ -442,7 +442,7 @@ namespace Service {
|
||||||
|
|
||||||
SERVICES_GROUP // Miscellaneous
|
SERVICES_GROUP // Miscellaneous
|
||||||
|
|
||||||
CREATE_SERV(ServiceLabel,CC) // Groups together un-named (or un-nameable) Services by Linking them to this Service. When used, those other Services must each include a <b>ServiceLabelIndex</b> Characteristic with a unique value. Rarely needed.
|
CREATE_SERV(ServiceLabel,CC) // Defines a naming scheme for un-nameable Services, such as a <b>StatelessProgrammableSwitch</b>, by Linking them to this Service. When used, those other Services must each include a <b>ServiceLabelIndex</b> Characteristic with a unique value.
|
||||||
REQ(ServiceLabelNamespace);
|
REQ(ServiceLabelNamespace);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
|
|
@ -496,10 +496,10 @@ namespace Characteristic {
|
||||||
CREATE_CHAR(double,CoolingThresholdTemperature,10,10,35); // cooling turns on when temperature (in Celsius) rises above this threshold
|
CREATE_CHAR(double,CoolingThresholdTemperature,10,10,35); // cooling turns on when temperature (in Celsius) rises above this threshold
|
||||||
CREATE_CHAR(uint32_t,ColorTemperature,200,140,500); // measured in inverse megaKelvin (= 1,000,000 / Kelvin)
|
CREATE_CHAR(uint32_t,ColorTemperature,200,140,500); // measured in inverse megaKelvin (= 1,000,000 / Kelvin)
|
||||||
CREATE_CHAR(uint8_t,ContactSensorState,1,0,1,DETECTED,NOT_DETECTED); // indictates if contact is detected (i.e. closed)
|
CREATE_CHAR(uint8_t,ContactSensorState,1,0,1,DETECTED,NOT_DETECTED); // indictates if contact is detected (i.e. closed)
|
||||||
CREATE_CHAR(const char *,ConfiguredName,"unnamed",0,1); // name of the Service when displayed in the Home App
|
CREATE_CHAR(const char *,ConfiguredName,"unnamed",0,1); // default display name of this Service
|
||||||
CREATE_CHAR(double,CurrentAmbientLightLevel,1,0.0001,100000); // measured in Lux (lumens/m<sup>2</sup>
|
CREATE_CHAR(double,CurrentAmbientLightLevel,1,0.0001,100000); // measured in Lux (lumens/m<sup>2</sup>
|
||||||
CREATE_CHAR(int,CurrentHorizontalTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (90)
|
CREATE_CHAR(int,CurrentHorizontalTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (90)
|
||||||
CREATE_CHAR(uint8_t,CurrentAirPurifierState,1,0,2,INACTIVE,IDLE,PURIFYING); // indicates current state of air purification
|
CREATE_CHAR(uint8_t,CurrentAirPurifierState,0,0,2,INACTIVE,IDLE,PURIFYING); // indicates current state of air purification
|
||||||
CREATE_CHAR(uint8_t,CurrentSlatState,0,0,2,FIXED,JAMMED,SWINGING); // indicates current state of slats
|
CREATE_CHAR(uint8_t,CurrentSlatState,0,0,2,FIXED,JAMMED,SWINGING); // indicates current state of slats
|
||||||
CREATE_CHAR(uint8_t,CurrentPosition,0,0,100); // current position (as a percentage) from fully closed (0) to full open (100)
|
CREATE_CHAR(uint8_t,CurrentPosition,0,0,100); // current position (as a percentage) from fully closed (0) to full open (100)
|
||||||
CREATE_CHAR(int,CurrentVerticalTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)
|
CREATE_CHAR(int,CurrentVerticalTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)
|
||||||
|
|
@ -513,7 +513,7 @@ namespace Characteristic {
|
||||||
CREATE_CHAR(double,CurrentRelativeHumidity,0,0,100); // current humidity measured as a percentage
|
CREATE_CHAR(double,CurrentRelativeHumidity,0,0,100); // current humidity measured as a percentage
|
||||||
CREATE_CHAR(double,CurrentTemperature,0,0,100); // current temperature measured in Celsius
|
CREATE_CHAR(double,CurrentTemperature,0,0,100); // current temperature measured in Celsius
|
||||||
CREATE_CHAR(int,CurrentTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)
|
CREATE_CHAR(int,CurrentTiltAngle,0,-90,90); // current angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)
|
||||||
CREATE_CHAR(double,FilterLifeLevel,0,0,100); // measures as a percentage of remaining life
|
CREATE_CHAR(double,FilterLifeLevel,100,0,100); // measured as a percentage of remaining life
|
||||||
CREATE_CHAR(uint8_t,FilterChangeIndication,0,0,1,NO_CHANGE_NEEDED,CHANGE_NEEDED); // indicates state of filter
|
CREATE_CHAR(uint8_t,FilterChangeIndication,0,0,1,NO_CHANGE_NEEDED,CHANGE_NEEDED); // indicates state of filter
|
||||||
CREATE_CHAR(const char *,FirmwareRevision,"1.0.0",0,1); // must be in form x[.y[.z]] - informational only
|
CREATE_CHAR(const char *,FirmwareRevision,"1.0.0",0,1); // must be in form x[.y[.z]] - informational only
|
||||||
CREATE_CHAR(const char *,HardwareRevision,"1.0.0",0,1); // must be in form x[.y[.z]] - informational only
|
CREATE_CHAR(const char *,HardwareRevision,"1.0.0",0,1); // must be in form x[.y[.z]] - informational only
|
||||||
|
|
@ -534,7 +534,7 @@ namespace Characteristic {
|
||||||
CREATE_CHAR(const char *,Model,"HomeSpan-ESP32",0,1); // any string - informational only
|
CREATE_CHAR(const char *,Model,"HomeSpan-ESP32",0,1); // any string - informational only
|
||||||
CREATE_CHAR(boolean,MotionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if motion is detected
|
CREATE_CHAR(boolean,MotionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if motion is detected
|
||||||
CREATE_CHAR(boolean,Mute,0,0,1,OFF,ON); // not used
|
CREATE_CHAR(boolean,Mute,0,0,1,OFF,ON); // not used
|
||||||
CREATE_CHAR(const char *,Name,"unnamed",0,1); // name of the Accessory when displayed in the Home App
|
CREATE_CHAR(const char *,Name,"unnamed",0,1); // default display name of the Accessory
|
||||||
CREATE_CHAR(double,NitrogenDioxideDensity,0,0,1000); // measured in µg/m<sup>3</sup>
|
CREATE_CHAR(double,NitrogenDioxideDensity,0,0,1000); // measured in µg/m<sup>3</sup>
|
||||||
CREATE_CHAR(boolean,ObstructionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if obstruction is detected
|
CREATE_CHAR(boolean,ObstructionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if obstruction is detected
|
||||||
CREATE_CHAR(double,PM25Density,0,0,1000); // 2.5-micron particulate density, measured in µg/m<sup>3</sup>
|
CREATE_CHAR(double,PM25Density,0,0,1000); // 2.5-micron particulate density, measured in µg/m<sup>3</sup>
|
||||||
|
|
@ -552,7 +552,7 @@ namespace Characteristic {
|
||||||
CREATE_CHAR(double,RelativeHumidityHumidifierThreshold,50,0,100); // humidfier turns on when humidity falls below this threshold
|
CREATE_CHAR(double,RelativeHumidityHumidifierThreshold,50,0,100); // humidfier turns on when humidity falls below this threshold
|
||||||
CREATE_CHAR(uint32_t,RemainingDuration,60,0,3600); // duration (in seconds) remaining for Service to be active/on
|
CREATE_CHAR(uint32_t,RemainingDuration,60,0,3600); // duration (in seconds) remaining for Service to be active/on
|
||||||
CREATE_CHAR(uint8_t,RemoteKey,4,4,15,UP=4,DOWN,LEFT,RIGHT,CENTER,BACK,PLAY_PAUSE=11,INFO=15); // triggers an update when the corresponding key is pressed in the Remote Control widget on an iPhone
|
CREATE_CHAR(uint8_t,RemoteKey,4,4,15,UP=4,DOWN,LEFT,RIGHT,CENTER,BACK,PLAY_PAUSE=11,INFO=15); // triggers an update when the corresponding key is pressed in the Remote Control widget on an iPhone
|
||||||
CREATE_CHAR(uint8_t,ResetFilterIndication,1,1,1,RESET_FILTER=1); // triggers and update when the user chooses to reset the <b>FilterChangeIndication</b> from the Home App
|
CREATE_CHAR(uint8_t,ResetFilterIndication,1,1,1,RESET_FILTER=1); // triggers an update when the user chooses to reset the <b>FilterChangeIndication</b> (only appears in Eve App, not Home App)
|
||||||
CREATE_CHAR(int,RotationDirection,0,0,1,CLOCKWISE,COUNTERCLOCKWISE); // indicates the rotation direction of a fan
|
CREATE_CHAR(int,RotationDirection,0,0,1,CLOCKWISE,COUNTERCLOCKWISE); // indicates the rotation direction of a fan
|
||||||
CREATE_CHAR(double,RotationSpeed,0,0,100); // measured as a percentage
|
CREATE_CHAR(double,RotationSpeed,0,0,100); // measured as a percentage
|
||||||
CREATE_CHAR(double,Saturation,0,0,100); // color saturation, measured as a percentage
|
CREATE_CHAR(double,Saturation,0,0,100); // color saturation, measured as a percentage
|
||||||
|
|
@ -566,7 +566,7 @@ namespace Characteristic {
|
||||||
CREATE_CHAR(uint8_t,SleepDiscoveryMode,0,0,1); // not used
|
CREATE_CHAR(uint8_t,SleepDiscoveryMode,0,0,1); // not used
|
||||||
CREATE_CHAR(uint8_t,SmokeDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if smoke is detected
|
CREATE_CHAR(uint8_t,SmokeDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if smoke is detected
|
||||||
CREATE_CHAR(boolean,StatusActive,1,0,1,NOT_FUNCTIONING,FUNCTIONING); // indicates whether the Service is properly functioning
|
CREATE_CHAR(boolean,StatusActive,1,0,1,NOT_FUNCTIONING,FUNCTIONING); // indicates whether the Service is properly functioning
|
||||||
CREATE_CHAR(uint8_t,StatusFault,0,0,1,NO_FAULT,FAULT); // indicates whether the Service has a fault
|
CREATE_CHAR(uint8_t,StatusFault,0,0,1,NO_FAULT,FAULT); // indicates whether the Service has a fault (only appears in Eve App, not Home App)
|
||||||
CREATE_CHAR(uint8_t,StatusJammed,0,0,1,NOT_JAMMED,JAMMED); // indicates whether the Service has been "jammed"
|
CREATE_CHAR(uint8_t,StatusJammed,0,0,1,NOT_JAMMED,JAMMED); // indicates whether the Service has been "jammed"
|
||||||
CREATE_CHAR(uint8_t,StatusLowBattery,0,0,1,NOT_LOW_BATTERY,LOW_BATTERY); // indicates state of battery
|
CREATE_CHAR(uint8_t,StatusLowBattery,0,0,1,NOT_LOW_BATTERY,LOW_BATTERY); // indicates state of battery
|
||||||
CREATE_CHAR(uint8_t,StatusTampered,0,0,1,NOT_TAMPERED,TAMPERED); // indicates whether the Service has been tampered with
|
CREATE_CHAR(uint8_t,StatusTampered,0,0,1,NOT_TAMPERED,TAMPERED); // indicates whether the Service has been tampered with
|
||||||
|
|
|
||||||
11
src/src.ino
11
src/src.ino
|
|
@ -72,6 +72,17 @@ void setup() {
|
||||||
new Characteristic::StatusTampered(1);
|
new Characteristic::StatusTampered(1);
|
||||||
new Characteristic::StatusLowBattery(1);
|
new Characteristic::StatusLowBattery(1);
|
||||||
|
|
||||||
|
new SpanAccessory();
|
||||||
|
new Service::AccessoryInformation();
|
||||||
|
new Characteristic::Identify();
|
||||||
|
new Characteristic::Name("Furnace Filter");
|
||||||
|
|
||||||
|
new Service::FilterMaintenance();
|
||||||
|
new Characteristic::FilterChangeIndication(Characteristic::FilterChangeIndication::CHANGE_NEEDED);
|
||||||
|
new Characteristic::FilterLifeLevel(5);
|
||||||
|
// new Characteristic::ResetFilterIndication();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue