<Product Revision="4" xmlns="https://github.com/OpenZWave/open-zwave">
  <MetaData>
    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/010F:1000:0502</MetaDataItem>
    <MetaDataItem name="ProductPic">images/fibaro/fgbs222.png</MetaDataItem>
    <MetaDataItem id="1000" name="ZWProductPage" type="0502">https://products.z-wavealliance.org/products/3285/</MetaDataItem>
    <MetaDataItem id="1000" name="Identifier" type="0502">FGBS-222</MetaDataItem>
    <MetaDataItem name="Description">FIBARO Smart Implant allows to enhance the functionality of wired sensors and other devices by adding Z-Wave network communication.
You can connect binary sensors, analog sensors, DS18B20 temperature sensors or DHT22 humidity and temperature sensor to report their readings to the Z-Wave controller.
It can also control devices by opening/closing output contacts independently of the inputs.

Main features of FIBARO Smart Implant:
- Compatible with any Z-Wave or Z-Wave+ Controller,
- Supports Z-Wave network Security Modes: S0 with AES-128 encryption and S2 with PRNG-based encryption,
- Allows for connecting sensors:
   o	6 DS18B20 sensors, 
   o	1 DHT sensor,
   o	2 2-wire analog sensor,
   o	2 3-wire analog sensor,
   o	2 binary sensors. 
- Works as a Z-Wave signal repeater,
- Built-in temperature sensor.
</MetaDataItem>
    <MetaDataItem name="ExclusionDescription">To remove the device from the Z-Wave network:
1.	Power the device.
2.	Set the main controller into remove mode (see the controller’s manual).
3.	Quickly, triple click button on the device housing or switch connected to IN1 or IN2.
4.	LED will start blinking yellow, wait for the removing process to end.
5.	Successful removing will be confirmed by the Z-Wave controller’s message.
</MetaDataItem>
    <MetaDataItem name="WakeupDescription">FIBARO Smart Implant is powered using DC power supply unit so it is always awake.</MetaDataItem>
    <MetaDataItem name="Name">Smart Implant</MetaDataItem>
    <MetaDataItem name="InclusionDescription">To add the device to the Z-Wave network manually:
1.	Power the device.
2.	Set the main controller in (Security/non-Security Mode) add mode (see the controller’s manual).
3.	Quickly, triple click button on the device housing or switch connected to IN1 or IN2.
4.	If you are adding in Security S2 Authenticated, scan the DSK QR code or input the 5-digit PIN code (label on the bottom of the box).
5.	LED will start blinking yellow, wait for the adding process to end.
6.	Successful adding will be confirmed by the Z-Wave controller’s message.
 
To add the device to the Z-Wave network using Smart Start:
1.	Set the main controller in Security S2 Authenticated add mode (see the controller’s manual). 
2.	Scan the DSK QR code or input the 5-digit PIN code (label on the bottom of the box).
3.	Power the device.
4.	LED will start blinking yellow, wait for the adding process to end.
5.	Successful adding will be confirmed by the Z-Wave controller’s message.
</MetaDataItem>
    <MetaDataItem id="1000" name="FrequencyName" type="0502">CEPT (Europe)</MetaDataItem>
    <MetaDataItem name="ProductManual">https://Products.Z-WaveAlliance.org/ProductManual/File?folder=&amp;filename=Manuals/3285/FGBS-222-EN-T-v1.2c.pdf</MetaDataItem>
    <MetaDataItem name="ResetDescription">Reset procedure allows to restore the device back to its factory settings, which means all information about the Z-Wave controller and user configuration will be deleted.

Resetting the device is not the recommended way of
removing the device from the Z-Wave network. Use this procedure only when the network primary controller is missing or inoperable. Certain device removal can be achieved by the procedure of removing described.

1.	Press and hold the button to enter the menu.
2.	Release button when the device glows yellow.
3.	Quickly click the button to confirm.
4.	After few seconds the device will be restarted, which is signalled with the red colour.


</MetaDataItem>
    <ChangeLog>
      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="3">Initial Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3195/xml</Entry>
      <Entry author="Justin Hammond - Justin@dynam.ac" date="03 Jun 2019" revision="4">Updated Metadata Import from Z-Wave Alliance Database - https://products.z-wavealliance.org/products/3285/xml</Entry>
    </ChangeLog>
  </MetaData>
  <!--
    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>
