CT100 doesn't show current temperature w/ Zwavejs2mqtt

I’m finally getting the opportunity to deeply troubleshoot this now. I wish I could figure out the repro steps to get the extra values (what zwave JS seems to call the components that are part of the node) to show up. I do have the output from the debug section of one of the nodes (I have two thermostats, same type, and both get into this situation at the same time) that is having the problem. The first log is after I have the issue with the extra “values” already present, the second log is immediately after I re-interview that node. You can see that the before has additional values and the after does not. The after log is how (I think) it should always be. Below is the (meaningful) output of the diff since I can’t figure out how to upload text files… Most everything else is just last updated changes

Values in the “before I interviewed output” that do not show up in the after.

{
      "id": "30-49-1-Air temperature",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 49,
      "commandClassName": "Multilevel Sensor",
      "endpoint": 1,
      "property": "Air temperature",
      "propertyName": "Air temperature",
      "type": "number",
      "readable": true,
      "writeable": false,
      "label": "Air temperature",
      "ccSpecific": {
        "sensorType": 1,
        "scale": 1
      },
      "stateless": false,
      "commandClassVersion": 2,
      "unit": "°F",
      "list": false,
      "value": 67.5,
      "lastUpdate": 1706369238932,
      "newValue": 67.5
    },
    {
      "id": "30-64-1-mode",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 64,
      "commandClassName": "Thermostat Mode",
      "endpoint": 1,
      "property": "mode",
      "propertyName": "mode",
      "type": "number",
      "readable": true,
      "writeable": true,
      "label": "Thermostat mode",
      "stateless": false,
      "commandClassVersion": 2,
      "min": 0,
      "max": 255,
      "list": true,
      "states": [
        {
          "text": "Off",
          "value": 0
        },
        {
          "text": "Heat",
          "value": 1
        },
        {
          "text": "Cool",
          "value": 2
        },
        {
          "text": "Auto",
          "value": 3
        },
        {
          "text": "Auxiliary",
          "value": 4
        },
        {
          "text": "Resume (on)",
          "value": 5
        },
        {
          "text": "Fan",
          "value": 6
        },
        {
          "text": "Furnace",
          "value": 7
        },
        {
          "text": "Dry",
          "value": 8
        },
        {
          "text": "Moist",
          "value": 9
        },
        {
          "text": "Auto changeover",
          "value": 10
        },
        {
          "text": "Energy heat",
          "value": 11
        },
        {
          "text": "Energy cool",
          "value": 12
        },
        {
          "text": "Away",
          "value": 13
        },
        {
          "text": "Full power",
          "value": 15
        },
        {
          "text": "Manufacturer specific",
          "value": 31
        }
      ],
      "lastUpdate": 1706375479719
    },
    {
      "id": "30-64-1-manufacturerData",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 64,
      "commandClassName": "Thermostat Mode",
      "endpoint": 1,
      "property": "manufacturerData",
      "propertyName": "manufacturerData",
      "type": "buffer",
      "readable": true,
      "writeable": false,
      "label": "Manufacturer data",
      "stateless": false,
      "commandClassVersion": 2,
      "list": false,
      "lastUpdate": 1706375479719
    },
    {
      "id": "30-49-2-Humidity",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 49,
      "commandClassName": "Multilevel Sensor",
      "endpoint": 2,
      "property": "Humidity",
      "propertyName": "Humidity",
      "type": "number",
      "readable": true,
      "writeable": false,
      "label": "Humidity",
      "ccSpecific": {
        "sensorType": 5,
        "scale": 0
      },
      "stateless": false,
      "commandClassVersion": 2,
      "unit": "%",
      "list": false,
      "value": 53,
      "lastUpdate": 1706362053235,
      "newValue": 53
    },
    {
      "id": "30-64-2-mode",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 64,
      "commandClassName": "Thermostat Mode",
      "endpoint": 2,
      "property": "mode",
      "propertyName": "mode",
      "type": "number",
      "readable": true,
      "writeable": true,
      "label": "Thermostat mode",
      "stateless": false,
      "commandClassVersion": 2,
      "min": 0,
      "max": 255,
      "list": true,
      "states": [
        {
          "text": "Off",
          "value": 0
        },
        {
          "text": "Heat",
          "value": 1
        },
        {
          "text": "Cool",
          "value": 2
        },
        {
          "text": "Auto",
          "value": 3
        },
        {
          "text": "Auxiliary",
          "value": 4
        },
        {
          "text": "Resume (on)",
          "value": 5
        },
        {
          "text": "Fan",
          "value": 6
        },
        {
          "text": "Furnace",
          "value": 7
        },
        {
          "text": "Dry",
          "value": 8
        },
        {
          "text": "Moist",
          "value": 9
        },
        {
          "text": "Auto changeover",
          "value": 10
        },
        {
          "text": "Energy heat",
          "value": 11
        },
        {
          "text": "Energy cool",
          "value": 12
        },
        {
          "text": "Away",
          "value": 13
        },
        {
          "text": "Full power",
          "value": 15
        },
        {
          "text": "Manufacturer specific",
          "value": 31
        }
      ],
      "lastUpdate": 1706375479719
    },
    {
      "id": "30-64-2-manufacturerData",
      "nodeId": 30,
      "toUpdate": false,
      "commandClass": 64,
      "commandClassName": "Thermostat Mode",
      "endpoint": 2,
      "property": "manufacturerData",
      "propertyName": "manufacturerData",
      "type": "buffer",
      "readable": true,
      "writeable": false,
      "label": "Manufacturer data",
      "stateless": false,
      "commandClassVersion": 2,
      "list": false,
      "lastUpdate": 1706375479719
    }

Values in the after interview that do not show up in the before file:

{
      "time": "2024-01-27T17:22:37.336Z",
      "event": "interview started",
      "args": []
    },
    {
      "time": "2024-01-27T17:22:37.358Z",
      "event": "interview stage completed",
      "args": [
        "ProtocolInfo"
      ]
    },
    {
      "time": "2024-01-27T17:22:37.814Z",
      "event": "interview stage completed",
      "args": [
        "NodeInfo"
      ]
    },
    {
      "time": "2024-01-27T17:22:38.336Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Manufacturer Specific",
          "commandClass": 114,
          "property": "manufacturerId",
          "endpoint": 0,
          "newValue": 152,
          "propertyName": "manufacturerId"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:38.339Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Manufacturer Specific",
          "commandClass": 114,
          "property": "productType",
          "endpoint": 0,
          "newValue": 25601,
          "propertyName": "productType"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:38.341Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Manufacturer Specific",
          "commandClass": 114,
          "property": "productId",
          "endpoint": 0,
          "newValue": 263,
          "propertyName": "productId"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:39.364Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Version",
          "commandClass": 134,
          "property": "libraryType",
          "endpoint": 0,
          "newValue": 3,
          "propertyName": "libraryType"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:39.366Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Version",
          "commandClass": 134,
          "property": "protocolVersion",
          "endpoint": 0,
          "newValue": "3.28",
          "propertyName": "protocolVersion"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:39.368Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Version",
          "commandClass": 134,
          "property": "firmwareVersions",
          "endpoint": 0,
          "newValue": [
            "9.1"
          ],
          "propertyName": "firmwareVersions"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:47.022Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Indicator",
          "commandClass": 135,
          "property": "value",
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "value"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:47.530Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Battery",
          "commandClass": 128,
          "property": "level",
          "endpoint": 0,
          "newValue": 63,
          "propertyName": "level"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:47.535Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Battery",
          "commandClass": 128,
          "property": "isLow",
          "endpoint": 0,
          "newValue": false,
          "propertyName": "isLow"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:52.728Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Multilevel Sensor",
          "commandClass": 49,
          "property": "Humidity",
          "endpoint": 2,
          "newValue": 53,
          "propertyName": "Humidity"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:55.255Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Mode",
          "commandClass": 64,
          "property": "mode",
          "endpoint": 0,
          "newValue": 1,
          "propertyName": "mode"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:56.281Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Setpoint",
          "commandClass": 67,
          "property": "setpoint",
          "propertyKey": 1,
          "endpoint": 0,
          "newValue": 69,
          "propertyName": "setpoint",
          "propertyKeyName": "Heating"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:56.794Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Setpoint",
          "commandClass": 67,
          "property": "setpoint",
          "propertyKey": 2,
          "endpoint": 0,
          "newValue": 73,
          "propertyName": "setpoint",
          "propertyKeyName": "Cooling"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:57.842Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Multilevel Sensor",
          "commandClass": 49,
          "property": "Air temperature",
          "endpoint": 0,
          "newValue": 69,
          "propertyName": "Air temperature"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:58.353Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Operating State",
          "commandClass": 66,
          "property": "state",
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "state"
        }
      ]
    },
    {
      "time": "2024-01-27T17:22:59.823Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Fan Mode",
          "commandClass": 68,
          "property": "mode",
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "mode"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:00.419Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Thermostat Fan State",
          "commandClass": 69,
          "property": "state",
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "state"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:00.929Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 1,
          "endpoint": 0,
          "newValue": 2,
          "propertyName": "Temperature Reporting Threshold"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:01.451Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 2,
          "propertyKey": 4278190080,
          "endpoint": 0,
          "newValue": 1,
          "propertyName": "HVAC Type"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:01.453Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 2,
          "propertyKey": 983040,
          "endpoint": 0,
          "newValue": 2,
          "propertyName": "Number of Auxiliary or Heat Stages"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:01.454Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 2,
          "propertyKey": 15728640,
          "endpoint": 0,
          "newValue": 1,
          "propertyName": "Auxiliary Heat Type"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:01.456Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 2,
          "propertyKey": 65280,
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "Number of Heat Pump Stages"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:01.457Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 2,
          "propertyKey": 255,
          "endpoint": 0,
          "newValue": 1,
          "propertyName": "Number of Cool Stages"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:03.507Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 4,
          "endpoint": 0,
          "newValue": 1,
          "propertyName": "Thermostat Power Type"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:04.021Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 5,
          "endpoint": 0,
          "newValue": 2,
          "propertyName": "Humidity Reporting Threshold"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:04.539Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 6,
          "endpoint": 0,
          "newValue": 0,
          "propertyName": "Auxiliary/Emergency Heating"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:05.053Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 7,
          "endpoint": 0,
          "newValue": 2,
          "propertyName": "Thermostat Hysteresis"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:05.572Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 8,
          "propertyKey": 65280,
          "endpoint": 0,
          "newValue": 6,
          "propertyName": "Heating Differential Temperature"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:05.573Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 8,
          "propertyKey": 255,
          "endpoint": 0,
          "newValue": 4,
          "propertyName": "Cooling Differential Temperature"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:06.089Z",
      "event": "value added",
      "args": [
        {
          "commandClassName": "Configuration",
          "commandClass": 112,
          "property": 9,
          "endpoint": 0,
          "newValue": 2,
          "propertyName": "Thermostat Recovery Mode"
        }
      ]
    },
    {
      "time": "2024-01-27T17:23:06.092Z",
      "event": "interview stage completed",
      "args": [
        "CommandClasses"
      ]
    },
    {
      "time": "2024-01-27T17:23:06.094Z",
      "event": "interview stage completed",
      "args": [
        "OverwriteConfig"
      ]
    },
    {
      "time": "2024-01-27T17:23:06.096Z",
      "event": "interview stage completed",
      "args": [
        "Complete"
      ]
    },
    {
      "time": "2024-01-27T17:23:06.126Z",
      "event": "ready",
      "args": []
    },
    {
      "time": "2024-01-27T17:23:06.143Z",
      "event": "interview completed",
      "args": []
    },
    {
      "time": "2024-01-27T17:23:06.126Z",
      "event": "ready",
      "args": []
    },
    {
      "time": "2024-01-27T17:23:06.143Z",
      "event": "interview completed",
      "args": []
    }

And I got it to repro with the logs (hopefully enough of them) on. Restarting Home Assistant was not enough, but rebooting the machine did it. Not sure on the min repro steps here, but I can now get the logs over to ZWave-JS.

Here is the issue I created for ZWave JS in case anyone wants to follow along.

I inquired about the extra endpoints being found after a zwavejs restart. I think its down to the way zwavejs verifies the class information from nodes. As far as I am aware, zwavejs has class verification for other classes EXCEPT the thermostat class. Because of this, thermostat nodes will deal with extra endpoints being served on start. I opened a feature request on github a while back, but it seems to be a low priority, since Im sure a lot of people arent using zwave thermostats.