<Product Revision="2" xmlns="https://github.com/OpenZWave/open-zwave">
  <!--
    Fibaro Smart Implant
    https://www.fibaro.com/us/products/smart-implant/
    https://manuals.fibaro.com/content/manuals/en/FGBS-222/FGBS-222-EN-T-v1.0.pdf
    https://products.z-wavealliance.org/products/3195
    -->
  <!-- Configuration -->
  <CommandClass id="112">
    <Value genre="config" index="20" instance="1" label="Input 1 operating mode" size="1" type="list" value="2">
      <Help>
        This parameter allows to choose mode of 1st input (IN1). 
        Change it depending on connected device.
      </Help>
      <Item label="Normally closed alarm input" value="0"/>
      <Item label="Normally open alarm input" value="1"/>
      <Item label="Monostable button" value="2"/>
      <Item label="Bistable button" value="3"/>
      <Item label="Analog input without internal pull-up" value="4"/>
      <Item label="Analog input with internal pullup" value="5"/>
    </Value>
    <Value genre="config" index="21" instance="1" label="Input 2 operating mode" size="1" type="list" value="2">
      <Help>
        This parameter allows to choose mode of 2nd input (IN2). 
        Change it depending on connected device.
      </Help>
      <Item label="Normally closed alarm input" value="0"/>
      <Item label="Normally open alarm input" value="1"/>
      <Item label="Monostable button" value="2"/>
      <Item label="Bistable button" value="3"/>
      <Item label="Analog input without internal pull-up" value="4"/>
      <Item label="Analog input with internal pullup" value="5"/>
    </Value>
    <Value genre="config" index="24" instance="1" label="Inputs orientation" size="1" type="list" value="0">
      <Help>
        This parameter allows reversing operation of IN1 and IN2 inputs without changing the wiring. 
        Use in case of incorrect wiring.
      </Help>
      <Item label="Default (IN1 - 1st input, IN2 - 2nd input)" value="0"/>
      <Item label="Reversed (IN1 - 2nd input, IN2 - 1st input)" value="1"/>
    </Value>
    <Value genre="config" index="25" instance="1" label="Outputs orientation" size="1" type="list" value="0">
      <Help>
        This parameter allows reversing operation of OUT1 and OUT2 inputs without changing the wiring. 
        Use in case of incorrect wiring.
      </Help>
      <Item label="Default (OUT1 - 1st output, OUT2 - 2nd output)" value="0"/>
      <Item label="Reversed (OUT1 - 2nd output, OUT2 - 1st output)" value="1"/>
    </Value>
    <Value genre="config" index="40" instance="1" label="Input 1 sent scenes" size="1" type="byte" value="0">
      <Help>
        This parameter defines which actions result in sending scene ID and attribute assigned to them. 
        Parameter is relevant only if parameter 20 is set to 2 or 3. bitmask.
        0 => No scenes sent.
        1 => Key pressed 1 time.
        2 => Key pressed 2 times.
        4 => Key pressed 3 times.
        8 => Key hold down and key released.
      </Help>
    </Value>
    <Value genre="config" index="41" instance="1" label="Input 2 sent scenes" size="1" type="byte" value="0">
      <Help>
        This parameter defines which actions result in sending scene ID and attribute assigned to them. 
        Parameter is relevant only if parameter 21 is set to 2 or 3. bitmask.
        0 => No scenes sent.
        1 => Key pressed 1 time.
        2 => Key pressed 2 times.
        4 => Key pressed 3 times.
        8 => Key hold down and key released.
      </Help>
    </Value>
    <Value genre="config" index="47" instance="1" label="Input 1 value sent to 2nd association group when activated" max="255" min="0" type="short" value="255">
      <Help>
        This parameter defines value sent to devices in 2nd association group when IN1 input is triggered (using Basic Command Class).
        Available settings: 0-255.
        Default setting: 255.
      </Help>
    </Value>
    <Value genre="config" index="49" instance="1" label="Input 1 value sent to 2nd association group when deactivated" max="255" min="0" type="short" value="255">
      <Help>
        This parameter defines value sent to devices in 2nd association group when IN1 input is deactivated (using Basic Command Class).
        Available settings: 0-255.
        Default setting: 255.
      </Help>
    </Value>
    <Value genre="config" index="52" instance="1" label="Input 2 value sent to 3rd association group when activated" max="255" min="0" type="short" value="255">
      <Help>
        This parameter defines value sent to devices in 3rd association group when IN2 input is triggered (using Basic Command Class).
        Available settings: 0-255.
        Default setting: 255.
      </Help>
    </Value>
    <Value genre="config" index="54" instance="1" label="Input 2 value sent to 3rd association group when deactivated" max="255" min="0" type="short" value="255">
      <Help>
        This parameter defines value sent to devices in 3rd association group when IN2 input is deactivated (using Basic Command Class).
        Available settings: 0-255.
        Default setting: 255.
      </Help>
    </Value>
    <Value genre="config" index="150" instance="1" label="Input 1 sensitivity" max="100" min="1" type="byte" units="10ms" value="10">
      <Help>
        This parameter defines the inertia time of IN1 input in alarm modes.
        Adjust this parameter to prevent bouncing or signal disruptions. 
        Parameter is relevant only if parameter 20 is set to 0 or 1 (alarm mode).
        Available settings: 1-100 (10ms-1000ms, 10ms step).
        Default setting: 10 (100ms).
      </Help>
    </Value>
    <Value genre="config" index="151" instance="1" label="Input 2 sensitivity" max="100" min="1" type="byte" units="10ms" value="10">
      <Help>
        This parameter defines the inertia time of IN2 input in alarm modes.
        Adjust this parameter to prevent bouncing or signal disruptions. Parameter is relevant only if parameter 21 is set to 0 or 1 (alarm mode).
        Available settings: 1-100 (10ms-1000ms, 10ms step).
        Default setting: 10 (100ms).
      </Help>
    </Value>
    <Value genre="config" index="152" instance="1" label="Input 1 delay of alarm cancellation" max="3600" min="0" type="short" units="seconds" value="0">
      <Help>
        This parameter defines additional delay of cancelling the alarm on IN1 input. 
        Parameter is relevant only if parameter 20 is set to 0 or 1 (alarm mode).
        Available settings:
          0 - no delay.
          1-3600s.
        Default setting: 0 (no delay).
      </Help>
    </Value>
    <Value genre="config" index="153" instance="1" label="Input 2 delay of alarm cancellation" max="3600" min="0" type="short" units="seconds" value="0">
      <Help>
        This parameter defines additional delay of cancelling the alarm on IN2 input. 
        Parameter is relevant only if parameter 21 is set to 0 or 1 (alarm mode).
        Available settings:
          0 - no delay.
          1-3600s.
        Default setting: 0 (no delay).
      </Help>
    </Value>
    <Value genre="config" index="154" instance="1" label="Output 1 logic of operation" size="1" type="list" value="0">
      <Help>This parameter defines logic of OUT1 output operation.</Help>
      <Item label="contacts normally open" value="0"/>
      <Item label="contacts normally closed" value="1"/>
    </Value>
    <Value genre="config" index="155" instance="1" label="Output 2 logic of operation" size="1" type="list" value="0">
      <Help>This parameter defines logic of OUT2 output operation.</Help>
      <Item label="contacts normally open" value="0"/>
      <Item label="contacts normally closed" value="1"/>
    </Value>
    <Value genre="config" index="156" instance="1" label="Output 1 auto off" max="27000" min="0" type="short" units="0.1s" value="0">
      <Help>
        This parameter defines time after which OUT1 will be automatically deactivated.
        Available settings:
          0 - auto off disabled.
          1-27000 (0.1s-45min, 0.1s step).
        Default setting: 0 (auto off disabled).
      </Help>
    </Value>
    <Value genre="config" index="157" instance="1" label="Output 2 auto off" max="27000" min="0" type="short" units="0.1s" value="0">
      <Help>
        This parameter defines time after which OUT2 will be automatically deactivated.
        Available settings:
          0 - auto off disabled.
          1-27000 (0.1s-45min, 0.1s step).
        Default setting: 0 (auto off disabled).
      </Help>
    </Value>
    <Value genre="config" index="63" instance="1" label="Analog inputs minimal change to report" max="100" min="0" type="byte" units="0.1v" value="5">
      <Help>
        This parameter defines minimal change (from the last reported) of
        analog input value that results in sending new report. Parameter is
        relevant only for analog inputs (parameter 20 or 21 set to 4 or 5).
        Available settings:
          0 - (reporting on change disabled).
          1-100 (0.1-10V, 0.1V step).
        Default setting: 5 (0.5V).
      </Help>
    </Value>
    <Value genre="config" index="64" instance="1" label="Analog inputs periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
      <Help>
        This parameter defines reporting period of analog inputs value.
        Periodical reports are independent from changes in value (parameter 63). Parameter is relevant only for analog inputs (parameter
        20 or 21 set to 4 or 5).
        Available settings:
          0 (periodical reports disabled).
          60-32400 (60s-9h).
        Default setting: 0 (periodical reports disabled).
      </Help>
    </Value>
    <Value genre="config" index="65" instance="1" label="Internal temperature sensor minimal change to report" max="255" min="0" type="short" value="5">
      <Help>
        This parameter defines minimal change (from the last reported)
        of internal temperature sensor value that results in sending new
        report.
        Available settings:
          0 - (reporting on change disabled).
          1-255 (0.1-25.5C).
        Default setting: 5 (0.5C).
      </Help>
    </Value>
    <Value genre="config" index="66" instance="1" label="Internal temperature sensor periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
      <Help>
        This parameter defines reporting period of internal temperature
        sensor value. Periodical reports are independent from changes in
        value (parameter 65).
        Available settings:
          0 (periodical reports disabled).
          60-32400 (60s-9h).
        Default setting: 0 (periodical reports disabled).
      </Help>
    </Value>
    <Value genre="config" index="67" instance="1" label="External sensors minimal change to report" max="255" min="0" type="short" value="5">
      <Help>
        This parameter defines minimal change (from the last reported) of
        external sensors values (DS18B20 or DHT22) that results in sending new
        report. Parameter is relevant only for connected DS18B20 or DHT22
        sensors.
        Available settings:
          0 - (reporting on change disabled).
          1-255 (0.1-25.5 units).
        Default setting: 5 (0.5 units)
      </Help>
    </Value>
    <Value genre="config" index="68" instance="1" label="External sensors periodical reports" max="32400" min="0" type="short" units="seconds" value="0">
      <Help>
        This parameter defines reporting period of analog inputs value.
        Periodical reports are independent from changes in value (parameter 67).
        Parameter is relevant only for connected DS18B20 or DHT22 sensors.
        Available settings:
          0 - (periodical reports disabled).
          60-32400 (60s-9h).
        Default setting: 0 (periodical reports disabled).
      </Help>
    </Value>
  </CommandClass>
  <CommandClass id="96">
    <Compatibility>
      <MapRootToEndpoint>true</MapRootToEndpoint>
    </Compatibility>
  </CommandClass>
  <CommandClass id="32">
    <Compatibility>
      <SetAsReport>true</SetAsReport>
    </Compatibility>
  </CommandClass>
  <!-- Association Groups -->
  <CommandClass id="133">
    <Associations num_groups="3">
      <Group index="1" label="Lifeline" max_associations="1"/>
      <Group index="2" label="Input IN1" max_associations="5"/>
      <Group index="3" label="Input IN2" max_associations="5"/>
    </Associations>
  </CommandClass>
</Product>
