<!--
NorthQ NQ-9021 Power Reader
http://northq.com/wp-content/uploads/2016/01/Technical-Integration.pdf
-->
<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
  <!-- COMMAND_CLASS_BASIC -->
  <CommandClass id="32">
    <Compatibility>
      <GetSupported>false</GetSupported>
    </Compatibility>
  </CommandClass>
  <!-- Configuration Parameters -->
  <CommandClass id="112">
    <Value genre="config" index="1" label="Pulse factor" max="1000000" min="10" type="int" units="pulses" value="10000">
      <Help>How many pulses are counted per 10 kWh.</Help>
    </Value>
    <Value genre="config" index="2" label="Sensor type" max="2" min="1" size="1" type="list" units="" value="1">
      <Help>Defines the meter type on which the Power Reader is placed</Help>
      <Item label="Pulse Meter" value="1"/>
      <Item label="Rotating Wheel" value="2"/>
    </Value>
    <Value genre="config" index="3" label="IR Listen period" max="127" min="0" type="byte" units="" value="0">
      <Help>
                Additional time for feedback measurement.
                Should always be 0.
            </Help>
    </Value>
    <Value genre="config" index="4" label="IR Pulse Width" max="127" min="0" type="byte" units="" value="50">
      <Help>
                Adjusts transmit signal so received signal will in average be equal to this values.
                Auto calibration might select another value than this.
            </Help>
    </Value>
    <Value genre="config" index="5" label="Poll / Wake up frequency" max="50" min="1" type="byte" units="seconds" value="20">
      <Help>
                Wake device up this many times per second.
                This value also controls number of measurements per second on mechanical meters.
            </Help>
    </Value>
    <Value genre="config" index="6" label="Pulse Threshold Low" max="113" min="1" size="1" type="byte" units="" value="0">
      <Help>Low detection threshold for wheel meters.</Help>
    </Value>
    <Value genre="config" index="7" label="Pulse Threshold high" max="113" min="1" size="1" type="byte" units="" value="5">
      <Help>High detection threshold for wheel meters.</Help>
    </Value>
    <Value genre="config" index="8" label="Wake up interval" max="113" min="0" read_only="true" size="4" type="int" units="seconds" value="3">
      <Help>Do not use. Set this value using WAKE_UP_INTERVAL_SET instead.</Help>
    </Value>
    <Value genre="config" index="9" label="Pulse count" max="2147483647" min="0" size="4" type="int" units="" value="0">
      <Help>In order for the Power Reader to report the proper total meter consumption the value for this registered has to be initialized with total_meter_consumption_stated_on_the_meter * impulse factor.</Help>
    </Value>
    <Value genre="config" index="10" label="Keep alive period" max="32767" min="1" size="2" type="short" units="second" value="5">
      <Help>set to the number of seconds that it will take the controlling node to send a response / request to the wake up notification</Help>
    </Value>
    <Value genre="config" index="11" label="Real-time mode" max="32767" min="0" read_only="true" size="2" type="short" units="" value="0">
      <Help>Set this to enter real-time mode from remote. Contains seconds * poll frequency before going back to sleep. If you press the button once this value will be set.</Help>
    </Value>
    <Value genre="config" index="12" label="serial number" read_only="true" size="4" type="int" value="0">
      <Help>The serial numbers written on the Power Reader are in HEX</Help>
    </Value>
    <Value genre="config" index="13" label="Debug" max="1" min="0" size="1" type="list" units="" value="1">
      <Help>Debug Mode</Help>
      <Item label="Off" value="0"/>
      <Item label="LED blinks at pulse counting" value="1"/>
    </Value>
    <Value genre="config" index="15" label="Calibration status" read_only="true" size="4" type="int" value="0">
      <Help>The calibration progress is calculated as (value[1] - 65 + value[2] / value[3]) * 25
                The calibration is finished successfully when value[0] = 2 and value[2] = value[3].
                The calibration has failed if value[0] != 1 OR (value[0] = 2 AND value[2] != value[3])
            </Help>
    </Value>
  </CommandClass>
</Product>
