Zwave Unknown Device (Oomi MultiSensor - a rebranded Aeotec MultiSensor 6 device)

Hi,

I’ve got a bunch Oomi MultiSensor (FT100) devices which cannot be fully discovered by openHAB.
They seem to be a rebranded version of the Aeotec MultiSensor 6 (ZW100) which I have too and work flawlessly with openHAB.

There’s already an entry in the Z-Wave Database but it seems to be incomplete contain some errors:
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/975

Here’s all the information I’ve been able to find to help integrate the device into the database:
http://manuals-backend.z-wave.info/make.php?lang=en&sku=FT100-A&cert=ZC10-15100014

That’s the XML file that got created after discovering the device with openHAB:
network_cb10ff7c__node_14.xml (6.3 KB)

Would it be possible somehow to test the Aeotec device definition with minimal adjustments for Oomi? If so, how?

Since I’m not really sure how to proceed from here to get it into the database (create a new device or update the existing one) I’d be happy for any advice and pointers.
Let me know if there’s more I can do (testing/debugging with the real device) don’t hesitate to ask.

Thanks,
Andreas

Update: I just was able to update the existing device entry to remove all errors and all but one warning:
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/975

The remaining warning says:

thingid should not contain manufacturer name.

But I don’t see thingid meantioned anywhere on the page.
Any hints on what I can do about it?

Thanks,
Andreas

grafik

Just put ft100 in there .

Thanks, @sihui, that helped.

That database field was changed from Thing Id to Unique Reference a while ago, I guess Chris just forgot to also change the output from the database verification checks :grinning:

Hi Andreas, Did you ever got it to work? I have a FT100 but only receiving 3 channels. Is that correct and if so can you point me in the direction to use the motion sensor?

Kind regards,
Bas

I have the same problem.
I only see 3 channels (temperature motion and battery), and not all the config. parameters.
To make things worse, the motion channel does not work. So it is pretty much useless for me.

Is there a solution for this?
It is supposed to work with OH.

Some people report that one possible solution is to flash the FT-100 with the official Aeotec firmware.

Here they discuss about that (they don’t use OH, they use other controllers):
https://forum.fhem.de/index.php?topic=95312.0

I am not sure about this solution because I am not 100% sure the FT-100 is the same device as the Aeotec ZW-100. Maybe it is, maybe not.

If someone has ever tried this, it would be nice to know if this solves this issue in OH.

Hi again,
I will answer myself, so I can help others. I have tried this and it definitely works.

2 Likes

@chris

For the faint-hearted who are reluctant to flash the device from Fantem/Oomi to Aeotec, I would like to fix the existing entry in the Z-Wave database.

The current entry for ‘Fantem FT100 Oomi Multisensor’ is missing several endpoints:

  • LUMINANCE
  • RELATIVE_HUMIDITY
  • ULTRAVIOLET

Please find attached the complete XML file:

<node>
  <homeId>0xbeef</homeId>
  <nodeId>62</nodeId>
  <version>4</version>
  <manufacturer>0x16a</manufacturer>
  <deviceId>0x64</deviceId>
  <deviceType>0x2</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_ALARM</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>COMMAND_CLASS_MARK</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <maxNodes>0</maxNodes>
        <associations>
          <associationMember>
            <node>1</node>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SENSOR_MULTILEVEL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_ROUTING_SENSOR_MULTILEVEL</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
            <COMMAND__CLASS__SENSOR__BINARY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
              <types/>
            </COMMAND__CLASS__SENSOR__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
            <COMMAND__CLASS__SENSOR__MULTILEVEL>
              <version>5</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>5</versionSupported>
              <sensors>
                <entry>
                  <multilevelSensorType>TEMPERATURE</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>TEMPERATURE</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
                <entry>
                  <multilevelSensorType>LUMINANCE</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>LUMINANCE</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
                <entry>
                  <multilevelSensorType>RELATIVE_HUMIDITY</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>RELATIVE_HUMIDITY</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
                <entry>
                  <multilevelSensorType>ULTRAVIOLET</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>ULTRAVIOLET</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
              </sensors>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SENSOR__MULTILEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
            <COMMAND__CLASS__ASSOCIATION__GRP__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <autoSubscribeGroups/>
            </COMMAND__CLASS__ASSOCIATION__GRP__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
            <COMMAND__CLASS__DEVICE__RESET__LOCALLY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__DEVICE__RESET__LOCALLY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
            <COMMAND__CLASS__ZWAVEPLUS__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <zwPlusVersion>1</zwPlusVersion>
              <zwPlusRole>ROLE_TYPE_SLAVE_ALWAYS_ON</zwPlusRole>
              <zwPlusNodeType>NODE_TYPE_ZWAVEPLUS_NODE</zwPlusNodeType>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ZWAVEPLUS__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <configParameters>
                <entry>
                  <int>2</int>
                  <configurationParameter>
                    <index>2</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>3</int>
                  <configurationParameter>
                    <index>3</index>
                    <size>2</size>
                    <value>240</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>4</int>
                  <configurationParameter>
                    <index>4</index>
                    <size>1</size>
                    <value>5</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>5</int>
                  <configurationParameter>
                    <index>5</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>39</int>
                  <configurationParameter>
                    <index>39</index>
                    <size>1</size>
                    <value>20</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>40</int>
                  <configurationParameter>
                    <index>40</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <alarms>
                <entry>
                  <alarmType>BURGLAR</alarmType>
                  <alarmState>
                    <alarmType>BURGLAR</alarmType>
                    <reportedEvents>
                      <int>3</int>
                      <int>8</int>
                    </reportedEvents>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
              </alarms>
              <v1Supported>true</v1Supported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ALARM>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>362</deviceManufacturer>
              <deviceType>2</deviceType>
              <deviceId>100</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
            <COMMAND__CLASS__POWERLEVEL>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <powerLevel>0</powerLevel>
              <powerTimeout>0</powerTimeout>
            </COMMAND__CLASS__POWERLEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <batteryLevel>100</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
            <COMMAND__CLASS__WAKE__UP>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <targetNodeId>1</targetNodeId>
              <interval>3600</interval>
              <minInterval>240</minInterval>
              <maxInterval>3600</maxInterval>
              <defaultInterval>3600</defaultInterval>
              <intervalStep>60</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <maxGroups>1</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <libraryType>LIB_SLAVE_ENHANCED</libraryType>
              <protocolVersion>4.54</protocolVersion>
              <applicationVersion>1.3</applicationVersion>
              <hardwareVersion>100</hardwareVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors/>
  <lastReceived>2021-11-20 20:04:33.608 UTC</lastReceived>
</node>

IIRC, it’s not possible to upload an XML file for an already existing device. Please advise how to proceed. TIA.

I had a similar situation for an existing device that was missing some parameters. With edit access you can add endpoints, parameters, etc. After that you can export the XML to see that it matches what you want it to have.

Bob

edit: Quick look: It looks like the endpoint is Ok. Need to add channels to the sensor_Multilevel.

I could add the the channels, but the versions of the command classes do not match - I’ll wait for @chris’ reply.

Okey doke. Just trying to help and save the big guy a little time.

Bob

1 Like

Just to be picky - I assume you mean it’s missing some channels - there only seems to be 1 endpoint in the XML you posted.

Correct - this is to avoid someone screwing things too badly :wink:

In general, the CC version doesn’t really matter. It’s stored in the database, but that’s really just as a reference and the binding will work with whatever data it receives no matter what the database says the version is.

I’m not sure I understand the issue - is it just missing channels, or is there a version change here? If it’s just missing the channels, then I think adding them should be fine - otherwise it’s the “new entry for the new version” concept that I know you are familiar with already.

Yep, one endpoint, missing channels. Manual/documentation is a mess. AFAICT, just missing channels and wrong/missing alarm types in the database. What I’ve done so far:

  • missing channels added,
  • alarm types fixed/added (burglar → motion, new alarm type: tamper),
  • Association Groups 2 and 3 added (the manual mentions settings for Groups 2 and 3 (parameters 101-103/111-113), but doesn’t mention Groups 2 and 3 …),
  • parameters 101-103/111-113 added,
  • review requested.

The latest Z-Wave snapshot (#118) adds support for all sensors:

grafik

How to update:

  1. Install latest Z-Wave snapshot (bundle:update).
  2. Delete the Thing.
  3. Add Thing (+) → Z-Wave Binding → Scan
  4. Re-add the Thing from the Inbox.

I couldn’t get my Oomi/Fantem FT100 to run reliably - it got stuck about once a month, so I flashed it with the latest Aeotec fimware (v1.15) - it’s too early to draw a final conclusion, but the sensor seems to be indistinguishable from a ZW100 after the firmware update.

Edit:
Just an update:
My Oomi FT100 flashed with the latest Aeotec firmware (v1.15) for ZW100 has been running flawlessly for more than a month now.