Trane XL850 Thermostat is an Unknown ZWave Device

I’ve got a raspberry pi running OH2 (via openhabian), an Aeotec Zstick Gen 5 attached to it, and a Trane XL850 thermostat connected to it.

So far, so good. I can add other zwave devices to Openhab fine, but the thermostat shows up as Node4 (unknown device.)

I’ve tried a few things:

  1. Excluding and reincluding it
  2. Checking if the device was in the database (it was not)
  3. Taking some of the configuration data from other Trane thermostats and adding it to my jsondb

I’m brand new to this environment, and I feel like maybe I just don’t know the right steps I need to take to add the right information to whatever local copy of the zwave DB is on the pi.

I found this resource:
https://products.z-wavealliance.org/products/1139/pics?noFilename=True

And this similar thermostat:

But I wasn’t able to figure out how to experiment with my local install to see if maybe I could pull/push some data to the device. I searched the docs on the openhab site, and found plenty of examples of how to add things manually if they already had DB entries, but not any information on how to manually construct a DB entry/mess with a local install to test the integration, and paper UI basically just tells me to reach out about adding the device to the DB.

Any suggestions?

Welcome to openHAB.
The database you are talking about is merged into the binding.
To get the latest changes from the online database you need to upgrade your openHAB to the latest zwave snapshot binding.
To add your device to the database we need the xml for that device from your /userdata/zwave folder.

To get more information on how to add devices take a look at the database guide.
Also please have a look at the official binding docs.

If you have problems please post your xml file with a device manual and a product image and we will take care of that.

1 Like

Alright, thanks for the tips! (In case someone finds this later, I found my userdata folder at the path /srv/openhab2-userdata/zwave).

Found the device XML, and it looks like it’s reporting itself as a static controller, which unfortunately makes sense based on what I’ve read elsewhere about the thermostat. (That it has some internal bindings, but maybe isn’t controllable via zwave).

<node>
  <homeId>0xf5047bc7</homeId>
  <nodeId>4</nodeId>
  <version>4</version>
  <manufacturer>0x7fffffff</manufacturer>
  <deviceId>0x7fffffff</deviceId>
  <deviceType>0x7fffffff</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <associationGroups class="concurrent-hash-map"/>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_STATIC_CONTROLLER</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_STATIC_CONTROLLER</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_PC_CONTROLLER</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>0</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors/>
</node>

I think your device is not fully discovered.The manufacturer, deviceId, & deviceType looks suspiciously invalid. Trane is id 008d, for instance. The zwave alliance lists many command classes supported by that thermostat.

https://products.z-wavealliance.org/products/1139/classes

1 Like

So, try excluding and including the device again?

No need to do that. Delete the Thing and re-discover it. If the device is battery operated you may need to wake it up a number of times until it is fully discovered.

I don’t think that helps:

I would reinclude it.

1 Like

Alright, steps I’ve tried:

  1. Reinitialize the device via paper UI, ensuring I keep the thermostat awake by interacting with it. Same results. (Though a new zwave xml file is created, based on timestamps. The file is identical.
  2. Delete the Thing and rediscover it. Same result – new xml, same data.
  3. Exclude and reinclude the thermostat, re-add the thing. Same result – a new xml file is generated, but it’s identical to the existing one, just with a new timestamp.

In all cases, the result seems to be that Openhab is attempting to reinitialize, but failing to get data on the device. (Or the device isn’t providing it.)

Thoughts? Happy to dive into debug logs if someone can point me their way.

events.log

2019-12-07 11:40:25.723 [hingStatusInfoChangedEvent] - 'zwave:device:cf946845:node4' changed from UNINITIALIZED to INITIALIZING
2019-12-07 11:40:25.745 [hingStatusInfoChangedEvent] - 'zwave:device:cf946845:node4' changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE): Controller is offline
2019-12-07 11:40:25.753 [hingStatusInfoChangedEvent] - 'zwave:device:cf946845:node4' changed from OFFLINE (BRIDGE_OFFLINE): Controller is offline to ONLINE
2019-12-07 11:40:25.765 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:cf946845:node4' has been updated.
2019-12-07 11:40:25.779 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:cf946845:node4' has been updated.
2019-12-07 11:40:25.791 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:cf946845:node4' has been updated.

Edit:
Wait, there are some IO exceptions in the logs in openhab.log. Let me see if I can figure out how to enable debug/trace level logging and get more info:

2019-12-07 11:39:54.466 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.
2019-12-07 11:39:56.643 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Device discovery could not resolve to a thingType! Manufacturer data not known.
2019-12-07 11:40:03.725 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.
2019-12-07 11:40:05.776 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Device discovery could not resolve to a thingType! Manufacturer data not known.
2019-12-07 11:40:05.787 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'zwave:device:cf946845:node4' to inbox.
2019-12-07 11:40:07.805 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler UniFiControllerThingHandler tried updating the thing status although the handler was already disposed.
2019-12-07 11:40:16.721 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.
2019-12-07 11:40:18.739 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Device discovery could not resolve to a thingType! Manufacturer data not known.
2019-12-07 11:40:28.651 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler UniFiControllerThingHandler tried updating the thing status although the handler was already disposed.
2019-12-07 11:40:46.721 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.

(also, aside, the UnifiControllerThingHandler seems to throw lots of warnings…)

After exclusion factory reset the device, then reinclude.

1 Like

And the log viewer if you want to rty & figure things out.

https://www.cd-jackson.com/index.php/openhab/zwave-log-viewer

1 Like

Best I can tell, there’s an I/O exception getting thrown consistently during the initialization process.

2019-12-07 12:28:21.243 [DEBUG] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Device discovery completed
2019-12-07 12:28:21.245 [TRACE] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Checking zwave:leviton_dzpa1_00_000
2019-12-07 12:28:21.247 [TRACE] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Checking zwave:leviton_dzpa1_00_000
...
2019-12-07 12:28:23.263 [TRACE] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Checking zwave:telldus_tzwp100_00_000
2019-12-07 12:28:23.265 [TRACE] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Checking zwave:cloud_a803n_00_000
2019-12-07 12:28:23.266 [TRACE] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Checking zwave:zwaveproducts_zlpa100_00_000
2019-12-07 12:28:23.294 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 4: Device discovery could not resolve to a thingType! Manufacturer data not known.
2019-12-07 12:28:23.300 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'zwave:device:cf946845:node4' to inbox.
2019-12-07 12:28:42.736 [DEBUG] [org.openhab.binding.zwave           ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.config.core.status.ConfigStatusProvider}={service.id=457, service.bundleid=207, service.scope=singleton} - org.openhab.binding.zwave
2019-12-07 12:28:42.771 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - Initializing ZWave thing handler zwave:device:cf946845:node4.
2019-12-07 12:28:42.864 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: MANUFACTURER not set
2019-12-07 12:28:42.866 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Controller status changed to ONLINE.
2019-12-07 12:28:42.868 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Controller is ONLINE. Starting device initialisation.
2019-12-07 12:28:42.898 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Updating node properties.
2019-12-07 12:28:42.916 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Updating node properties. MAN=2147483647
2019-12-07 12:28:42.918 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Properties synchronised
2019-12-07 12:28:42.929 [DEBUG] [ve.internal.protocol.ZWaveController] - Event listener added.
2019-12-07 12:28:42.933 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Initialising Thing Node...
2019-12-07 12:28:42.935 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Polling intialised at 1800 seconds - start in 10800 milliseconds.
2019-12-07 12:28:42.937 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Device initialisation complete.
2019-12-07 12:28:46.616 [DEBUG] [wave.discovery.ZWaveDiscoveryService] - ZWave discovery: Stop zwave:serial_zstick:cf946845
2019-12-07 12:28:46.619 [DEBUG] [al.protocol.ZWaveInclusionController] - ZWave controller stopping inclusion at IncludeSent
2019-12-07 12:28:46.622 [DEBUG] [ol.serialmessage.AddNodeMessageClass] - Ending INCLUSION mode.
2019-12-07 12:28:46.624 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 255: Adding to priority controller queue
2019-12-07 12:28:46.627 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 255: Added 72 to queue - size 1
2019-12-07 12:28:46.629 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2019-12-07 12:28:46.632 [TRACE] [nal.protocol.ZWaveTransactionManager] - getTransactionToSend 6
2019-12-07 12:28:46.634 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Creating empty message of class = AddNodeToNetwork (0x4a), type = Request
2019-12-07 12:28:46.637 [TRACE] [wave.internal.protocol.SerialMessage] - Calculated checksum = -101
2019-12-07 12:28:46.640 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 05 00 4A 05 2E 9B 
2019-12-07 12:28:46.643 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 05 00 4A 05 2E 9B 
2019-12-07 12:28:46.647 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.
2019-12-07 12:28:46.649 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 72: Transaction Start type AddNodeToNetwork 
2019-12-07 12:28:46.652 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: TID 72: [WAIT_REQUEST] priority=Controller, requiresResponse=true, callback: 46
2019-12-07 12:28:46.654 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd class: null
2019-12-07 12:28:46.657 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd: null
2019-12-07 12:28:46.659 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage Transactions outstanding: 1
2019-12-07 12:28:46.662 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Sat Dec 07 12:28:51 PST 2019 - 5000ms
2019-12-07 12:28:46.665 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage lastTransaction: TID 72: [WAIT_REQUEST] priority=Controller, requiresResponse=true, callback: 46
2019-12-07 12:28:46.667 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2019-12-07 12:28:46.670 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Sat Dec 07 12:28:51 PST 2019 - 4992ms
2019-12-07 12:28:51.662 [TRACE] [sactionManager$ZWaveTransactionTimer] - Transaction Timeout.......... 1 outstanding transactions
2019-12-07 12:28:51.665 [DEBUG] [sactionManager$ZWaveTransactionTimer] - NODE 255: TID 72: Timeout at state WAIT_REQUEST. 3 retries remaining.
2019-12-07 12:28:51.668 [DEBUG] [sactionManager$ZWaveTransactionTimer] - TID 72: Transaction is current transaction, so clearing!!!!!
2019-12-07 12:28:51.670 [DEBUG] [e.internal.protocol.ZWaveTransaction] - TID 72: Transaction CANCELLED
2019-12-07 12:28:51.672 [TRACE] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2019-12-07 12:28:51.675 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 255: notifyTransactionResponse TID:72 CANCELLED
2019-12-07 12:28:51.678 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2019-12-07 12:28:51.686 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage nothing
2019-12-07 12:28:51.688 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2019-12-07 12:28:53.735 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Polling...
2019-12-07 12:28:53.736 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Polling deferred until initialisation complete
2019-12-07 12:29:01.680 [DEBUG] [al.protocol.ZWaveInclusionController] - Inclusion timer at IncludeDone
2019-12-07 12:29:51.856 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 255: sendTransaction org.openhab.binding.zwave.internal.protocol.ZWaveSerialPayload@1379338
2019-12-07 12:29:51.866 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 255: Adding to priority controller queue
2019-12-07 12:29:51.870 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 255: Added 73 to queue - size 1
2019-12-07 12:29:51.874 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2019-12-07 12:29:51.877 [TRACE] [nal.protocol.ZWaveTransactionManager] - getTransactionToSend 6
2019-12-07 12:29:51.881 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Creating empty message of class = IdentifyNode (0x41), type = Request
2019-12-07 12:29:51.885 [TRACE] [wave.internal.protocol.SerialMessage] - Calculated checksum = -66
2019-12-07 12:29:51.889 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 00 41 04 BE 
2019-12-07 12:29:51.893 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 04 00 41 04 BE 
2019-12-07 12:29:51.896 [ERROR] [ing.zwave.handler.ZWaveSerialHandler] - Got I/O exception Input/output error in writeArray during sending. exiting thread.
2019-12-07 12:29:51.899 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 73: Transaction Start type IdentifyNode 
2019-12-07 12:29:51.902 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: TID 73: [WAIT_RESPONSE] priority=Controller, requiresResponse=true, callback: 0
2019-12-07 12:29:51.906 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd class: null
2019-12-07 12:29:51.909 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd: null
2019-12-07 12:29:51.912 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage Transactions outstanding: 1
2019-12-07 12:29:51.916 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Sat Dec 07 12:29:53 PST 2019 - 2000ms
2019-12-07 12:29:51.919 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage lastTransaction: TID 73: [WAIT_RESPONSE] priority=Controller, requiresResponse=true, callback: 0
2019-12-07 12:29:51.922 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2019-12-07 12:29:51.925 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Sat Dec 07 12:29:53 PST 2019 - 1990ms
2019-12-07 12:29:53.915 [TRACE] [sactionManager$ZWaveTransactionTimer] - Transaction Timeout.......... 1 outstanding transactions
2019-12-07 12:29:53.918 [DEBUG] [sactionManager$ZWaveTransactionTimer] - NODE 255: TID 73: Timeout at state WAIT_RESPONSE. 3 retries remaining.
2019-12-07 12:29:53.922 [DEBUG] [sactionManager$ZWaveTransactionTimer] - TID 73: Transaction is current transaction, so clearing!!!!!
2019-12-07 12:29:53.925 [DEBUG] [e.internal.protocol.ZWaveTransaction] - TID 73: Transaction CANCELLED
2019-12-07 12:29:53.928 [TRACE] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2019-12-07 12:29:53.930 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 255: notifyTransactionResponse TID:73 CANCELLED
2019-12-07 12:29:53.934 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2019-12-07 12:29:53.940 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 73: Transaction event listener: DONE: CANCELLED -> 
2019-12-07 12:29:53.942 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage nothing
2019-12-07 12:29:53.945 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2019-12-07 12:29:53.953 [TRACE] [nal.protocol.ZWaveTransactionManager] - ********* Transaction Response Complete -- 73 --
2019-12-07 12:29:53.956 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 4: Node Init response (0) org.openhab.binding.zwave.internal.protocol.ZWaveTransactionResponse@3e4884

No dice on the factory reset either.

You have filtered the log, this is what is left:

Please show the complete log.

1 Like

You have filtered the log

There really isn’t anything else in the log. I let it run for ~10 minutes before and after, and it the only things I cut were a ton of UnifiController handler warnings before and afterwards, and the gigantic list of devices that the node is not, a la Checking zwave:leviton_dzpa1_00_000.

I have otherwise not filtered anything from the logs.

That said, I spoke with Trane as well, and just got this response:

Good morning,
In our current state we don’t allow our 824/850/1050 controls to act as a z wave only device.

We have development plans to allow our controls to be treated as a z wave only device.

This may be available Q2/Q3 of 2020.

So it looks like XL824, XL850, and XL1050 are unable to be controlled via a zwave network for the time being, so this might be case closed for now.

Does anyone know if Trane added Z-wave only support yet?

I doubt there are any Trane support staff here. Call the vendor and ask.