Re-organized Services List into Service Groups
This commit is contained in:
parent
e67e49454f
commit
e421c40f4f
|
|
@ -31,11 +31,12 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<!-- AUTOGENERATED_TEXT. DO NOT EDIT THIS LINE OR ANYTHING BELOW -->
|
<!-- AUTOGENERATED_TEXT. DO NOT EDIT THIS LINE OR ANYTHING BELOW -->
|
||||||
|
|
||||||
|
|
||||||
|
## Mandatory Services
|
||||||
### AccessoryInformation (3E)
|
### AccessoryInformation (3E)
|
||||||
Required Identification Information. For each Accessory in a HomeSpan device this <i>must</i> be included as the first Service.<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> default name of a Service used <i>only</i> during initial pairing</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 name of a Service used only during initial pairing</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>
|
||||||
|
|
@ -43,8 +44,52 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>HardwareRevision (53) </b><ul><li> must be in form x[.y[.z]] - 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">"1.0.0"</td></tr>
|
<tr><td><b>HardwareRevision (53) </b><ul><li> must be in form x[.y[.z]] - 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">"1.0.0"</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
## Lights, Power, and Switches
|
||||||
|
### BatteryService (96)
|
||||||
|
<i> Defines a standalone Battery 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><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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### LightBulb (43)
|
||||||
|
<i> Defines any type of Light.</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><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>Brightness (8) </b><ul><li> measured as a percentage</li></ul></td><td align="center">int</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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### Outlet (47)
|
||||||
|
<i> Defines an 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><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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### StatelessProgrammableSwitch (89)
|
||||||
|
<i> Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.</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><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>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>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### Switch (49)
|
||||||
|
<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><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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
## Heating, Ventilation, and Air Conditioning (HVAC)
|
||||||
### AirPurifier (BB)
|
### 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><br><table>
|
<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>
|
||||||
<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></li><li><span>IDLE (1) </span>:heavy_check_mark:</li><li><span>PURIFYING (2) </span></li></ul></td></tr>
|
||||||
|
|
@ -55,87 +100,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### AirQualitySensor (8D)
|
|
||||||
Defines an Air Quality Sensor. <br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
|
||||||
<tr><td><b>AirQuality (95) :small_blue_diamond:</b><ul><li> a subjective description</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">5</td><td><ul><li><span>UNKNOWN (0) </span>:heavy_check_mark:</li><li><span>EXCELLENT (1) </span></li><li><span>GOOD (2) </span></li><li><span>FAIR (3) </span></li><li><span>INFERIOR (4) </span></li><li><span>POOR (5) </span></li></ul></td></tr>
|
|
||||||
<tr><td><b>OzoneDensity (C3) </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>NitrogenDioxideDensity (C4) </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>SulphurDioxideDensity (C5) </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>PM25Density (C6) </b><ul><li> 2.5-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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### BatteryService (96)
|
|
||||||
Defines a standalone Battery Service.<br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### CarbonDioxideSensor (97)
|
|
||||||
Defines a Carbon Dioxide Sensor.<br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
|
||||||
<tr><td><b>CarbonDioxideDetected (92) :small_blue_diamond:</b><ul><li> indicates if abnormal level 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>NORMAL (0) </span>:heavy_check_mark:</li><li><span>ABNORMAL (1) </span></li></ul></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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### CarbonMonoxideSensor (7F)
|
|
||||||
Defines a Carbon Monoxide Sensor.<br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
|
||||||
<tr><td><b>CarbonMonoxideDetected (69) :small_blue_diamond:</b><ul><li> indicates if abnormal level 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>NORMAL (0) </span>:heavy_check_mark:</li><li><span>ABNORMAL (1) </span></li></ul></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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### ContactSensor (80)
|
|
||||||
Defines a Contact Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Door (81)
|
|
||||||
Defines a motorized Door.<br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Doorbell (121)
|
|
||||||
Defines a Doorbell. Can be used on a standalone basis or in conjunction with a <b>LockMechanism</b> Service.<br><table>
|
|
||||||
<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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Fan (B7)
|
### Fan (B7)
|
||||||
Defines a Fan. Can be used in conjunction with a <b>LightBulb</b> Service to create a Lighted Ceiling Fan.<br><table>
|
<i> Defines a Fan. Can be used in conjunction 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>
|
||||||
|
|
@ -147,16 +113,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### Faucet (D7)
|
|
||||||
Defines the master control for a multi-Valve appliance. Linked Services: <b>Valve</b> (at least one <i>required</i>), and <b>HeaterCooler</b> (optional).<br><table>
|
|
||||||
<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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### FilterMaintenance (BA)
|
### FilterMaintenance (BA)
|
||||||
Defines a Filter Maintainence check.<br><table>
|
<i> Defines a Filter Maintainence check.</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> 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>
|
||||||
|
|
@ -164,20 +122,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### GarageDoorOpener (41)
|
|
||||||
Defines a motorized Garage Door Opener.<br><table>
|
|
||||||
<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>
|
|
||||||
<tr><td><b>CurrentDoorState (E) :small_blue_diamond:</b><ul><li> indicates current state of a door</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>OPEN (0) </span></li><li><span>CLOSED (1) </span>:heavy_check_mark:</li><li><span>OPENING (2) </span></li><li><span>CLOSING (3) </span></li><li><span>STOPPED (4) </span></li></ul></td></tr>
|
|
||||||
<tr><td><b>TargetDoorState (32) :small_blue_diamond:</b><ul><li> indicates desired state of door</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>OPEN (0) </span></li><li><span>CLOSED (1) </span>:heavy_check_mark:</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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>Version (37) :small_blue_diamond:</b><ul><li> unused</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"1.0.0"</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### HeaterCooler (BC)
|
### 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.<br><table>
|
<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>
|
||||||
<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>
|
||||||
|
|
@ -193,7 +139,7 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
### HumidifierDehumidifier (BD)
|
### 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.<br><table>
|
<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>
|
||||||
<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>
|
||||||
|
|
@ -208,131 +154,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### HumiditySensor (82)
|
|
||||||
Defines a Humidity Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### InputSource (D9)
|
|
||||||
Defines an Input Source for a TV. Use <i>only</i> as a Linked Service for the <b>Television</b> Service.<br><table>
|
|
||||||
<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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>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>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### IrrigationSystem (CF)
|
|
||||||
Defines an Irrigation System. Linked Services: <b>Valve</b> Service (at least one <i>required</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### LeakSensor (83)
|
|
||||||
Defines a Leak Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### LightBulb (43)
|
|
||||||
Defines any type of Light.<br><table>
|
|
||||||
<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>Brightness (8) </b><ul><li> measured as a percentage</li></ul></td><td align="center">int</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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### LightSensor (84)
|
|
||||||
Defines a Light Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### LockMechanism (45)
|
|
||||||
Defines an electronic Lock.<br><table>
|
|
||||||
<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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>Mute (11A) :small_blue_diamond:</b><ul><li> not used</li></ul></td><td align="center">bool</td><td align="center">PW+PR+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>Volume (119) </b><ul><li> unused</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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### MotionSensor (85)
|
|
||||||
Defines a Motion Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### OccupancySensor (86)
|
|
||||||
Defines and Occupancy Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Outlet (47)
|
|
||||||
Defines an controllable Outlet used to power any light or appliance.<br><table>
|
|
||||||
<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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### SecuritySystem (7E)
|
|
||||||
Defines a Security System.<br><table>
|
|
||||||
<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>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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### 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.<br><table>
|
|
||||||
<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>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Slat (B9)
|
### Slat (B9)
|
||||||
Defines a motorized ventilation Slat(s).<br><table>
|
<i> Defines a motorized ventilation Slat(s).</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>CurrentSlatState (AA) :small_blue_diamond:</b><ul><li> indicates current state of slats</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>FIXED (0) </span>:heavy_check_mark:</li><li><span>JAMMED (1) </span></li><li><span>SWINGING (2) </span></li></ul></td></tr>
|
<tr><td><b>CurrentSlatState (AA) :small_blue_diamond:</b><ul><li> indicates current state of slats</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>FIXED (0) </span>:heavy_check_mark:</li><li><span>JAMMED (1) </span></li><li><span>SWINGING (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>SlatType (C0) :small_blue_diamond:</b><ul><li> indicates the direction of a slat or group of slats</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>HORIZONTAL (0) </span>:heavy_check_mark:</li><li><span>VERTICAL (1) </span></li></ul></td></tr>
|
<tr><td><b>SlatType (C0) :small_blue_diamond:</b><ul><li> indicates the direction of a slat or group of slats</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>HORIZONTAL (0) </span>:heavy_check_mark:</li><li><span>VERTICAL (1) </span></li></ul></td></tr>
|
||||||
|
|
@ -342,65 +165,8 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### SmokeSensor (87)
|
|
||||||
Defines a Smoke Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>Mute (11A) :small_blue_diamond:</b><ul><li> not used</li></ul></td><td align="center">bool</td><td align="center">PW+PR+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>Volume (119) </b><ul><li> unused</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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### StatelessProgrammableSwitch (89)
|
|
||||||
Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.<br><table>
|
|
||||||
<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>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>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Switch (49)
|
|
||||||
Defines a generic Switch.<br><table>
|
|
||||||
<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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Television (D8)
|
|
||||||
Defines a TV. Optional Linked Services: <b>InputSource</b> and <b>TelevisionSpeaker</b>.<br><table>
|
|
||||||
<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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### TelevisionSpeaker (113)
|
|
||||||
Defines a Television Speaker that can be controlled via the Remote Control widget on an iPhone. Use <i>only</i> as a Linked Service for the <b>Television</b> Service.<br><table>
|
|
||||||
<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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### TemperatureSensor (8A)
|
|
||||||
Defines a Temperature Sensor.<br><table>
|
|
||||||
<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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
|
||||||
|
|
||||||
### Thermostat (4A)
|
### Thermostat (4A)
|
||||||
Defines a Thermostat used to control a furnace, air conditioner, or both.<br><table>
|
<i> Defines a Thermostat used to control a furnace, air conditioner, or both.</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>CurrentHeatingCoolingState (F) :small_blue_diamond:</b><ul><li> indicates whether appliance is currently heating, cooling, or just idle</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>IDLE (0) </span>:heavy_check_mark:</li><li><span>HEATING (1) </span></li><li><span>COOLING (2) </span></li></ul></td></tr>
|
<tr><td><b>CurrentHeatingCoolingState (F) :small_blue_diamond:</b><ul><li> indicates whether appliance is currently heating, cooling, or just idle</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>IDLE (0) </span>:heavy_check_mark:</li><li><span>HEATING (1) </span></li><li><span>COOLING (2) </span></li></ul></td></tr>
|
||||||
<tr><td><b>TargetHeatingCoolingState (33) :small_blue_diamond:</b><ul><li> indicates desired state of appliance</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>OFF (0) </span>:heavy_check_mark:</li><li><span>HEAT (1) </span></li><li><span>COOL (2) </span></li><li><span>AUTO (3) </span></li></ul></td></tr>
|
<tr><td><b>TargetHeatingCoolingState (33) :small_blue_diamond:</b><ul><li> indicates desired state of appliance</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>OFF (0) </span>:heavy_check_mark:</li><li><span>HEAT (1) </span></li><li><span>COOL (2) </span></li><li><span>AUTO (3) </span></li></ul></td></tr>
|
||||||
|
|
@ -414,8 +180,218 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
|
## Standalone Sensors
|
||||||
|
### AirQualitySensor (8D)
|
||||||
|
<i> Defines an Air Quality Sensor. </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><td><b>AirQuality (95) :small_blue_diamond:</b><ul><li> a subjective description</li></ul></td><td align="center">uint8</td><td align="center">PR+EV</td><td align="center">0</td><td align="center">5</td><td><ul><li><span>UNKNOWN (0) </span>:heavy_check_mark:</li><li><span>EXCELLENT (1) </span></li><li><span>GOOD (2) </span></li><li><span>FAIR (3) </span></li><li><span>INFERIOR (4) </span></li><li><span>POOR (5) </span></li></ul></td></tr>
|
||||||
|
<tr><td><b>OzoneDensity (C3) </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>NitrogenDioxideDensity (C4) </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>SulphurDioxideDensity (C5) </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>PM25Density (C6) </b><ul><li> 2.5-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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### CarbonDioxideSensor (97)
|
||||||
|
<i> Defines a Carbon Dioxide Sensor.</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><td><b>CarbonDioxideDetected (92) :small_blue_diamond:</b><ul><li> indicates if abnormal level 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>NORMAL (0) </span>:heavy_check_mark:</li><li><span>ABNORMAL (1) </span></li></ul></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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### CarbonMonoxideSensor (7F)
|
||||||
|
<i> Defines a Carbon Monoxide Sensor.</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><td><b>CarbonMonoxideDetected (69) :small_blue_diamond:</b><ul><li> indicates if abnormal level 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>NORMAL (0) </span>:heavy_check_mark:</li><li><span>ABNORMAL (1) </span></li></ul></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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### ContactSensor (80)
|
||||||
|
<i> Defines a Contact Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### HumiditySensor (82)
|
||||||
|
<i> Defines a Humidity Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### LeakSensor (83)
|
||||||
|
<i> Defines a Leak Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### LightSensor (84)
|
||||||
|
<i> Defines a Light Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### MotionSensor (85)
|
||||||
|
<i> Defines a Motion Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### OccupancySensor (86)
|
||||||
|
<i> Defines and Occupancy Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### SmokeSensor (87)
|
||||||
|
<i> Defines a Smoke Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### TemperatureSensor (8A)
|
||||||
|
<i> Defines a Temperature Sensor.</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
## Doors, Locks, and Windows
|
||||||
|
### Door (81)
|
||||||
|
<i> Defines a motorized Door.</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><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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### 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>
|
||||||
|
<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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### GarageDoorOpener (41)
|
||||||
|
<i> Defines a motorized Garage Door Opener.</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><td><b>CurrentDoorState (E) :small_blue_diamond:</b><ul><li> indicates current state of a door</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>OPEN (0) </span></li><li><span>CLOSED (1) </span>:heavy_check_mark:</li><li><span>OPENING (2) </span></li><li><span>CLOSING (3) </span></li><li><span>STOPPED (4) </span></li></ul></td></tr>
|
||||||
|
<tr><td><b>TargetDoorState (32) :small_blue_diamond:</b><ul><li> indicates desired state of door</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>OPEN (0) </span></li><li><span>CLOSED (1) </span>:heavy_check_mark:</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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### LockMechanism (45)
|
||||||
|
<i> Defines an electronic Lock.</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><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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### Window (8B)
|
||||||
|
<i> Defines a motorized Window.</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><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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### WindowCovering (8C)
|
||||||
|
<i> Defines a motorized Window Shade, Screen, Awning, etc.</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><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>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>CurrentHorizontalTiltAngle (6C) </b><ul><li> current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (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>TargetHorizontalTiltAngle (7B) </b><ul><li> indicates desired angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
## Water Systems
|
||||||
|
### Faucet (D7)
|
||||||
|
<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><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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### IrrigationSystem (CF)
|
||||||
|
<i> Defines an Irrigation System. Linked Services: <b>Valve</b> Service (at least one required).</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><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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
### Valve (D0)
|
### 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.<br><table>
|
<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>
|
||||||
<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>
|
||||||
|
|
@ -428,25 +404,58 @@ The pre-defined constant expressions for enumerated Characteristics are in names
|
||||||
<tr><td><b>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### Window (8B)
|
## Security Systems
|
||||||
Defines a motorized Window.<br><table>
|
### SecuritySystem (7E)
|
||||||
|
<i> Defines a Security System. Often combined 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>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>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>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>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>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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
### WindowCovering (8C)
|
## Televisions
|
||||||
Defines a motorized Window Shade, Screen, Awning, etc.<br><table>
|
### InputSource (D9)
|
||||||
|
<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>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>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>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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>CurrentHorizontalTiltAngle (6C) </b><ul><li> current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (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>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>TargetHorizontalTiltAngle (7B) </b><ul><li> indicates desired angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (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>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>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>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>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>
|
</table>
|
||||||
<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>
|
|
||||||
|
### Television (D8)
|
||||||
|
<i> Defines a TV. Optional Linked Services: <b>InputSource</b> and <b>TelevisionSpeaker</b>.</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><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>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>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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
### TelevisionSpeaker (113)
|
||||||
|
<i> Defines a Television Speaker that can be controlled via the Remote Control widget on an iPhone. 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><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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
||||||
|
|
||||||
|
## Miscellaneous
|
||||||
|
### 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>
|
||||||
|
<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>Version (37) :small_blue_diamond:</b><ul><li> unused</li></ul></td><td align="center">string</td><td align="center">PR</td><td align="center">-</td><td align="center">-</td><td align="center">"1.0.0"</td></tr>
|
||||||
|
<tr><td><b>Mute (11A) :small_blue_diamond:</b><ul><li> not used</li></ul></td><td align="center">bool</td><td align="center">PW+PR+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>Volume (119) </b><ul><li> unused</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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>Mute (11A) :small_blue_diamond:</b><ul><li> not used</li></ul></td><td align="center">bool</td><td align="center">PW+PR+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>Volume (119) </b><ul><li> unused</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>ConfiguredName (E3) </b><ul><li> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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> a "configurable" Service name - any updates made from within the Home App trigger an update in HomeSpan and vice versa.</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>
|
</table>
|
||||||
|
|
||||||
|
|
|
||||||
470
src/Span.h
470
src/Span.h
|
|
@ -46,9 +46,13 @@
|
||||||
#define OPT(HAPCHAR) opt.push_back(&hapChars.HAPCHAR)
|
#define OPT(HAPCHAR) opt.push_back(&hapChars.HAPCHAR)
|
||||||
#define OPT_DEP(HAPCHAR) opt.push_back(&hapChars.HAPCHAR)
|
#define OPT_DEP(HAPCHAR) opt.push_back(&hapChars.HAPCHAR)
|
||||||
|
|
||||||
|
#define SERVICES_GROUP
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
|
|
||||||
CREATE_SERV(AccessoryInformation,3E) // Required Identification Information. For each Accessory in a HomeSpan device this <i>must</i> be included as the first Service.
|
SERVICES_GROUP // Mandatory Services
|
||||||
|
|
||||||
|
CREATE_SERV(AccessoryInformation,3E) // Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
|
||||||
REQ(Identify);
|
REQ(Identify);
|
||||||
OPT(Name);
|
OPT(Name);
|
||||||
OPT(FirmwareRevision);
|
OPT(FirmwareRevision);
|
||||||
|
|
@ -59,6 +63,47 @@ namespace Service {
|
||||||
OPT_DEP(AccessoryFlags);
|
OPT_DEP(AccessoryFlags);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
|
SERVICES_GROUP // Lights, Power, and Switches
|
||||||
|
|
||||||
|
CREATE_SERV(BatteryService,96) // Defines a standalone Battery Service.
|
||||||
|
REQ(BatteryLevel);
|
||||||
|
REQ(ChargingState);
|
||||||
|
REQ(StatusLowBattery);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(LightBulb,43) // Defines any type of Light.
|
||||||
|
REQ(On);
|
||||||
|
OPT(Brightness);
|
||||||
|
OPT(Hue);
|
||||||
|
OPT(Saturation);
|
||||||
|
OPT(ColorTemperature);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Outlet,47) // Defines an controllable Outlet used to power any light or appliance.
|
||||||
|
REQ(On);
|
||||||
|
REQ(OutletInUse);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(StatelessProgrammableSwitch,89) // Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.
|
||||||
|
REQ(ProgrammableSwitchEvent);
|
||||||
|
OPT(ServiceLabelIndex);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Switch,49) // Defines a generic Switch.
|
||||||
|
REQ(On);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
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. Optional Linked Services: <b>FilterMaintenance</b>, <b>AirQualitySensor</b>, <b>Fan</b>, and <b>Slat</b>
|
||||||
REQ(Active);
|
REQ(Active);
|
||||||
REQ(CurrentAirPurifierState);
|
REQ(CurrentAirPurifierState);
|
||||||
|
|
@ -70,6 +115,82 @@ 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.
|
||||||
|
REQ(Active);
|
||||||
|
OPT(CurrentFanState);
|
||||||
|
OPT(TargetFanState);
|
||||||
|
OPT(RotationDirection);
|
||||||
|
OPT(RotationSpeed);
|
||||||
|
OPT(SwingMode);
|
||||||
|
OPT(LockPhysicalControls);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(FilterMaintenance,BA) // Defines a Filter Maintainence check.
|
||||||
|
REQ(FilterChangeIndication);
|
||||||
|
OPT(FilterLifeLevel);
|
||||||
|
OPT(ResetFilterIndication);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
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.
|
||||||
|
REQ(Active);
|
||||||
|
REQ(CurrentTemperature);
|
||||||
|
REQ(CurrentHeaterCoolerState);
|
||||||
|
REQ(TargetHeaterCoolerState);
|
||||||
|
OPT(RotationSpeed);
|
||||||
|
OPT(TemperatureDisplayUnits);
|
||||||
|
OPT(SwingMode);
|
||||||
|
OPT(CoolingThresholdTemperature);
|
||||||
|
OPT(HeatingThresholdTemperature);
|
||||||
|
OPT(LockPhysicalControls);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
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.
|
||||||
|
REQ(Active);
|
||||||
|
REQ(CurrentRelativeHumidity);
|
||||||
|
REQ(CurrentHumidifierDehumidifierState);
|
||||||
|
REQ(TargetHumidifierDehumidifierState);
|
||||||
|
OPT(RelativeHumidityDehumidifierThreshold);
|
||||||
|
OPT(RelativeHumidityHumidifierThreshold);
|
||||||
|
OPT(RotationSpeed);
|
||||||
|
OPT(SwingMode);
|
||||||
|
OPT(WaterLevel);
|
||||||
|
OPT(LockPhysicalControls);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Slat,B9) // Defines a motorized ventilation Slat(s).
|
||||||
|
REQ(CurrentSlatState);
|
||||||
|
REQ(SlatType);
|
||||||
|
OPT(SwingMode);
|
||||||
|
OPT(CurrentTiltAngle);
|
||||||
|
OPT(TargetTiltAngle);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Thermostat,4A) // Defines a Thermostat used to control a furnace, air conditioner, or both.
|
||||||
|
REQ(CurrentHeatingCoolingState);
|
||||||
|
REQ(TargetHeatingCoolingState);
|
||||||
|
REQ(CurrentTemperature);
|
||||||
|
REQ(TargetTemperature);
|
||||||
|
REQ(TemperatureDisplayUnits);
|
||||||
|
OPT(CoolingThresholdTemperature);
|
||||||
|
OPT(CurrentRelativeHumidity);
|
||||||
|
OPT(HeatingThresholdTemperature);
|
||||||
|
OPT(TargetRelativeHumidity);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
SERVICES_GROUP // Standalone Sensors
|
||||||
|
|
||||||
CREATE_SERV(AirQualitySensor,8D) // Defines an Air Quality Sensor.
|
CREATE_SERV(AirQualitySensor,8D) // Defines an Air Quality Sensor.
|
||||||
REQ(AirQuality);
|
REQ(AirQuality);
|
||||||
OPT(OzoneDensity);
|
OPT(OzoneDensity);
|
||||||
|
|
@ -86,14 +207,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(BatteryService,96) // Defines a standalone Battery Service.
|
|
||||||
REQ(BatteryLevel);
|
|
||||||
REQ(ChargingState);
|
|
||||||
REQ(StatusLowBattery);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(CarbonDioxideSensor,97) // Defines a Carbon Dioxide Sensor.
|
CREATE_SERV(CarbonDioxideSensor,97) // Defines a Carbon Dioxide Sensor.
|
||||||
REQ(CarbonDioxideDetected);
|
REQ(CarbonDioxideDetected);
|
||||||
OPT(CarbonDioxideLevel);
|
OPT(CarbonDioxideLevel);
|
||||||
|
|
@ -128,95 +241,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(Door,81) // Defines a motorized Door.
|
|
||||||
REQ(CurrentPosition);
|
|
||||||
REQ(TargetPosition);
|
|
||||||
OPT(ObstructionDetected);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
OPT_DEP(PositionState);
|
|
||||||
OPT_DEP(HoldPosition);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(Doorbell,121) // Defines a Doorbell. Can be used on a standalone basis or in conjunction with a <b>LockMechanism</b> Service.
|
|
||||||
REQ(ProgrammableSwitchEvent);
|
|
||||||
OPT_DEP(Volume);
|
|
||||||
OPT_DEP(Brightness);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
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.
|
|
||||||
REQ(Active);
|
|
||||||
OPT(CurrentFanState);
|
|
||||||
OPT(TargetFanState);
|
|
||||||
OPT(RotationDirection);
|
|
||||||
OPT(RotationSpeed);
|
|
||||||
OPT(SwingMode);
|
|
||||||
OPT(LockPhysicalControls);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(Faucet,D7) // Defines the master control for a multi-Valve appliance. Linked Services: <b>Valve</b> (at least one <i>required</i>), and <b>HeaterCooler</b> (optional).
|
|
||||||
REQ(Active);
|
|
||||||
OPT(StatusFault);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(FilterMaintenance,BA) // Defines a Filter Maintainence check.
|
|
||||||
REQ(FilterChangeIndication);
|
|
||||||
OPT(FilterLifeLevel);
|
|
||||||
OPT(ResetFilterIndication);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(GarageDoorOpener,41) // Defines a motorized Garage Door Opener.
|
|
||||||
REQ(CurrentDoorState);
|
|
||||||
REQ(TargetDoorState);
|
|
||||||
REQ(ObstructionDetected);
|
|
||||||
OPT(LockCurrentState);
|
|
||||||
OPT(LockTargetState);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV_DEP(HAPProtocolInformation,A2)
|
|
||||||
REQ(Version);
|
|
||||||
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.
|
|
||||||
REQ(Active);
|
|
||||||
REQ(CurrentTemperature);
|
|
||||||
REQ(CurrentHeaterCoolerState);
|
|
||||||
REQ(TargetHeaterCoolerState);
|
|
||||||
OPT(RotationSpeed);
|
|
||||||
OPT(TemperatureDisplayUnits);
|
|
||||||
OPT(SwingMode);
|
|
||||||
OPT(CoolingThresholdTemperature);
|
|
||||||
OPT(HeatingThresholdTemperature);
|
|
||||||
OPT(LockPhysicalControls);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
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.
|
|
||||||
REQ(Active);
|
|
||||||
REQ(CurrentRelativeHumidity);
|
|
||||||
REQ(CurrentHumidifierDehumidifierState);
|
|
||||||
REQ(TargetHumidifierDehumidifierState);
|
|
||||||
OPT(RelativeHumidityDehumidifierThreshold);
|
|
||||||
OPT(RelativeHumidityHumidifierThreshold);
|
|
||||||
OPT(RotationSpeed);
|
|
||||||
OPT(SwingMode);
|
|
||||||
OPT(WaterLevel);
|
|
||||||
OPT(LockPhysicalControls);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(HumiditySensor,82) // Defines a Humidity Sensor.
|
CREATE_SERV(HumiditySensor,82) // Defines a Humidity Sensor.
|
||||||
REQ(CurrentRelativeHumidity);
|
REQ(CurrentRelativeHumidity);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -227,24 +251,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(InputSource,D9) // Defines an Input Source for a TV. Use <i>only</i> as a Linked Service for the <b>Television</b> Service.
|
|
||||||
REQ(Identifier);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT(IsConfigured);
|
|
||||||
OPT(CurrentVisibilityState);
|
|
||||||
OPT(TargetVisibilityState);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(IrrigationSystem,CF) // Defines an Irrigation System. Linked Services: <b>Valve</b> Service (at least one <i>required</i>).
|
|
||||||
REQ(Active);
|
|
||||||
REQ(ProgramMode);
|
|
||||||
REQ(InUse);
|
|
||||||
OPT(RemainingDuration);
|
|
||||||
OPT(StatusFault);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(LeakSensor,83) // Defines a Leak Sensor.
|
CREATE_SERV(LeakSensor,83) // Defines a Leak Sensor.
|
||||||
REQ(LeakDetected);
|
REQ(LeakDetected);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -255,16 +261,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(LightBulb,43) // Defines any type of Light.
|
|
||||||
REQ(On);
|
|
||||||
OPT(Brightness);
|
|
||||||
OPT(Hue);
|
|
||||||
OPT(Saturation);
|
|
||||||
OPT(ColorTemperature);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(LightSensor,84) // Defines a Light Sensor.
|
CREATE_SERV(LightSensor,84) // Defines a Light Sensor.
|
||||||
REQ(CurrentAmbientLightLevel);
|
REQ(CurrentAmbientLightLevel);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -275,20 +271,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(LockMechanism,45) // Defines an electronic Lock.
|
|
||||||
REQ(LockCurrentState);
|
|
||||||
REQ(LockTargetState);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV_DEP(Microphone,112)
|
|
||||||
REQ(Mute);
|
|
||||||
OPT(Volume);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(MotionSensor,85) // Defines a Motion Sensor.
|
CREATE_SERV(MotionSensor,85) // Defines a Motion Sensor.
|
||||||
REQ(MotionDetected);
|
REQ(MotionDetected);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -309,37 +291,6 @@ 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.
|
|
||||||
REQ(On);
|
|
||||||
REQ(OutletInUse);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(SecuritySystem,7E) // Defines a Security System.
|
|
||||||
REQ(SecuritySystemCurrentState);
|
|
||||||
REQ(SecuritySystemTargetState);
|
|
||||||
OPT(SecuritySystemAlarmType);
|
|
||||||
OPT(StatusFault);
|
|
||||||
OPT(StatusTampered);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
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.
|
|
||||||
REQ(ServiceLabelNamespace);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(Slat,B9) // Defines a motorized ventilation Slat(s).
|
|
||||||
REQ(CurrentSlatState);
|
|
||||||
REQ(SlatType);
|
|
||||||
OPT(SwingMode);
|
|
||||||
OPT(CurrentTiltAngle);
|
|
||||||
OPT(TargetTiltAngle);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(SmokeSensor,87) // Defines a Smoke Sensor.
|
CREATE_SERV(SmokeSensor,87) // Defines a Smoke Sensor.
|
||||||
REQ(SmokeDetected);
|
REQ(SmokeDetected);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -350,39 +301,6 @@ namespace Service {
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV_DEP(Speaker,113)
|
|
||||||
REQ(Mute);
|
|
||||||
OPT(Volume);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(StatelessProgrammableSwitch,89) // Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.
|
|
||||||
REQ(ProgrammableSwitchEvent);
|
|
||||||
OPT(ServiceLabelIndex);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(Switch,49) // Defines a generic Switch.
|
|
||||||
REQ(On);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
OPT_DEP(Name);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(Television,D8) // Defines a TV. Optional Linked Services: <b>InputSource</b> and <b>TelevisionSpeaker</b>.
|
|
||||||
REQ(Active);
|
|
||||||
OPT(ActiveIdentifier);
|
|
||||||
OPT(RemoteKey);
|
|
||||||
OPT(PowerModeSelection);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(TelevisionSpeaker,113) // Defines a Television Speaker that can be controlled via the Remote Control widget on an iPhone. Use <i>only</i> as a Linked Service for the <b>Television</b> Service.
|
|
||||||
REQ(VolumeControlType);
|
|
||||||
REQ(VolumeSelector);
|
|
||||||
OPT(ConfiguredName);
|
|
||||||
END_SERV
|
|
||||||
|
|
||||||
CREATE_SERV(TemperatureSensor,8A) // Defines a Temperature Sensor.
|
CREATE_SERV(TemperatureSensor,8A) // Defines a Temperature Sensor.
|
||||||
REQ(CurrentTemperature);
|
REQ(CurrentTemperature);
|
||||||
OPT(StatusActive);
|
OPT(StatusActive);
|
||||||
|
|
@ -392,29 +310,39 @@ namespace Service {
|
||||||
OPT(ConfiguredName);
|
OPT(ConfiguredName);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
CREATE_SERV(Thermostat,4A) // Defines a Thermostat used to control a furnace, air conditioner, or both.
|
SERVICES_GROUP // Doors, Locks, and Windows
|
||||||
REQ(CurrentHeatingCoolingState);
|
|
||||||
REQ(TargetHeatingCoolingState);
|
CREATE_SERV(Door,81) // Defines a motorized Door.
|
||||||
REQ(CurrentTemperature);
|
REQ(CurrentPosition);
|
||||||
REQ(TargetTemperature);
|
REQ(TargetPosition);
|
||||||
REQ(TemperatureDisplayUnits);
|
OPT(ObstructionDetected);
|
||||||
OPT(CoolingThresholdTemperature);
|
OPT(ConfiguredName);
|
||||||
OPT(CurrentRelativeHumidity);
|
OPT_DEP(Name);
|
||||||
OPT(HeatingThresholdTemperature);
|
OPT_DEP(PositionState);
|
||||||
OPT(TargetRelativeHumidity);
|
OPT_DEP(HoldPosition);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Doorbell,121) // Defines a Doorbell. Can be used on a standalone basis or in conjunction with a <b>LockMechanism</b> Service.
|
||||||
|
REQ(ProgrammableSwitchEvent);
|
||||||
|
OPT_DEP(Volume);
|
||||||
|
OPT_DEP(Brightness);
|
||||||
OPT(ConfiguredName);
|
OPT(ConfiguredName);
|
||||||
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(GarageDoorOpener,41) // Defines a motorized Garage Door Opener.
|
||||||
REQ(Active);
|
REQ(CurrentDoorState);
|
||||||
REQ(InUse);
|
REQ(TargetDoorState);
|
||||||
REQ(ValveType);
|
REQ(ObstructionDetected);
|
||||||
OPT(SetDuration);
|
OPT(LockCurrentState);
|
||||||
OPT(RemainingDuration);
|
OPT(LockTargetState);
|
||||||
OPT(IsConfigured);
|
OPT(ConfiguredName);
|
||||||
OPT(ServiceLabelIndex);
|
OPT_DEP(Name);
|
||||||
OPT(StatusFault);
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(LockMechanism,45) // Defines an electronic Lock.
|
||||||
|
REQ(LockCurrentState);
|
||||||
|
REQ(LockTargetState);
|
||||||
OPT(ConfiguredName);
|
OPT(ConfiguredName);
|
||||||
OPT_DEP(Name);
|
OPT_DEP(Name);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
@ -443,6 +371,100 @@ namespace Service {
|
||||||
OPT_DEP(HoldPosition);
|
OPT_DEP(HoldPosition);
|
||||||
END_SERV
|
END_SERV
|
||||||
|
|
||||||
|
SERVICES_GROUP // Water Systems
|
||||||
|
|
||||||
|
CREATE_SERV(Faucet,D7) // Defines the master control for a multi-Valve appliance. Linked Services: <b>Valve</b> (at least one required), and <b>HeaterCooler</b> (optional).
|
||||||
|
REQ(Active);
|
||||||
|
OPT(StatusFault);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(IrrigationSystem,CF) // Defines an Irrigation System. Linked Services: <b>Valve</b> Service (at least one required).
|
||||||
|
REQ(Active);
|
||||||
|
REQ(ProgramMode);
|
||||||
|
REQ(InUse);
|
||||||
|
OPT(RemainingDuration);
|
||||||
|
OPT(StatusFault);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
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.
|
||||||
|
REQ(Active);
|
||||||
|
REQ(InUse);
|
||||||
|
REQ(ValveType);
|
||||||
|
OPT(SetDuration);
|
||||||
|
OPT(RemainingDuration);
|
||||||
|
OPT(IsConfigured);
|
||||||
|
OPT(ServiceLabelIndex);
|
||||||
|
OPT(StatusFault);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
SERVICES_GROUP // Security Systems
|
||||||
|
|
||||||
|
CREATE_SERV(SecuritySystem,7E) // Defines a Security System. Often combined with <b>MotionSensor</b> and <b>ContactSensor</b> Services.
|
||||||
|
REQ(SecuritySystemCurrentState);
|
||||||
|
REQ(SecuritySystemTargetState);
|
||||||
|
OPT(SecuritySystemAlarmType);
|
||||||
|
OPT(StatusFault);
|
||||||
|
OPT(StatusTampered);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
SERVICES_GROUP // Televisions
|
||||||
|
|
||||||
|
CREATE_SERV(InputSource,D9) // Defines an Input Source for a TV. Use only as a Linked Service for the <b>Television</b> Service.
|
||||||
|
REQ(Identifier);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT(IsConfigured);
|
||||||
|
OPT(CurrentVisibilityState);
|
||||||
|
OPT(TargetVisibilityState);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(Television,D8) // Defines a TV. Optional Linked Services: <b>InputSource</b> and <b>TelevisionSpeaker</b>.
|
||||||
|
REQ(Active);
|
||||||
|
OPT(ActiveIdentifier);
|
||||||
|
OPT(RemoteKey);
|
||||||
|
OPT(PowerModeSelection);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV(TelevisionSpeaker,113) // Defines a Television Speaker that can be controlled via the Remote Control widget on an iPhone. Use only as a Linked Service for the <b>Television</b> Service.
|
||||||
|
REQ(VolumeControlType);
|
||||||
|
REQ(VolumeSelector);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
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.
|
||||||
|
REQ(ServiceLabelNamespace);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
// Deprecated or unsupported Services
|
||||||
|
|
||||||
|
CREATE_SERV_DEP(HAPProtocolInformation,A2)
|
||||||
|
REQ(Version);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV_DEP(Microphone,112)
|
||||||
|
REQ(Mute);
|
||||||
|
OPT(Volume);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
|
CREATE_SERV_DEP(Speaker,113)
|
||||||
|
REQ(Mute);
|
||||||
|
OPT(Volume);
|
||||||
|
OPT(ConfiguredName);
|
||||||
|
OPT_DEP(Name);
|
||||||
|
END_SERV
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
|
|
@ -511,7 +533,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); // default name of a Service used <i>only</i> during initial pairing
|
CREATE_CHAR(const char *,Name,"unnamed",0,1); // default name of a Service used only during initial pairing
|
||||||
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>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ grep -B 1000 "AUTOGENERATED_TEXT" ../docs/ServiceList.md > ServiceList.md
|
||||||
./makeServices ../src/Characteristics.h ../src/Span.h >> ServiceList.md
|
./makeServices ../src/Characteristics.h ../src/Span.h >> ServiceList.md
|
||||||
mv ServiceList.md ../docs/ServiceList.md
|
mv ServiceList.md ../docs/ServiceList.md
|
||||||
|
|
||||||
grep -B 1000 "AUTOGENERATED_TEXT" ../docs/ServiceList_Expanded.md > ServiceList_Expanded.md
|
#grep -B 1000 "AUTOGENERATED_TEXT" ../docs/ServiceList_Expanded.md > ServiceList_Expanded.md
|
||||||
./makeServices -vdetailsAtt=" open" ../src/Characteristics.h ../src/Span.h >> ServiceList_Expanded.md
|
#./makeServices -vdetailsAtt=" open" ../src/Characteristics.h ../src/Span.h >> ServiceList_Expanded.md
|
||||||
mv ServiceList_Expanded.md ../docs/ServiceList_Expanded.md
|
#mv ServiceList_Expanded.md ../docs/ServiceList_Expanded.md
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,11 @@ BEGIN {
|
||||||
format[char]=tolower(x[5])
|
format[char]=tolower(x[5])
|
||||||
static[char]=x[6]
|
static[char]=x[6]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if(x[1]=="SERVICES_GROUP"){
|
||||||
|
group[nServs]=line[2]
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
END {
|
END {
|
||||||
|
|
@ -63,9 +68,11 @@ END {
|
||||||
printf("\n\n");
|
printf("\n\n");
|
||||||
|
|
||||||
for(i=0;i<nServs;i++){
|
for(i=0;i<nServs;i++){
|
||||||
|
if(group[i]!="")
|
||||||
|
printf("## %s\n",group[i])
|
||||||
s=services[i]
|
s=services[i]
|
||||||
printf("### %s (%s)\n",s,uuid[s])
|
printf("### %s (%s)\n",s,uuid[s])
|
||||||
printf("%s<br><table>\n",desc[s])
|
printf("<i>%s</i><br><table>\n",desc[s])
|
||||||
printf("<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>\n")
|
printf("<tr><th>Characteristic</th><th>Format</th><th>Perms</th><th>Min</th><th>Max</th><th>Constants/Defaults</th></tr>\n")
|
||||||
|
|
||||||
for(j=0;j<nChars[s];j++){
|
for(j=0;j<nChars[s];j++){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue