[SOLVED] Google assistant z-wave thermostat tbz48

I’m trying to figure out how to set up my home.items file to expose my thermostat to google assistant.
Thermostat is RCS tbz48 (same as gocontrol\linear of the same model num).

Everything I read on the wiki just shows a generic setup with no info on where to put the info to actually link it with my device.
Do I need to create a group in openhab somehow or just in the item file?
Also, my thermostat has 2 setpoints (one for heating and one for cooling) instead of the shown single system-wide setpoint.
Here is my thermostat in paperui.

How would I create this item in my items file?
Like This?

Group g_House "House HVAC" [ "Thermostat", "Fahrenheit" ]
  Number House "House Heating/Cooling Mode" (g_House) [ "HeatingCoolingMode" ] {channel="zwave:device:c8787433:node3:thermostat_mode"}
  Number House "House Temperature" (g_House) [ "CurrentTemperature" ] {channel="zwave:device:c8787433:node3:sensor_temperature"}
  Number House "House Setpoint" (g_House) [ "TargetTemperature" ]

Like That:

Group g_Thermostat "House HVAC" [ "Thermostat", "Fahrenheit" ]
Number House "House Heating/Cooling Mode" (g_Thermostat) [ "HeatingCoolingMode" ]  Channel="zwave:device:c8787433:node3:thermostat_mode"}
Number House "House Temperature" (g_Thermostat) [ "CurrentTemperature" ] {channel="zwave:device:c8787433:node3:sensor_temperature"}
Number House "House Setpoint" (g_Thermostat) [ "TargetTemperature" ]

You need to add a channel to the target temp of course
The g_Thermostat group can ONLY contain the thermostat items NOTHING else

Nope, that’s wrong.
Item names must be unique. You used House as item name for all three of them.

Group g_House "House HVAC" [ "Thermostat", "Fahrenheit" ]

Number             HouseHeatCool    "House Heating/Cooling Mode" (g_House) [ "HeatingCoolingMode" ] {channel="zwave:device:c8787433:node3:thermostat_mode"}
Number:Temperature HouseCurrentTemp "House Temperature"          (g_House) [ "CurrentTemperature" ] {channel="zwave:device:c8787433:node3:sensor_temperature"}
Number:Temperature HouseSetTempHeat "House Setpoint"             (g_House) [ "TargetTemperature" ]  {channel="zwave:device:c8787433:node3:thermostat_setpoint_heating"}
Number:Temperature HouseSetTempCool "House Setpoint"             (g_House) [ "TargetTemperature" ]  {channel="zwave:device:c8787433:node3:thermostat_setpoint_cooling"}

As there are two channels for setting temperature, you will have to use two items. Please also see the different Item Type for temperature. When using imperial units, this will automatically show the correct value.

You don’t need to define a group for this.

Yes missed that, sorry

Yes you do

You can’t expose single Items to google assistant without using a group?

Yes you can but the thermostat is a special case.
You can expose the different items separately but they’ll remain separate
If you want them to appear together as a thermostat entity in google home then you need a group as above

Ah, I see.

I understand I need a group. But do I need to do anything other than define a group in the item file as in the example?

No you don’t.
This is mine for example:

Group                Hallway_Thermostat                    "Hallway Thermostat"                                         (Hallway, Thermostats)                                                         [ "Thermostat", "Celsius" ]
String               Hallway_ThermostatMode                "Hallway Thermostat Mode"                                    (Hallway, Hallway_Thermostat, Thermostats, MQTTv2)                             [ "homekit:HeatingCoolingMode" ] { channel="mqtt:topic:HallwayThermostat:Mode" }
Number:Temperature   Hallway_ThermostatTarget              "Hallway Target Temp. [%.1f %unit%]"           <temperature> (Hallway, Hallway_Thermostat, Thermostats, Temperatures, Targets, MQTTv2)      [ "TargetTemperature" ]          { channel="mqtt:topic:HallwayThermostat:Target" }
Number:Temperature   Hallway_ThermostatAmbientTemp         "Hallway Ambient Temp. [%.1f %unit%]"          <temperature> (Hallway, Hallway_Thermostat, Thermostats, Temperatures, AmbientTemps, MQTTv2) [ "CurrentTemperature" ]         { channel="mqtt:topic:HallwayThermostat:Ambient" }
Number:Dimensionless Hallway_ThermostatHumidity            "Hallway Humidity [%.1f %%]"                   <humidity>    (Hallway, Hallway_Thermostat, Humidity, MQTTv2)                                [ "CurrentHumidity" ]            { channel="mqtt:topic:HallwayThermostat:Humidity" }

Thank you for your assistance. As soon as my baby wakes up I’ll go in there and update the computer and try this out.

I tried this and while it does expose my thermostat to GA it is not working quite right.

It displayed nothing until I removed the temperature tag from the item types then it displays fine just with no degree sign (don’t care about that since I know what the number is)
But it reads my mode as heat even though it’s in auto and it shows the setpoint for the cooling (the (edit) second setpoint in the item file.) I’m thinking maybe I need to setup two groups one for heat and one for cool but not sure.

Went ahead and set up two groups one each for heating and cooling. Each one operates properly except for the known issue of GA not being able to set mode. They show up side by side in my home app. Voice works fine for setting temp just have to specify heating or cooling. (Which I probably would have done anyway.)

If nobody has a better solution I will mark this as solved after tomorrow. I’m going to go ahead and add my model info to the first post. (Should have done that from the beginning but forgot to.)

Edit 2: I have been using the two group setup for a almost a week now and it works ok. Would prefer a single group for setting in the app but that’s something I can work with. Hoping the “can’t set mode” bug gets fixed soon. if someone has an idea on how to set up a single setpoint or a rule to always keep the setpoints a certain amount apart please comment below.

That’s strange because the channels are marked as UoM (i.e. Number:Temperature). If UoM does not work, you can use without UoM, but you have to write down the unit, like this:

Number Hallway_ThermostatTarget "Hallway Target Temp. [%.1f °F]" <temperature> (Hallway, Hallway_Thermostat, Thermostats, Temperatures, Targets, MQTTv2) [ "TargetTemperature" ] { channel="mqtt:topic:HallwayThermostat:Target" }

Yeah - it doesn’t make sense - but I can get a (semi)working setup without it so not gonna worry about it.

I wish the mode was settable from Google home but that seems to be a problem on Google side that openhab needs either documentation or a bunch of testing. (Documentation would be preferred but this is Google we are talking about)

I am wondering if I could setup a rule that would keep my heating setpoint a set amount lower than my cooling setpoint.