Commit db0d9b06295b495f6d75ea274ac2d3516a5a2a44

Authored by ankraft
1 parent 0353051d

Added

- XSD files
- SDT Device and ModuleClass definitions
- shortnames

Too many changes to show.

To preserve performance only 11 of 161 files are displayed.

  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!--
  3 +Copyright Notification
  4 +
  5 +The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices
  6 +contained in the original materials on any copies of the materials and that you comply strictly with these terms.
  7 +This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of
  8 +any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document.
  9 +
  10 +(c) 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). All rights reserved.
  11 +
  12 +
  13 +Notice of Disclaimer & Limitation of Liability
  14 +
  15 +The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand
  16 +and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations.
  17 +No recommendation as to products or vendors is made or should be implied.
  18 +
  19 +NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE,
  20 +GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY
  21 +PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS.
  22 +NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO
  23 +ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES.
  24 +oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER.
  25 +-->
  26 +
  27 +<Domain xmlns:xi="http://www.w3.org/2001/XInclude"
  28 + xmlns="http://homegatewayinitiative.org/xml/dal/3.0" id="org.onem2m.home.device">
  29 +
  30 + <Imports>
  31 + <xi:include href="./SDT-TS0023-ModuleClasses.xml" parse="xml" />
  32 + </Imports>
  33 +
  34 + <Devices>
  35 + <Device id="deviceThreeDPrinter">
  36 + <Doc>A 3D printer is a smart home appliance to provide 3D printing capabilities.</Doc>
  37 + <Modules>
  38 + <Module name="binarySwitch" optional="false">
  39 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  40 + </Module>
  41 + <Module name="faultDetection" optional="true">
  42 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  43 + </Module>
  44 + <Module name="threeDPrinter" optional="false">
  45 + <extends domain="org.onem2m.home.moduleclass" class="threeDPrinter"/>
  46 + </Module>
  47 + <Module name="runState" optional="false">
  48 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  49 + </Module>
  50 + <Module name="temperature" optional="false">
  51 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  52 + <Doc>This value of “currentTemperature” in this module instance represents the temperature of the nozzle. This value SHALL be a float number in a range from 0.0 to 1000.0.</Doc>
  53 + </Module>
  54 + <Module name="printQueue" optional="false">
  55 + <extends domain="org.onem2m.home.moduleclass" class="printQueue"/>
  56 + </Module>
  57 + </Modules>
  58 + </Device>
  59 +
  60 +
  61 + <Device id="deviceAirConditioner">
  62 + <Doc>An air conditioner is a home appliance used to alter the properties of air (primarily temperature and humidity) to more comfortable conditions. This air conditioner information model provides capabilities to control and monitor air conditioner specific functions and resources.</Doc>
  63 + <Modules>
  64 + <Module name="binarySwitch" optional="false">
  65 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  66 + </Module>
  67 + <Module name="runState" optional="true">
  68 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  69 + </Module>
  70 + <Module name="airConJobMode" optional="true">
  71 + <extends domain="org.onem2m.home.moduleclass" class="airConJobMode"/>
  72 + </Module>
  73 + <Module name="airConOperationMode" optional="true">
  74 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  75 + <Doc>This module instance is used to trigger an airCon operation that is pre-set in "airConJobMode". If this data point is not present, then the air conditioner’s job mode can be triggered by setting the "airConJobMode".</Doc>
  76 + </Module>
  77 + <Module name="airCleanOperationMode" optional="true">
  78 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  79 + <Doc>This module instance is used to trigger airClean operation.</Doc>
  80 + </Module>
  81 + <Module name="temperature" optional="true">
  82 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  83 + </Module>
  84 + <Module name="timer" optional="true">
  85 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  86 + </Module>
  87 + <Module name="sleepTimer" optional="true">
  88 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  89 + <Doc>The sleep function, which is vendor-specific algorithm (for example increasing the remperature by one degree for every 30 minutes), is triggered instantly when "targetDuration" is set, and it indicates the time to the end of appliance operation. It is set at runtime by a user application.</Doc>
  90 + </Module>
  91 + <Module name="turbo" optional="true">
  92 + <extends domain="org.onem2m.home.moduleclass" class="turbo"/>
  93 + </Module>
  94 + <Module name="airFlow" optional="true">
  95 + <extends domain="org.onem2m.home.moduleclass" class="airFlow"/>
  96 + </Module>
  97 + <Module name="powerSave" optional="true">
  98 + <extends domain="org.onem2m.home.moduleclass" class="powerSave"/>
  99 + </Module>
  100 + <Module name="airQualitySensor" optional="true">
  101 + <extends domain="org.onem2m.home.moduleclass" class="airQualitySensor"/>
  102 + </Module>
  103 + <Module name="filterInfo" optional="false">
  104 + <extends domain="org.onem2m.home.moduleclass" class="filterInfo"/>
  105 + </Module>
  106 + </Modules>
  107 + </Device>
  108 +
  109 +
  110 + <Device id="deviceAirPurifier">
  111 + <Doc>An airPurifieris a home appliance is used to prevent dust and other particles from air by filtering, washing or electrostatic precipitation. This airPurifier information model provides capabilities to control and monitor airPurifier specific functions and resources.</Doc>
  112 + <Modules>
  113 + <Module name="binarySwitch" optional="false">
  114 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  115 + </Module>
  116 + <Module name="runState" optional="true">
  117 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  118 + </Module>
  119 + <Module name="airPurifierJobMode" optional="true">
  120 + <extends domain="org.onem2m.home.moduleclass" class="airPurifierJobMode"/>
  121 + </Module>
  122 + <Module name="airPurifierOperationMode" optional="true">
  123 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  124 + <Doc>This module instance is used to trigger the airPurifier operation.</Doc>
  125 + </Module>
  126 + <Module name="timer" optional="true">
  127 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  128 + </Module>
  129 + <Module name="powerSave" optional="true">
  130 + <extends domain="org.onem2m.home.moduleclass" class="powerSave"/>
  131 + </Module>
  132 + <Module name="airQualitySensor" optional="true">
  133 + <extends domain="org.onem2m.home.moduleclass" class="airQualitySensor"/>
  134 + </Module>
  135 + <Module name="filterInfo" optional="true">
  136 + <extends domain="org.onem2m.home.moduleclass" class="filterInfo"/>
  137 + </Module>
  138 + </Modules>
  139 + </Device>
  140 +
  141 +
  142 + <Device id="deviceAirQualityMonitor">
  143 + <Doc>An air quality monitor is a home appliance for monitoring the air quality. This airQualityMonitor information model provides capabilities to monitor the airQualityMonitor functions and resources.</Doc>
  144 + <Modules>
  145 + <Module name="airQualitySensor" optional="false">
  146 + <extends domain="org.onem2m.home.moduleclass" class="airQualitySensor"/>
  147 + </Module>
  148 + </Modules>
  149 + </Device>
  150 +
  151 +
  152 + <Device id="deviceAudioReceiver">
  153 + <Doc>An audio receiver is a device that receives audio signals from a number of sources, processing them to drive speakers.</Doc>
  154 + <Modules>
  155 + <Module name="binarySwitch" optional="false">
  156 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  157 + </Module>
  158 + <Module name="audioVolume" optional="false">
  159 + <extends domain="org.onem2m.home.moduleclass" class="audioVolume"/>
  160 + </Module>
  161 + <Module name="mediaInput" optional="true">
  162 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  163 + </Module>
  164 + <Module name="mediaOutput" optional="true">
  165 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  166 + </Module>
  167 + </Modules>
  168 + </Device>
  169 +
  170 +
  171 + <Device id="deviceBloodPressureMonitor">
  172 + <Doc>A blood pressure monitor is a device that can be used to monitor the blood pressure and is composed of one or more cuffs and a main montor machine.</Doc>
  173 + <Modules>
  174 + <Module name="battery" optional="false">
  175 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  176 + </Module>
  177 + <Module name="binarySwitch" optional="true">
  178 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  179 + </Module>
  180 + </Modules>
  181 + <SubDevices>
  182 + <SubDevice id="cuff0">
  183 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  184 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  185 + <Modules>
  186 + <Module name="binarySwitch" optional="true">
  187 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  188 + </Module>
  189 + <Module name="sphygmomanometer" optional="false">
  190 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  191 + </Module>
  192 + <Module name="pulsemeter" optional="false">
  193 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  194 + </Module>
  195 + </Modules>
  196 + </SubDevice>
  197 + <SubDevice id="cuff1">
  198 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  199 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  200 + <Modules>
  201 + <Module name="binarySwitch" optional="true">
  202 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  203 + </Module>
  204 + <Module name="sphygmomanometer" optional="false">
  205 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  206 + </Module>
  207 + <Module name="pulsemeter" optional="false">
  208 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  209 + </Module>
  210 + </Modules>
  211 + </SubDevice>
  212 + <SubDevice id="cuff2">
  213 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  214 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  215 + <Modules>
  216 + <Module name="binarySwitch" optional="true">
  217 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  218 + </Module>
  219 + <Module name="sphygmomanometer" optional="false">
  220 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  221 + </Module>
  222 + <Module name="pulsemeter" optional="false">
  223 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  224 + </Module>
  225 + </Modules>
  226 + </SubDevice>
  227 + <SubDevice id="cuff3">
  228 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  229 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  230 + <Modules>
  231 + <Module name="binarySwitch" optional="true">
  232 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  233 + </Module>
  234 + <Module name="sphygmomanometer" optional="false">
  235 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  236 + </Module>
  237 + <Module name="pulsemeter" optional="false">
  238 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  239 + </Module>
  240 + </Modules>
  241 + </SubDevice>
  242 + <SubDevice id="cuff4">
  243 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  244 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  245 + <Modules>
  246 + <Module name="binarySwitch" optional="true">
  247 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  248 + </Module>
  249 + <Module name="sphygmomanometer" optional="false">
  250 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  251 + </Module>
  252 + <Module name="pulsemeter" optional="false">
  253 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  254 + </Module>
  255 + </Modules>
  256 + </SubDevice>
  257 + <SubDevice id="cuff5">
  258 + <Doc>A cuff is a subDevice that expresses the attachment device for measuring blood pressure.</Doc>
  259 + <extends domain="org.onem2m.home.device" class="subDeviceCuff"/>
  260 + <Modules>
  261 + <Module name="binarySwitch" optional="true">
  262 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  263 + </Module>
  264 + <Module name="sphygmomanometer" optional="false">
  265 + <extends domain="org.onem2m.home.moduleclass" class="sphygmomanometer"/>
  266 + </Module>
  267 + <Module name="pulsemeter" optional="false">
  268 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  269 + </Module>
  270 + </Modules>
  271 + </SubDevice>
  272 + </SubDevices>
  273 + </Device>
  274 +
  275 +
  276 + <Device id="deviceCamera">
  277 + <Doc>A camera is an optical instrument for recording or capturing images, which may be stored locally or transmitted to another locations.</Doc>
  278 + <Modules>
  279 + <Module name="sessionDescription" optional="false">
  280 + <extends domain="org.onem2m.home.moduleclass" class="sessionDescription"/>
  281 + </Module>
  282 + <Module name="playerControl" optional="true">
  283 + <extends domain="org.onem2m.home.moduleclass" class="playerControl"/>
  284 + </Module>
  285 + <Module name="motionSensor" optional="true">
  286 + <extends domain="org.onem2m.home.moduleclass" class="motionSensor"/>
  287 + </Module>
  288 + </Modules>
  289 + </Device>
  290 +
  291 +
  292 + <Device id="deviceClothesDryer">
  293 + <Doc>A clothes dryer is a home appliance for drying clothes. This clothesDryer information model provides capabilities to control and monitor clothes dryer specific functions and resources.</Doc>
  294 + <Modules>
  295 + <Module name="binarySwitch" optional="false">
  296 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  297 + </Module>
  298 + <Module name="runState" optional="true">
  299 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  300 + </Module>
  301 + <Module name="clothesDryerJobMode" optional="true">
  302 + <extends domain="org.onem2m.home.moduleclass" class="clothesDryerJobMode"/>
  303 + </Module>
  304 + <Module name="clothesDryerOperationMode" optional="true">
  305 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  306 + <Doc>This module instance is used to trigger the clothesDryer operation.</Doc>
  307 + </Module>
  308 + </Modules>
  309 + </Device>
  310 +
  311 +
  312 + <Device id="deviceClothesWasher">
  313 + <Doc>A clothes washer is a home appliance that is used to wash laundry, such as clothing and sheets. This information model provides capabilities to interact with specific functions and resources of clothes washers.</Doc>
  314 + <Modules>
  315 + <Module name="binarySwitch" optional="false">
  316 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  317 + </Module>
  318 + <Module name="clothesWasherOperationMode" optional="true">
  319 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  320 + </Module>
  321 + <Module name="runState" optional="false">
  322 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  323 + </Module>
  324 + <Module name="clothesWasherJobMode" optional="false">
  325 + <extends domain="org.onem2m.home.moduleclass" class="clothesWasherJobMode"/>
  326 + </Module>
  327 + <Module name="clothesWasherJobModeOption" optional="true">
  328 + <extends domain="org.onem2m.home.moduleclass" class="clothesWasherJobModeOption"/>
  329 + </Module>
  330 + <Module name="remoteControlEnable" optional="true">
  331 + <extends domain="org.onem2m.home.moduleclass" class="remoteControlEnable"/>
  332 + </Module>
  333 + <Module name="timer" optional="true">
  334 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  335 + </Module>
  336 + </Modules>
  337 + </Device>
  338 +
  339 + <Device id="deviceClothesWasherDryer">
  340 + <Doc>A clothes washer dryer is a home appliance that is a combination of cloth washer and cloth dryer in a single cabinet. This information model provides capabilities to interact with specific functions and resources of clothes washers and dryers.</Doc>
  341 + <Modules>
  342 + <Module name="binarySwitch" optional="false">
  343 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  344 + <Doc></Doc>
  345 + </Module>
  346 + <Module name="clothesWasherDryerOperationMode" optional="true">
  347 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  348 + <Doc></Doc>
  349 + </Module>
  350 + <Module name="runState" optional="false">
  351 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  352 + <Doc></Doc>
  353 + </Module>
  354 + <Module name="clothesWasherDryerJobMode" optional="false">
  355 + <extends domain="org.onem2m.home.moduleclass" class="clothesWasherDryerJobMode"/>
  356 + <Doc></Doc>
  357 + </Module>
  358 + <Module name="clothesWasherJobModeOption" optional="true">
  359 + <extends domain="org.onem2m.home.moduleclass" class="clothesWasherJobModeOption"/>
  360 + <Doc></Doc>
  361 + </Module>
  362 + <Module name="remoteControlEnable" optional="true">
  363 + <extends domain="org.onem2m.home.moduleclass" class="remoteControlEnable"/>
  364 + <Doc></Doc>
  365 + </Module>
  366 + <Module name="timer" optional="true">
  367 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  368 + <Doc></Doc>
  369 + </Module>
  370 + </Modules>
  371 + </Device>
  372 +
  373 +
  374 + <Device id="deviceCoffeeMachine">
  375 + <Doc>A coffee machine is a device that is used to brew a coffee, may add foamed milk, and may include some variants, for example a grinder.</Doc>
  376 + <Modules>
  377 + <Module name="faultDetection" optional="true">
  378 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  379 + </Module>
  380 + <Module name="runState" optional="true">
  381 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  382 + </Module>
  383 + <Module name="clock" optional="true">
  384 + <extends domain="org.onem2m.home.moduleclass" class="clock"/>
  385 + </Module>
  386 + <Module name="brewing" optional="false">
  387 + <extends domain="org.onem2m.home.moduleclass" class="brewing"/>
  388 + </Module>
  389 + <Module name="waterStatus" optional="true">
  390 + <extends domain="org.onem2m.home.moduleclass" class="liquidRemaining"/>
  391 + </Module>
  392 + <Module name="milkStatus" optional="true">
  393 + <extends domain="org.onem2m.home.moduleclass" class="liquidRemaining"/>
  394 + </Module>
  395 + <Module name="grinder" optional="true">
  396 + <extends domain="org.onem2m.home.moduleclass" class="grinder"/>
  397 + </Module>
  398 + <Module name="milkFoaming" optional="true">
  399 + <extends domain="org.onem2m.home.moduleclass" class="foaming"/>
  400 + </Module>
  401 + <Module name="milkQuantity" optional="true">
  402 + <extends domain="org.onem2m.home.moduleclass" class="liquidLevel"/>
  403 + </Module>
  404 + <Module name="brewingSwitch" optional="false">
  405 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  406 + </Module>
  407 + <Module name="keepWarm" optional="true">
  408 + <extends domain="org.onem2m.home.moduleclass" class="keepWarm"/>
  409 + </Module>
  410 + </Modules>
  411 + </Device>
  412 +
  413 +
  414 + <Device id="deviceCookerHood">
  415 + <Doc>A cooker hood is a device containing a mechanical fan that hangs above the stove or cooktop in the kitchen.</Doc>
  416 + <Modules>
  417 + <Module name="binarySwitch" optional="false">
  418 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  419 + </Module>
  420 + <Module name="runState" optional="true">
  421 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  422 + </Module>
  423 + <Module name="airFlow" optional="true">
  424 + <extends domain="org.onem2m.home.moduleclass" class="airFlow"/>
  425 + </Module>
  426 + <Module name="cookerHoodJobMode" optional="true">
  427 + <extends domain="org.onem2m.home.moduleclass" class="cookerHoodJobMode"/>
  428 + </Module>
  429 + </Modules>
  430 + </Device>
  431 +
  432 +
  433 + <Device id="deviceCooktop">
  434 + <Doc>A cooktop is a device that is a kitchen appliance designed for the purpose of cooking food.</Doc>
  435 + <Modules>
  436 + <Module name="heatingZone0" optional="false">
  437 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  438 + </Module>
  439 + <Module name="heatingZone1" optional="true">
  440 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  441 + </Module>
  442 + <Module name="heatingZone2" optional="true">
  443 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  444 + </Module>
  445 + <Module name="heatingZone3" optional="true">
  446 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  447 + </Module>
  448 + <Module name="heatingZone4" optional="true">
  449 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  450 + </Module>
  451 + <Module name="heatingZone5" optional="true">
  452 + <extends domain="org.onem2m.home.moduleclass" class="heatingZone"/>
  453 + </Module>
  454 + </Modules>
  455 + </Device>
  456 +
  457 +
  458 + <Device id="deviceDehumidifier">
  459 + <Doc>A dehumidifier is a device that is used to monitor or control the state of a dehumidifying appliance.</Doc>
  460 + <Modules>
  461 + <Module name="binarySwitch" optional="false">
  462 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  463 + </Module>
  464 + <Module name="relativeHumidity" optional="true">
  465 + <extends domain="org.onem2m.home.moduleclass" class="relativeHumidity"/>
  466 + </Module>
  467 + <Module name="runState" optional="true">
  468 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  469 + </Module>
  470 + <Module name="dehumidifierJobMode" optional="true">
  471 + <extends domain="org.onem2m.home.moduleclass" class="dehumidifierJobMode"/>
  472 + </Module>
  473 + <Module name="dehumidifierOperationMode" optional="true">
  474 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  475 + <Doc>This module instance is used to trigger dehumidifier operation.</Doc>
  476 + </Module>
  477 + <Module name="timer" optional="true">
  478 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  479 + </Module>
  480 + <Module name="powerSave" optional="true">
  481 + <extends domain="org.onem2m.home.moduleclass" class="powerSave"/>
  482 + </Module>
  483 + </Modules>
  484 + </Device>
  485 +
  486 +
  487 + <Device id="deviceDishWasher">
  488 + <Doc>A dish washer is a home appliance used to wash dishes. This information model provides capabilities to interact with specific functions and resources of a dish washer.</Doc>
  489 + <Modules>
  490 + <Module name="binarySwitch" optional="false">
  491 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  492 + </Module>
  493 + <Module name="runState" optional="true">
  494 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  495 + </Module>
  496 + <Module name="dishWasherJobMode" optional="true">
  497 + <extends domain="org.onem2m.home.moduleclass" class="dishWasherJobMode"/>
  498 + </Module>
  499 + </Modules>
  500 + </Device>
  501 +
  502 +
  503 + <Device id="deviceDoor">
  504 + <Doc>A door is a device that is used to open and close a door.</Doc>
  505 + <Modules>
  506 + <Module name="openLevel" optional="true">
  507 + <extends domain="org.onem2m.home.moduleclass" class="openLevel"/>
  508 + </Module>
  509 + <Module name="doorlock" optional="true">
  510 + <extends domain="org.onem2m.home.moduleclass" class="lock"/>
  511 + </Module>
  512 + <Module name="doorStatus" optional="true">
  513 + <extends domain="org.onem2m.home.moduleclass" class="doorStatus"/>
  514 + </Module>
  515 + </Modules>
  516 + </Device>
  517 +
  518 +
  519 + <Device id="deviceDoorLock">
  520 + <Doc>A door lock is a device that can be used to lock, for example, a door.</Doc>
  521 + <Modules>
  522 + <Module name="doorLock" optional="false">
  523 + <extends domain="org.onem2m.home.moduleclass" class="lock"/>
  524 + </Module>
  525 + <Module name="doorStatus" optional="true">
  526 + <extends domain="org.onem2m.home.moduleclass" class="doorStatus"/>
  527 + </Module>
  528 + <Module name="battery" optional="true">
  529 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  530 + </Module>
  531 + </Modules>
  532 + </Device>
  533 +
  534 +
  535 + <Device id="deviceElectricVehicleCharger">
  536 + <Doc>An electric vehicle charger is a device that is used for charging or discharging electric vehicles.</Doc>
  537 + <Modules>
  538 + <Module name="faultDetection" optional="false">
  539 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  540 + </Module>
  541 + <Module name="binarySwitch" optional="false">
  542 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  543 + </Module>
  544 + <Module name="runState" optional="false">
  545 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  546 + </Module>
  547 + <Module name="battery" optional="false">
  548 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  549 + </Module>
  550 + <Module name="electricVehicleConnector" optional="false">
  551 + <extends domain="org.onem2m.home.moduleclass" class="electricVehicleConnector"/>
  552 + </Module>
  553 + </Modules>
  554 + </Device>
  555 +
  556 +
  557 + <Device id="deviceFan">
  558 + <Doc>A fan is a device that is used to monitor or control the state of a fanning device.</Doc>
  559 + <Modules>
  560 + <Module name="binarySwitch" optional="false">
  561 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  562 + </Module>
  563 + </Modules>
  564 + </Device>
  565 +
  566 +
  567 + <Device id="deviceFoodProbe">
  568 + <Doc>A food probe is a device that is used to measure the internal temperature of food.</Doc>
  569 + <Modules>
  570 + <Module name="temperature" optional="false">
  571 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  572 + </Module>
  573 + </Modules>
  574 + </Device>
  575 +
  576 +
  577 + <Device id="deviceFreezer">
  578 + <Doc>A freezer is a large container like a fridge in which the temperature is kept below freezing point, so that food can be storeed inside of it for long periods. This freezer information model provides capabilities to monitor freezer specific functions and resources.</Doc>
  579 + <Modules>
  580 + <Module name="temperature" optional="false">
  581 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  582 + </Module>
  583 + </Modules>
  584 + </Device>
  585 +
  586 +
  587 + <Device id="deviceGlucosemeter">
  588 + <Doc>A glucometer is a device that can be used to monitor the blood glucose level.</Doc>
  589 + <Modules>
  590 + <Module name="glucometer" optional="false">
  591 + <extends domain="org.onem2m.home.moduleclass" class="glucometer"/>
  592 + </Module>
  593 + <Module name="battery" optional="false">
  594 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  595 + </Module>
  596 + </Modules>
  597 + </Device>
  598 +
  599 +
  600 + <Device id="deviceHeartRateMonitor">
  601 + <Doc>A heart rate monitor is a device that can be used to monitor the heart rate.</Doc>
  602 + <Modules>
  603 + <Module name="pulsemeter" optional="false">
  604 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  605 + </Module>
  606 + <Module name="battery" optional="false">
  607 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  608 + </Module>
  609 + </Modules>
  610 + </Device>
  611 +
  612 +
  613 + <Device id="deviceHomeCCTV">
  614 + <Doc>A home CCTV is a smart home appliance to provide monitoring capabilities when people stay way from their home or a room, or to monitor the environmental status of their home or room.</Doc>
  615 + <Modules>
  616 + <Module name="binarySwitch" optional="false">
  617 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  618 + </Module>
  619 + <Module name="sessionDescription" optional="false">
  620 + <extends domain="org.onem2m.home.moduleclass" class="sessionDescription"/>
  621 + </Module>
  622 + <Module name="playerControl" optional="true">
  623 + <extends domain="org.onem2m.home.moduleclass" class="playerControl"/>
  624 + </Module>
  625 + <Module name="runState" optional="true">
  626 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  627 + </Module>
  628 + <Module name="motionSensor" optional="true">
  629 + <extends domain="org.onem2m.home.moduleclass" class="motionSensor"/>
  630 + </Module>
  631 + <Module name="airQualitySensor" optional="true">
  632 + <extends domain="org.onem2m.home.moduleclass" class="airQualitySensor"/>
  633 + </Module>
  634 + <Module name="ozoneMeter" optional="true">
  635 + <extends domain="org.onem2m.home.moduleclass" class="ozoneMeter"/>
  636 + </Module>
  637 + <Module name="smokeSensor" optional="true">
  638 + <extends domain="org.onem2m.home.moduleclass" class="smokeSensor"/>
  639 + </Module>
  640 + <Module name="acousticSensor" optional="true">
  641 + <extends domain="org.onem2m.home.moduleclass" class="acousticSensor"/>
  642 + </Module>
  643 + <Module name="impactSensor" optional="true">
  644 + <extends domain="org.onem2m.home.moduleclass" class="impactSensor"/>
  645 + </Module>
  646 + <Module name="faultDetection" optional="true">
  647 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  648 + </Module>
  649 + <Module name="alarmSpeaker" optional="true">
  650 + <extends domain="org.onem2m.home.moduleclass" class="alarmSpeaker"/>
  651 + </Module>
  652 + </Modules>
  653 + </Device>
  654 +
  655 +
  656 + <Device id="deviceHumidifier">
  657 + <Doc>A humidifier is a device that is used to monitor or control the state of a humidifying appliance.</Doc>
  658 + <Modules>
  659 + <Module name="binarySwitch" optional="false">
  660 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  661 + </Module>
  662 + </Modules>
  663 + </Device>
  664 +
  665 +
  666 + <Device id="deviceKettle">Kettle is a device used to boil water. It may set a desired temperature for water and may keep water warm for a desired time.
  667 + <Doc>Kettle is a device used to boil water. It may set a desired temperature for water and may keep water warm for a desired time.</Doc>
  668 + <Modules>
  669 + <Module name="faultDetection" optional="true">
  670 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  671 + </Module>
  672 + <Module name="runState" optional="true">
  673 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  674 + </Module>
  675 + <Module name="waterStatus" optional="true">
  676 + <extends domain="org.onem2m.home.moduleclass" class="liquidRemaining"/>
  677 + </Module>
  678 + <Module name="boilingSwitch" optional="false">
  679 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  680 + </Module>
  681 + <Module name="temperature" optional="true">
  682 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  683 + </Module>
  684 + <Module name="keepWarm" optional="true">
  685 + <extends domain="org.onem2m.home.moduleclass" class="keepWarm"/>
  686 + </Module>
  687 + </Modules>
  688 + </Device>
  689 +
  690 +
  691 + <Device id="deviceLight">
  692 + <Doc>A light is a device that is used to control the state of an illumination appliance.</Doc>
  693 + <Modules>
  694 + <Module name="faultDetection" optional="true">
  695 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  696 + </Module>
  697 + <Module name="binarySwitch" optional="false">
  698 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  699 + </Module>
  700 + <Module name="runState" optional="true">
  701 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  702 + </Module>
  703 + <Module name="colour" optional="true">
  704 + <extends domain="org.onem2m.home.moduleclass" class="colour"/>
  705 + </Module>
  706 + <Module name="colourSaturation" optional="true">
  707 + <extends domain="org.onem2m.home.moduleclass" class="colourSaturation"/>
  708 + </Module>
  709 + <Module name="brightness" optional="true">
  710 + <extends domain="org.onem2m.home.moduleclass" class="brightness"/>
  711 + </Module>
  712 + </Modules>
  713 + </Device>
  714 +
  715 +
  716 + <Device id="deviceMicrogeneration">
  717 + <Doc>A microgeneration is a Home Energy Management System (HEMS) device that is used to generate energy. Examples of microgeneration devices are photovoltaics device or fuel cells.</Doc>
  718 + <Modules>
  719 + <Module name="faultDetection" optional="true">
  720 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  721 + </Module>
  722 + <Module name="binarySwitch" optional="true">
  723 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  724 + </Module>
  725 + <Module name="runState" optional="true">
  726 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  727 + </Module>
  728 + <Module name="energyGeneration" optional="false">
  729 + <extends domain="org.onem2m.home.moduleclass" class="energyGeneration"/>
  730 + </Module>
  731 + </Modules>
  732 + </Device>
  733 +
  734 +
  735 + <Device id="deviceMultiFunctionPrinter">
  736 + <Doc>A Multi Function Printer (MFP) is an office machine which incorporates the functionality of multiple devices in one, so as to have a smaller footprint in home or office. A typical MFP may act as a combination of printer, scanner and more. This MFP information model provides capabilities to control and monitor MFP specific functions and resources.</Doc>
  737 + <Modules>
  738 + <Module name="binarySwitch" optional="false">
  739 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  740 + </Module>
  741 + <Module name="printerRunState" optional="false">
  742 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  743 + </Module>
  744 + <Module name="scannerRunState" optional="true">
  745 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  746 + </Module>
  747 + <Module name="autoDocumentFeeder" optional="true">
  748 + <extends domain="org.onem2m.home.moduleclass" class="autoDocumentFeeder"/>
  749 + </Module>
  750 + <Module name="printQueue" optional="true">
  751 + <extends domain="org.onem2m.home.moduleclass" class="printQueue"/>
  752 + </Module>
  753 + </Modules>
  754 + </Device>
  755 +
  756 +
  757 + <Device id="deviceOutdoorLamp">
  758 + <Doc>An outdoor lamp is a smart home appliance to provide lights and information for outside of home with smart sensing capabilities such as ultraviolet sensing.</Doc>
  759 + <Modules>
  760 + <Module name="binarySwitch" optional="false">
  761 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  762 + </Module>
  763 + <Module name="brightness" optional="true">
  764 + <extends domain="org.onem2m.home.moduleclass" class="brightness"/>
  765 + </Module>
  766 + <Module name="motionSensor" optional="true">
  767 + <extends domain="org.onem2m.home.moduleclass" class="motionSensor"/>
  768 + </Module>
  769 + <Module name="airQualitySensor" optional="true">
  770 + <extends domain="org.onem2m.home.moduleclass" class="airQualitySensor"/>
  771 + </Module>
  772 + <Module name="uvSensor" optional="true">
  773 + <extends domain="org.onem2m.home.moduleclass" class="uvSensor"/>
  774 + </Module>
  775 + <Module name="timer" optional="true">
  776 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  777 + <Doc>The timer is used to set duration of giving lights from the moment of triggering by the "brightness" module or "motionSensor" module.</Doc>
  778 + </Module>
  779 + <Module name="faultDetection" optional="true">
  780 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  781 + </Module>
  782 + </Modules>
  783 + </Device>
  784 +
  785 +
  786 + <Device id="deviceOven">
  787 + <Doc>An oven is a home appliance used to roast and heat food in a complete stove. This information model is applicable to different types of ovens: gas ovens, electrical ovens, steam ovens, microwave ovens, etc. This information model provides capabilities to interact with specific functions and resources of ovens.</Doc>
  788 + <Modules>
  789 + <Module name="binarySwitch" optional="false">
  790 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  791 + <Doc>Depending on the manufacturer policies or regulations, the binary switch might only be used to turn the device off.</Doc>
  792 + </Module>
  793 + <Module name="runState" optional="true">
  794 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  795 + </Module>
  796 + <Module name="timer" optional="true">
  797 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  798 + </Module>
  799 + <Module name="temperature" optional="false">
  800 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  801 + </Module>
  802 + </Modules>
  803 + </Device>
  804 +
  805 +
  806 + <Device id="devicePrinter">
  807 + <Doc>A printer is a device that is used to monitor or control the state of a printing appliance.</Doc>
  808 + <Modules>
  809 + <Module name="binarySwitch" optional="false">
  810 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  811 + </Module>
  812 + <Module name="runState" optional="true">
  813 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  814 + </Module>
  815 + <Module name="printQueue" optional="true">
  816 + <extends domain="org.onem2m.home.moduleclass" class="printQueue"/>
  817 + </Module>
  818 + </Modules>
  819 + </Device>
  820 +
  821 +
  822 + <Device id="devicePulseOximeter">
  823 + <Doc>A pulseoximeter is a device that can be used to monitor the blood characteristics.</Doc>
  824 + <Modules>
  825 + <Module name="pulsemeter" optional="true">
  826 + <extends domain="org.onem2m.home.moduleclass" class="pulsemeter"/>
  827 + <Doc>When the "oximeter" module doesn’t exist, then the "pulsemeter" module is mandatory.</Doc>
  828 + </Module>
  829 + <Module name="oximeter" optional="true">
  830 + <extends domain="org.onem2m.home.moduleclass" class="oximeter"/>
  831 + <Doc>When the "pulsemeter" module doesn’t exist, then the "oximeter" module is mandatory.</Doc>
  832 + </Module>
  833 + <Module name="battery" optional="false">
  834 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  835 + </Module>
  836 + </Modules>
  837 + </Device>
  838 +
  839 +
  840 + <Device id="deviceRefrigerator">
  841 + <Doc>A refrigerator is a home appliance used to store food at temperatures which are a few degrees above the freezing point of water. This information model provides capabilities to interact with specific functions and resource of refrigerators.</Doc>
  842 + <Modules>
  843 + <Module name="binarySwitch" optional="true">
  844 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  845 + </Module>
  846 + <Module name="powerSave" optional="true">
  847 + <extends domain="org.onem2m.home.moduleclass" class="powerSave"/>
  848 + </Module>
  849 + <Module name="doorStatus" optional="true">
  850 + <extends domain="org.onem2m.home.moduleclass" class="doorStatus"/>
  851 + </Module>
  852 + <Module name="frozenTemperature" optional="true">
  853 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  854 + </Module>
  855 + <Module name="fridgeTemperature" optional="false">
  856 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  857 + </Module>
  858 + <Module name="customTemperature" optional="true">
  859 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  860 + <Doc>This module can be configured to fridge temperature or frozen temperature based on its usage by manufacturer</Doc>
  861 + </Module>
  862 + <Module name="refrigeration" optional="true">
  863 + <extends domain="org.onem2m.home.moduleclass" class="refrigeration"/>
  864 + </Module>
  865 + <Module name="controlPanelLock" optional="true">
  866 + <extends domain="org.onem2m.home.moduleclass" class="lock"/>
  867 + </Module>
  868 + <Module name="waterFilterInfo" optional="true">
  869 + <extends domain="org.onem2m.home.moduleclass" class="filterInfo"/>
  870 + </Module>
  871 + </Modules>
  872 + </Device>
  873 +
  874 +
  875 + <Device id="deviceRobotCleaner">
  876 + <Doc>A robot cleaner is an autonomous robotic vacuum cleaner that has intelligent programming and a limited vacuum cleaning system. This robot cleaner information model provides capabilities to control and monitor robot cleaner specific functions and resources.</Doc>
  877 + <Modules>
  878 + <Module name="binarySwitch" optional="false">
  879 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  880 + </Module>
  881 + <Module name="runState" optional="true">
  882 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  883 + </Module>
  884 + <Module name="robotCleanerJobMode" optional="false">
  885 + <extends domain="org.onem2m.home.moduleclass" class="robotCleanerJobMode"/>
  886 + </Module>
  887 + <Module name="robotCleanerOperationMode" optional="true">
  888 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  889 + </Module>
  890 + <Module name="battery" optional="true">
  891 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  892 + </Module>
  893 + <Module name="timer" optional="true">
  894 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  895 + </Module>
  896 + </Modules>
  897 + </Device>
  898 +
  899 +
  900 + <Device id="deviceScanner">
  901 + <Doc>A scanner is a device that optically scans images, printed text, handwriting or an object, and converts it to a digital image.</Doc>
  902 + <Modules>
  903 + <Module name="binarySwitch" optional="false">
  904 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  905 + </Module>
  906 + <Module name="runState" optional="false">
  907 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  908 + </Module>
  909 + <Module name="autoDocumentFeeder" optional="true">
  910 + <extends domain="org.onem2m.home.moduleclass" class="autoDocumentFeeder"/>
  911 + </Module>
  912 + </Modules>
  913 + </Device>
  914 +
  915 +
  916 + <Device id="deviceSecurityPanel">
  917 + <Doc>A security pannel is a device that can change the security mode of, for example, an alarm system.</Doc>
  918 + <Modules>
  919 + <Module name="securityMode" optional="false">
  920 + <extends domain="org.onem2m.home.moduleclass" class="securityMode"/>
  921 + </Module>
  922 + </Modules>
  923 + </Device>
  924 +
  925 +
  926 + <Device id="deviceSetTopBox">
  927 + <Doc>A set top box is a device that in general contains a TV tuner input and displays output to a TV.</Doc>
  928 + <Modules>
  929 + <Module name="binarySwitch" optional="false">
  930 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  931 + </Module>
  932 + <Module name="audioVolume" optional="true">
  933 + <extends domain="org.onem2m.home.moduleclass" class="audioVolume"/>
  934 + </Module>
  935 + <Module name="channel" optional="true">
  936 + <extends domain="org.onem2m.home.moduleclass" class="televisionChannel"/>
  937 + </Module>
  938 + <Module name="mediaInput" optional="true">
  939 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  940 + </Module>
  941 + <Module name="mediaOutput" optional="true">
  942 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  943 + </Module>
  944 + </Modules>
  945 + </Device>
  946 +
  947 +
  948 + <Device id="deviceSmartElectricMeter">
  949 + <Doc>A smart electric meter is a metering device that is used to measure consumption data for electrictricity.</Doc>
  950 + <Modules>
  951 + <Module name="faultDetection" optional="true">
  952 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  953 + </Module>
  954 + <Module name="binarySwitch" optional="true">
  955 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  956 + </Module>
  957 + <Module name="runState" optional="true">
  958 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  959 + </Module>
  960 + <Module name="clock" optional="true">
  961 + <extends domain="org.onem2m.home.moduleclass" class="clock"/>
  962 + </Module>
  963 + <Module name="energyConsumption" optional="false">
  964 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  965 + </Module>
  966 + <Module name="energyGeneration" optional="true">
  967 + <extends domain="org.onem2m.home.moduleclass" class="energyGeneration"/>
  968 + </Module>
  969 + </Modules>
  970 + </Device>
  971 +
  972 +
  973 + <Device id="deviceSmartPlug">
  974 + <Doc>A smart plug is a device that can turn on and off a connected appliance.</Doc>
  975 + <Modules>
  976 + <Module name="binarySwitch" optional="true">
  977 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  978 + </Module>
  979 + <Module name="faultDetection" optional="true">
  980 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  981 + </Module>
  982 + <Module name="remoteControlEnable" optional="true">
  983 + <extends domain="org.onem2m.home.moduleclass" class="remoteControlEnable"/>
  984 + </Module>
  985 + </Modules>
  986 + <SubDevices>
  987 + <SubDevice id="powerOutlet0">
  988 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  989 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  990 + <Modules>
  991 + <Module name="binarySwitch" optional="true">
  992 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  993 + </Module>
  994 + <Module name="energyConsumption" optional="true">
  995 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  996 + </Module>
  997 + <Module name="overcurrentSensor" optional="false">
  998 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  999 + </Module>
  1000 + <Module name="dimmingLevel" optional="false">
  1001 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1002 + <Doc>This provides the capability to change the energy.</Doc>
  1003 + </Module>
  1004 + </Modules>
  1005 + </SubDevice>
  1006 + <SubDevice id="powerOutlet1">
  1007 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  1008 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  1009 + <Modules>
  1010 + <Module name="binarySwitch" optional="true">
  1011 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1012 + </Module>
  1013 + <Module name="energyConsumption" optional="true">
  1014 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  1015 + </Module>
  1016 + <Module name="overcurrentSensor" optional="false">
  1017 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  1018 + </Module>
  1019 + <Module name="dimmingLevel" optional="false">
  1020 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1021 + <Doc>This provides the capability to change the energy.</Doc>
  1022 + </Module>
  1023 + </Modules>
  1024 + </SubDevice>
  1025 + <SubDevice id="powerOutlet2">
  1026 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  1027 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  1028 + <Modules>
  1029 + <Module name="binarySwitch" optional="true">
  1030 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1031 + </Module>
  1032 + <Module name="energyConsumption" optional="true">
  1033 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  1034 + </Module>
  1035 + <Module name="overcurrentSensor" optional="false">
  1036 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  1037 + </Module>
  1038 + <Module name="dimmingLevel" optional="false">
  1039 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1040 + <Doc>This provides the capability to change the energy.</Doc>
  1041 + </Module>
  1042 + </Modules>
  1043 + </SubDevice>
  1044 + <SubDevice id="powerOutlet3">
  1045 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  1046 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  1047 + <Modules>
  1048 + <Module name="binarySwitch" optional="true">
  1049 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1050 + </Module>
  1051 + <Module name="energyConsumption" optional="true">
  1052 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  1053 + </Module>
  1054 + <Module name="overcurrentSensor" optional="false">
  1055 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  1056 + </Module>
  1057 + <Module name="dimmingLevel" optional="false">
  1058 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1059 + <Doc>This provides the capability to change the energy.</Doc>
  1060 + </Module>
  1061 + </Modules>
  1062 + </SubDevice>
  1063 + <SubDevice id="powerOutlet4">
  1064 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  1065 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  1066 + <Modules>
  1067 + <Module name="binarySwitch" optional="true">
  1068 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1069 + </Module>
  1070 + <Module name="energyConsumption" optional="true">
  1071 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  1072 + </Module>
  1073 + <Module name="overcurrentSensor" optional="false">
  1074 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  1075 + </Module>
  1076 + <Module name="dimmingLevel" optional="false">
  1077 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1078 + <Doc>This provides the capability to change the energy.</Doc>
  1079 + </Module>
  1080 + </Modules>
  1081 + </SubDevice>
  1082 + <SubDevice id="powerOutlet5">
  1083 + <Doc>A powerOutlet is a subDevice that specifies the attachment device for deviceSmartPlug.</Doc>
  1084 + <extends domain="org.onem2m.home.device" class="subDevicePowerOutlet"/>
  1085 + <Modules>
  1086 + <Module name="binarySwitch" optional="true">
  1087 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1088 + </Module>
  1089 + <Module name="energyConsumption" optional="true">
  1090 + <extends domain="org.onem2m.home.moduleclass" class="energyConsumption"/>
  1091 + </Module>
  1092 + <Module name="overcurrentSensor" optional="false">
  1093 + <extends domain="org.onem2m.home.moduleclass" class="overcurrentSensor"/>
  1094 + </Module>
  1095 + <Module name="dimmingLevel" optional="false">
  1096 + <extends domain="org.onem2m.home.moduleclass" class="numberValue"/>
  1097 + <Doc>This provides the capability to change the energy.</Doc>
  1098 + </Module>
  1099 + </Modules>
  1100 + </SubDevice>
  1101 + </SubDevices>
  1102 + </Device>
  1103 +
  1104 +
  1105 + <Device id="deviceSteamCloset">
  1106 + <Doc>A deviceSteamCloset is a home appliance that de-wrinkles, sanitizes and dries to clean fabrics similar to a dry cleaner. This information model provides capabilities to interact with specific functions and resources of the steam closet.</Doc>
  1107 + <Modules>
  1108 + <Module name="binarySwitch" optional="false">
  1109 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1110 + </Module>
  1111 + <Module name="runState" optional="true">
  1112 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  1113 + </Module>
  1114 + <Module name="steamClosetJobMode" optional="false">
  1115 + <extends domain="org.onem2m.home.moduleclass" class="steamClosetJobMode"/>
  1116 + </Module>
  1117 + <Module name="steamClosetOperationMode" optional="true">
  1118 + <extends domain="org.onem2m.home.moduleclass" class="operationMode"/>
  1119 + </Module>
  1120 + </Modules>
  1121 + </Device>
  1122 +
  1123 +
  1124 + <Device id="deviceStorageBattery">
  1125 + <Doc>A storage battery is a Home Energy Management System HEMS device that is used to provide the home with electrical energy.</Doc>
  1126 + <Modules>
  1127 + <Module name="faultDetection" optional="true">
  1128 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  1129 + </Module>
  1130 + <Module name="binarySwitch" optional="true">
  1131 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1132 + </Module>
  1133 + <Module name="runState" optional="true">
  1134 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  1135 + </Module>
  1136 + <Module name="battery" optional="false">
  1137 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  1138 + </Module>
  1139 + </Modules>
  1140 + </Device>
  1141 +
  1142 +
  1143 + <Device id="deviceSwitch">
  1144 + <Doc>A switch is a device that is used to control and monitor the state of power. Although there is only one module instance in Table 5.5.42-1, the binarySwitch module instance can be extended using different module instance names according to the requirement.</Doc>
  1145 + <Modules>
  1146 + <Module name="binarySwitch" optional="false">
  1147 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1148 + </Module>
  1149 + </Modules>
  1150 + </Device>
  1151 +
  1152 +
  1153 + <Device id="deviceTelevision">
  1154 + <Doc>A television (TV) is a home appliance used to show audio and visual content such as broadcasting programs and network streaming. This TV information model provides capabilities to control and monitor TV specific resources.</Doc>
  1155 + <Modules>
  1156 + <Module name="binarySwitch" optional="false">
  1157 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1158 + </Module>
  1159 + <Module name="audioVolume" optional="true">
  1160 + <extends domain="org.onem2m.home.moduleclass" class="audioVolume"/>
  1161 + </Module>
  1162 + <Module name="televisionChannel" optional="true">
  1163 + <extends domain="org.onem2m.home.moduleclass" class="televisionChannel"/>
  1164 + </Module>
  1165 + <Module name="playerControl" optional="true">
  1166 + <extends domain="org.onem2m.home.moduleclass" class="playerControl"/>
  1167 + </Module>
  1168 + <Module name="mediaInput" optional="true">
  1169 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  1170 + </Module>
  1171 + <Module name="mediaOutput" optional="true">
  1172 + <extends domain="org.onem2m.home.moduleclass" class="mediaSelect"/>
  1173 + </Module>
  1174 + </Modules>
  1175 + </Device>
  1176 +
  1177 +
  1178 + <Device id="deviceThermometer">
  1179 + <Doc>A thermometer is a device that can be used to check, for example, the body or other temperatures.</Doc>
  1180 + <Modules>
  1181 + <Module name="temperature" optional="false">
  1182 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  1183 + </Module>
  1184 + <Module name="battery" optional="false">
  1185 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  1186 + </Module>
  1187 + </Modules>
  1188 + </Device>
  1189 +
  1190 +
  1191 + <Device id="deviceThermostat">
  1192 + <Doc>A thermostat is used to control the ambient temperature of rooms within, for example, a house. This information model provides capabilities to interact with specific functions of thermostats.</Doc>
  1193 + <Modules>
  1194 + <Module name="runState" optional="true">
  1195 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  1196 + <Doc>The possible values of the “supportedModes” datapoint for the thermostat device are included in clause 5.6.18.</Doc>
  1197 + </Module>
  1198 + <Module name="timer" optional="true">
  1199 + <extends domain="org.onem2m.home.moduleclass" class="timer"/>
  1200 + </Module>
  1201 + <Module name="temperature" optional="false">
  1202 + <extends domain="org.onem2m.home.moduleclass" class="temperature"/>
  1203 + </Module>
  1204 + </Modules>
  1205 + </Device>
  1206 +
  1207 +
  1208 + <Device id="deviceWaterHeater">
  1209 + <Doc>A water heater is a device that is used to provide hot water through home facilities.</Doc>
  1210 + <Modules>
  1211 + <Module name="faultDetection" optional="true">
  1212 + <extends domain="org.onem2m.home.moduleclass" class="faultDetection"/>
  1213 + </Module>
  1214 + <Module name="binarySwitch" optional="false">
  1215 + <extends domain="org.onem2m.home.moduleclass" class="binarySwitch"/>
  1216 + </Module>
  1217 + <Module name="runState" optional="true">
  1218 + <extends domain="org.onem2m.home.moduleclass" class="runState"/>
  1219 + </Module>
  1220 + <Module name="clock" optional="true">
  1221 + <extends domain="org.onem2m.home.moduleclass" class="clock"/>
  1222 + </Module>
  1223 + <Module name="boiler" optional="false">
  1224 + <extends domain="org.onem2m.home.moduleclass" class="boiler"/>
  1225 + </Module>
  1226 + <Module name="hotWaterSupply" optional="false">
  1227 + <extends domain="org.onem2m.home.moduleclass" class="hotWaterSupply"/>
  1228 + </Module>
  1229 + </Modules>
  1230 + </Device>
  1231 +
  1232 +
  1233 + <Device id="deviceWaterValve">
  1234 + <Doc>A water valve is a device that is used to turn the water supply ON or OFF remotely.</Doc>
  1235 + <Modules>
  1236 + <Module name="openLevel" optional="false">
  1237 + <extends domain="org.onem2m.home.moduleclass" class="openLevel"/>
  1238 + </Module>
  1239 + </Modules>
  1240 + </Device>
  1241 +
  1242 +
  1243 + <Device id="deviceWeightScaleAndBodyCompositionAnalyser">
  1244 + <Doc>A weight scale and body composition analyser is a device that can be used to monitor the weight and body composition.</Doc>
  1245 + <Modules>
  1246 + <Module name="weight" optional="false">
  1247 + <extends domain="org.onem2m.home.moduleclass" class="weight"/>
  1248 + </Module>
  1249 + <Module name="bodyCompositionAnalyser" optional="false">
  1250 + <extends domain="org.onem2m.home.moduleclass" class="bodyCompositionAnalyser"/>
  1251 + </Module>
  1252 + <Module name="bioElectricalImpedanceAnalysis" optional="true">
  1253 + <extends domain="org.onem2m.home.moduleclass" class="bioElectricalImpedanceAnalysis"/>
  1254 + </Module>
  1255 + <Module name="battery" optional="true">
  1256 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  1257 + </Module>
  1258 + </Modules>
  1259 + </Device>
  1260 +
  1261 +
  1262 + <Device id="deviceWindowShade">
  1263 + <Doc>The window shade is an appliance that provides the ability to cover windows. This device type includes but not limited to roller shades, drapes, and tilt-only blinds.</Doc>
  1264 + <Modules>
  1265 + <Module name="openLevel" optional="false">
  1266 + <extends domain="org.onem2m.home.moduleclass" class="openLevel"/>
  1267 + </Module>
  1268 + <Module name="battery" optional="true">
  1269 + <extends domain="org.onem2m.home.moduleclass" class="battery"/>
  1270 + </Module>
  1271 + </Modules>
  1272 + </Device>
  1273 +
  1274 + </Devices>
  1275 +</Domain>
  1276 +
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!--
  3 +Copyright Notification
  4 +
  5 +The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices
  6 +contained in the original materials on any copies of the materials and that you comply strictly with these terms.
  7 +This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of
  8 +any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document.
  9 +
  10 +(c) 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). All rights reserved.
  11 +
  12 +
  13 +Notice of Disclaimer & Limitation of Liability
  14 +
  15 +The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand
  16 +and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations.
  17 +No recommendation as to products or vendors is made or should be implied.
  18 +
  19 +NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE,
  20 +GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY
  21 +PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS.
  22 +NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO
  23 +ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES.
  24 +oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER.
  25 +-->
  26 +
  27 +<Domain xmlns="http://homegatewayinitiative.org/xml/dal/3.0" id="org.onem2m.home.moduleclass">
  28 + <Modules>
  29 + <ModuleClass name="threeDPrinter">
  30 + <Doc>This ModuleClass describes capabilities of a 3D printer.</Doc>
  31 + <Actions>
  32 + <Action name="start3Dprint" optional="truet">
  33 + <Doc>Start 3D printing.</Doc>
  34 + </Action>
  35 + <Action name="stop3Dprint" optional="true">
  36 + <Doc>Stop 3D printing.</Doc>
  37 + </Action>
  38 + </Actions>
  39 + <Data>
  40 + <DataPoint name="printType" readable="true" writable="false" eventable="true" optional="false" >
  41 + <Doc>The type of printing technology (see clause 5.6.1).</Doc>
  42 + <DataType>
  43 + <SimpleType type="hd:enum3DPrinterTechnology" />
  44 + </DataType>
  45 + </DataPoint>
  46 + <DataPoint name="printSizeX" readable="true" writable="false" eventable="true" optional="false" >
  47 + <Doc>This data pointrepresents the maximum size of a printing object in the direction of X-axis. The unit of measure is "mm". (1/10cm).</Doc>
  48 + <DataType>
  49 + <SimpleType type="float" />
  50 + </DataType>
  51 + </DataPoint>
  52 + <DataPoint name="printSizeY" readable="true" writable="false" eventable="true" optional="false" >
  53 + <Doc>This data poin represents the maximum size of printing object in the direction of Y-axis. The unit of measure is "mm". (1/10cm).</Doc>
  54 + <DataType>
  55 + <SimpleType type="float" />
  56 + </DataType>
  57 + </DataPoint>
  58 + <DataPoint name="printSizeZ" readable="true" writable="false" eventable="true" optional="false" >
  59 + <Doc>This data point represents the maximum size of printing object in the direction of Z-axis. The unit of measure is “mm”. (1/10cm).</Doc>
  60 + <DataType>
  61 + <SimpleType type="float" />
  62 + </DataType>
  63 + </DataPoint>
  64 + <DataPoint name="network" readable="true" writable="false" eventable="true" optional="false" >
  65 + <Doc>This value indicates the Wide Area Network (WAN) connectivity of the 3D printer, such as Internet or GSM. "False" indicates that the printer does not have network connectivity to a WAN. "True" indicates that the printer has WAN network connectivity.</Doc>
  66 + <DataType>
  67 + <SimpleType type="boolean" />
  68 + </DataType>
  69 + </DataPoint>
  70 + <DataPoint name="memorySize" readable="true" writable="false" eventable="true" optional="false" >
  71 + <Doc>This value represents the total memory size of the printer. The unit of measure is MB(Mega Bytes).</Doc>
  72 + <DataType>
  73 + <SimpleType type="float" />
  74 + </DataType>
  75 + </DataPoint>
  76 + </Data>
  77 + </ModuleClass>
  78 +
  79 +
  80 + <ModuleClass name="acousticSensor">
  81 + <Doc>This ModuleClass provides capabilities for an acoustic sensor.</Doc>
  82 + <Data>
  83 + <DataPoint name="loudness" readable="true" writable="false" eventable="true" optional="false" >
  84 + <Doc>The unit of measure of the loudness is "dB^2".</Doc>
  85 + <DataType>
  86 + <SimpleType type="float" />
  87 + </DataType>
  88 + </DataPoint>
  89 + <DataPoint name="acousticStatus" readable="true" writable="false" eventable="true" optional="true" >
  90 + <Doc>The acousticStatus is expressed in percent, whereas a value of 0 means "no sound" and a value of 100 means "most noisy".</Doc>
  91 + <DataType>
  92 + <SimpleType type="integer" />
  93 + </DataType>
  94 + </DataPoint>
  95 + </Data>
  96 + </ModuleClass>
  97 +
  98 +
  99 + <ModuleClass name="airConJobMode">
  100 + <Doc>This ModuleClasses provides capabilities to control and monitor the job modes of an air conditioner.</Doc>
  101 + <Data>
  102 + <DataPoint name="currentJobMode" readable="true" writable="true" eventable="true" optional="false" >
  103 + <Doc>Currently active job mode (see clause 5.6.3).</Doc>
  104 + <DataType>
  105 + <SimpleType type="hd:enumAirConJobMode" />
  106 + </DataType>
  107 + </DataPoint>
  108 + <DataPoint name="currentJobModeName" readable="true" writable="false" eventable="true" optional="true" >
  109 + <Doc>Name of the current job mode as a string. This can be used when currentJobMode is vendor-specific.</Doc>
  110 + <DataType>
  111 + <SimpleType type="string" />
  112 + </DataType>
  113 + </DataPoint>
  114 + <DataPoint name="jobModes" readable="true" writable="false" eventable="true" optional="false" >
  115 + <Doc>List of possible job states the device supports (??? see clause 5.3.1).</Doc>
  116 + <DataType>
  117 + <Array>
  118 + <DataType>
  119 + <SimpleType type="hd:enumAirConJobMode" />
  120 + </DataType>
  121 + </Array>
  122 + </DataType>
  123 + </DataPoint>
  124 + </Data>
  125 + </ModuleClass>
  126 +
  127 +
  128 + <ModuleClass name="airFlow">
  129 + <Doc>This ModuleClass provides capabilities for controlling the air flow of a device.</Doc>
  130 + <Data>
  131 + <DataPoint name="speed" readable="true" writable="false" eventable="true" optional="false" >
  132 + <Doc>The current speed level in the range of the [minSpeed, maxSpeed] data poins.</Doc>
  133 + <DataType>
  134 + <SimpleType type="integer" />
  135 + </DataType>
  136 + </DataPoint>
  137 + <DataPoint name="minSpeed" readable="true" writable="false" eventable="true" optional="true" >
  138 + <Doc>The minimum value for the speed level. If not present, the default is 0.</Doc>
  139 + <DataType>
  140 + <SimpleType type="integer" />
  141 + </DataType>
  142 + </DataPoint>
  143 + <DataPoint name="maxSpeed" readable="true" writable="false" eventable="true" optional="true" >
  144 + <Doc>The maximum value for the speed level. If not present, the default is 100.</Doc>
  145 + <DataType>
  146 + <SimpleType type="integer" />
  147 + </DataType>
  148 + </DataPoint>
  149 + <DataPoint name="verticalDirection" readable="true" writable="true" eventable="true" optional="true" >
  150 + <Doc>The vertical direction of the air flow (see clause 5.6.31).</Doc>
  151 + <DataType>
  152 + <SimpleType type="hd:enumVerticalDirection" />
  153 + </DataType>
  154 + </DataPoint>
  155 + <DataPoint name="supportedVerticalDirection" readable="true" writable="false" eventable="true" optional="true" >
  156 + <Doc>List of supported vertical directions.</Doc>
  157 + <DataType>
  158 + <Array>
  159 + <DataType>
  160 + <SimpleType type="hd:enumVerticalDirection" />
  161 + </DataType>
  162 + </Array>
  163 + </DataType>
  164 + </DataPoint>
  165 + <DataPoint name="horizontalDirection" readable="true" writable="true" eventable="true" optional="true" >
  166 + <Doc>The horizontal direction of the air flow (see clause 5.6.17).</Doc>
  167 + <DataType>
  168 + <SimpleType type="hd:enumHorizontalDirection" />
  169 + </DataType>
  170 + </DataPoint>
  171 + <DataPoint name="supportedHorizontalDirection" readable="true" writable="false" eventable="true" optional="true" >
  172 + <Doc>List of supported horizontal directions.</Doc>
  173 + <DataType>
  174 + <Array>
  175 + <DataType>
  176 + <SimpleType type="hd:enumHorizontalDirection" />
  177 + </DataType>
  178 + </Array>
  179 + </DataType>
  180 + </DataPoint>
  181 + <DataPoint name="automode" readable="true" writable="true" eventable="true" optional="true" >
  182 + <Doc>Status of the automode feature. "True" indicates that the speed is set by the device, "False" indicates that the device is not controlling the speed.</Doc>
  183 + <DataType>
  184 + <SimpleType type="boolean" />
  185 + </DataType>
  186 + </DataPoint>
  187 + </Data>
  188 + </ModuleClass>
  189 +
  190 +
  191 + <ModuleClass name="airPurifierJobMode">
  192 + <Doc>This ModuleClasses provides capabilities to control and monitor the job modes of an airPurifier.</Doc>
  193 + <Data>
  194 + <DataPoint name="currentJobMode" readable="true" writable="true" eventable="true" optional="false" >
  195 + <Doc>Currently active job mode (see clause 5.6.4).</Doc>
  196 + <DataType>
  197 + <SimpleType type="hd:enumAirPurifierJobMode" />
  198 + </DataType>
  199 + </DataPoint>
  200 + <DataPoint name="currentJobModeName" readable="true" writable="false" eventable="true" optional="true" >
  201 + <Doc>Name of the current job mode as a string. This can be used when currentJobMode is vendor-specific.</Doc>
  202 + <DataType>
  203 + <SimpleType type="string" />
  204 + </DataType>
  205 + </DataPoint>
  206 + <DataPoint name="jobModes" readable="true" writable="false" eventable="true" optional="false" >
  207 + <Doc>List of possible job states the device supports (see clause 5.6.4).</Doc>
  208 + <DataType>
  209 + <Array>
  210 + <DataType>
  211 + <SimpleType type="hd:enumAirPurifierJobMode" />
  212 + </DataType>
  213 + </Array>
  214 + </DataType>
  215 + </DataPoint>
  216 + </Data>
  217 + </ModuleClass>
  218 +
  219 +
  220 + <ModuleClass name="airQualitySensor">
  221 + <Doc>ThThis ModuleClass provides capabilities for a monitoring sensor that measures the air quality.</Doc>
  222 + <Data>
  223 + <DataPoint name="sensorPM1" readable="true" writable="false" eventable="true" optional="true" >
  224 + <Doc>The concentration of particle matter under 1um. The minimum value is 0, and the maximum value is 1000.</Doc>
  225 + <DataType>
  226 + <SimpleType type="integer" />
  227 + </DataType>
  228 + </DataPoint>
  229 + <DataPoint name="sensorPM2" readable="true" writable="false" eventable="true" optional="true" >
  230 + <Doc>The concentration of particle matter under 2.5um. The minimum value is 0, and the maximum value is 1000.</Doc>
  231 + <DataType>
  232 + <SimpleType type="integer" />
  233 + </DataType>
  234 + </DataPoint>
  235 + <DataPoint name="sensorPM10" readable="true" writable="false" eventable="true" optional="true" >
  236 + <Doc>The concentration of particle matter under 10um. The minimum value is 0, and the maximum value is 1000.</Doc>
  237 + <DataType>
  238 + <SimpleType type="integer" />
  239 + </DataType>
  240 + </DataPoint>
  241 + <DataPoint name="sensorOdor" readable="true" writable="false" eventable="true" optional="true" >
  242 + <Doc>The concentration of odor that reflects air pollution. The minimum value is 0, and the maximum value is 1000.</Doc>
  243 + <DataType>
  244 + <SimpleType type="integer" />
  245 + </DataType>
  246 + </DataPoint>
  247 + <DataPoint name="sensorHumidity" readable="true" writable="false" eventable="true" optional="true" >
  248 + <Doc>The measured humidity. The minimum value is 0, and the maximum value is 100.</Doc>
  249 + <DataType>
  250 + <SimpleType type="integer" />
  251 + </DataType>
  252 + </DataPoint>
  253 + <DataPoint name="monitoringEnabled" readable="true" writable="true" eventable="true" optional="true" >
  254 + <Doc>The current status of monitoring. "True" indicates enabled, and "False" indicates not enabled..</Doc>
  255 + <DataType>
  256 + <SimpleType type="boolean" />
  257 + </DataType>
  258 + </DataPoint>
  259 + <DataPoint name="co2" readable="true" writable="false" eventable="true" optional="true" >
  260 + <Doc>This value indicates the CO2 level in ppm (parts per million).</Doc>
  261 + <DataType>
  262 + <SimpleType type="integer" />
  263 + </DataType>
  264 + </DataPoint>
  265 + <DataPoint name="co" readable="true" writable="false" eventable="true" optional="true" >
  266 + <Doc>This value indicates the CO level in ppm..</Doc>
  267 + <DataType>
  268 + <SimpleType type="integer" />
  269 + </DataType>
  270 + </DataPoint>
  271 + <DataPoint name="ch2o" readable="true" writable="false" eventable="true" optional="true" >
  272 + <Doc>This value indicates the CH2O level in ppm.</Doc>
  273 + <DataType>
  274 + <SimpleType type="integer" />
  275 + </DataType>
  276 + </DataPoint>
  277 + <DataPoint name="voc" readable="true" writable="false" eventable="true" optional="true" >
  278 + <Doc>ThThis value indicates the VOC (Volatile Organic Compounds) value in ppm.</Doc>
  279 + <DataType>
  280 + <SimpleType type="integer" />
  281 + </DataType>
  282 + </DataPoint>
  283 + </Data>
  284 + </ModuleClass>
  285 +
  286 +
  287 + <ModuleClass name="alarmSpeaker">
  288 + <Doc>This ModuleClass provides the capabilites to initiate and monitor an alarm.</Doc>
  289 + <Data>
  290 + <DataPoint name="tone" readable="true" writable="true" eventable="true" optional="true" >
  291 + <Doc>Representing the tones of the alarm (see clause 5.6.29).</Doc>
  292 + <DataType>
  293 + <SimpleType type="hd:enumTone" />
  294 + </DataType>
  295 + </DataPoint>
  296 + <DataPoint name="light" readable="true" writable="true" eventable="true" optional="true" >
  297 + <Doc>Representing the lighting mode of the alarm (see clause 5.6.5).</Doc>
  298 + <DataType>
  299 + <SimpleType type="hd:enumAlertColourCode" />
  300 + </DataType>
  301 + </DataPoint>
  302 + <DataPoint name="alarmStatus" readable="true" writable="true" eventable="true" optional="false" >
  303 + <Doc>"True" indicates the alarm start while "False" indicates the alarm stop.</Doc>
  304 + <DataType>
  305 + <SimpleType type="boolean" />
  306 + </DataType>
  307 + </DataPoint>
  308 + </Data>
  309 + </ModuleClass>
  310 +
  311 +
  312 + <ModuleClass name="audioVolume">
  313 + <Doc>This ModuleClass provides capabilities to control and monitor volume.</Doc>
  314 + <Actions>
  315 + <Action name="upVolume" optional="true">
  316 + <Doc>Increase volume by the amount of the stepValue up to the maxValue.</Doc>
  317 + </Action>
  318 + <Action name="downVolume" optional="true">
  319 + <Doc>Decrease volume by the amount of the stepValue down to 0.</Doc>
  320 + </Action>
  321 + </Actions>
  322 + <Data>
  323 + <DataPoint name="volumePercentage" readable="true" writable="true" eventable="true" optional="false">
  324 + <Doc>The rounded percentage of the current volume in the range of [0, maxValue]. 0% shall mean no sound produced.</Doc>
  325 + <DataType>
  326 + <SimpleType type="integer" />
  327 + </DataType>
  328 + </DataPoint>
  329 + <DataPoint name="stepValue" readable="true" writable="false" eventable="true" optional="true">
  330 + <Doc>Step value used by the "UpVolume" and "DownVolume" actions.</Doc>
  331 + <DataType>
  332 + <SimpleType type="integer" />
  333 + </DataType>
  334 + </DataPoint>
  335 + <DataPoint name="maxValue" readable="true" writable="false" eventable="true" optional="true">
  336 + <Doc>Maximum value allowed for Volume. maxValue is 100 by default if "maxValue" is not provided.</Doc>
  337 + <DataType>
  338 + <SimpleType type="integer" />
  339 + </DataType>
  340 + </DataPoint>
  341 + <DataPoint name="muteEnabled" readable="true" writable="true" eventable="true" optional="false">
  342 + <Doc>The current status of the mute enablement. "True" indicates enabled (that is, no sound), and "False" indicates not enabled (that is, sound is played).</Doc>
  343 + <DataType>
  344 + <SimpleType type="boolean" />
  345 + </DataType>
  346 + </DataPoint>
  347 + </Data>
  348 + </ModuleClass>
  349 +
  350 +
  351 + <ModuleClass name="autoDocumentFeeder">
  352 + <Doc>This ModuleClasses provides capabilities to monitor the state of autoDocumentFeeder (ADF). ADF is a feature which takes several pages and feeds the paper one page at a time into a scanner or printer, allowing the user to scan, print or fax, multiple-page documents without having to manually replace each page.</Doc>
  353 + <Data>
  354 + <DataPoint name="currentAdfState" readable="true" writable="false" eventable="true" optional="false" >
  355 + <Doc>Current state of the ADF.</Doc>
  356 + <DataType>
  357 + <SimpleType type="hd:enumAdfState" />
  358 + </DataType>
  359 + </DataPoint>
  360 +
  361 + <DataPoint name="adfStates" readable="true" writable="false" eventable="true" optional="false" >
  362 + <Doc>List of possible ADF states that are supported by the device (see clause 5.6.2).</Doc>
  363 + <DataType>
  364 + <Array>
  365 + <DataType>
  366 + <SimpleType type="hd:enumAdfState" />
  367 + </DataType>
  368 + </Array>
  369 + </DataType>
  370 + </DataPoint>
  371 + </Data>
  372 + </ModuleClass>
  373 +
  374 +
  375 + <ModuleClass name="battery">
  376 + <Doc>This ModuleClass provides capabilities to indicate the detection of low battery and gives an alarm if triggering criterion is met. The level data point in the module represents the current battery charge level.</Doc>
  377 + <Data>
  378 + <DataPoint name="level" readable="true" writable="false" eventable="true" optional="false">
  379 + <Doc>TThe rounded percentage of the current charging level of a battery in the range of [0, 100]. 0 percentage shall mean that no charge remains.</Doc>
  380 + <DataType>
  381 + <SimpleType type="integer" />
  382 + </DataType>
  383 + </DataPoint>
  384 + <DataPoint name="capacity" readable="true" writable="false" eventable="true" optional="true">
  385 + <Doc>The total capacity of a battery in mAh.</Doc>
  386 + <DataType>
  387 + <SimpleType type="integer" />
  388 + </DataType>
  389 + </DataPoint>
  390 + <DataPoint name="charging" readable="true" writable="false" eventable="true" optional="true">
  391 + <Doc>The status of charging. "True" indicates charging, and "False" indicates not charging.</Doc>
  392 + <DataType>
  393 + <SimpleType type="boolean" />
  394 + </DataType>
  395 + </DataPoint>
  396