C-8 on 2.3.9.201
I added my thermostat devices and thermostat 2.0 controllers (child) to a dashboard and all the controllers are missing the attribute thermostatFanMode and one of the thermostats is missing thermostatOperatingState.
How do I fix this? For the thermostat controllers, they are all the same Centralite unit, added at the same time about six months ago and all set to Generic Zigbee Thermostat, but not sure why one of them is different.
As for the Thermostat Controller 2.0 apps, no idea what is wrong with that. I think this issue affects many of my devices as my brief try of the EZ Dashboard showed that many of my devices did not work with it. I did migrate the settings from a c-7 to a c-8 so it's not exactly clean, but I rather not have to factory-reset and rejoin about 70 zigbee devices.
UPDATE: On the single thermostat device page, clicking Set Thermostat Fan Mode made the thermostatFanMode appear. But still can't figure out how to get other missing attributes to appear like coolingSetpoint and thermostatOperatingState.
What eventually worked to restored those missing attributers was to remove the thermostat device, factory reset it, and then re-join it to the network. But thermostatFanMode attribute was still missing until I manually set it.
If some of these attributes are required by other core apps like EZ Dashboard, there should be an automatic process to ensure those attributes exist for a device or at least have a manual scan to find these missing items. While I love to tinker and customize, I do want the foundation to be stable so important things like heating is not compromised.
I had a similar issue with thermostatOperatingState. When I set the thermostatSetpoint high enough to call for heat at the thermostat, that caused thermostatOperatingState to populate. Sounds similar to what you did to get the thermostatFanMode to appear.