Sure, no problem!
I have a honeywell zwave thermostat, so starting with items…
// turned on ten-minute polling for these, because if a built-in schedule kicks it doesn't seem to update zwave...
Number LIVINGROOM_THERMOSTAT_HEAT_SETPOINT "Livingroom Thermostat Heating Set Point [%.1f F]" <heating2_small> (Group_Thermostat, Group_Persistence) {zwave="40:0:command=THERMOSTAT_SETPOINT,setpoint_type=1,setpoint_scale=1,refresh_interval=600"}
Number LIVINGROOM_THERMOSTAT_COOL_SETPOINT "Livingroom Thermostat Cooling Set Point [%.1f F]" <thermometer_snowflake_small> (Group_Thermostat, Group_Persistence) {zwave="40:0:command=THERMOSTAT_SETPOINT,setpoint_type=2,setpoint_scale=1,refresh_interval=600"}
// thermostat operating state indicates heating when heating.
// thermostat operating state indicates idle when not doing anything.
// (i.e. thermostat operating state is what's happening right now)
Number LIVINGROOM_THERMOSTAT_OPERATING_STATE "Livingroom Thermostat State: [MAP(zwave_thermostat_operating_state.map):%s]" (Group_Thermostat, Group_Persistence) {zwave="40:0:command=THERMOSTAT_OPERATING_STATE,refresh_interval=600"}
// thermostat mode indicates what mode the thermostat is in (heat on, cool on, etc),
// not what it's actually doing right now.
Number LIVINGROOM_THERMOSTAT_MODE "Livingroom Thermostat Mode: [MAP(zwave_thermostat_mode.map):%s]" (Group_Thermostat, Group_Persistence) {zwave="40:0:command=THERMOSTAT_MODE,refresh_interval=600"}
Number LIVINGROOM_THERMOSTAT_FAN_MODE "Livingroom Thermostat Fan Mode: [MAP(zwave_thermostat_fan_state.map):%d]" (Group_Thermostat, Group_Persistences) { zwave="40:0:command=THERMOSTAT_FAN_MODE,refresh_interval=600" }
// this needs no polling; thermostat is more than happy to send updates all day long!
Number LIVINGROOM_THERMOSTAT_TEMPERATURE "Livingroom Thermostat Temperature: [%.1f F]" <temperature> (Group_Thermostat,Group_Temperature, Group_Persistence) {zwave="40:0:command=SENSOR_MULTILEVEL,sensor_type=1"}
map files (transformations) (I think these are actually standard files, but a little more copy and paste doesn’t hurt…)
zwave_thermostat_fan_state_map:
0=Off
1=Running
2=Running High
6=Circulate
-=(No data yet)
zwave_thermostat_mode.map:
0=Off
1=Heat
2=Cool
3=Auto
4=Aux Heat
5=Resume
6=Fan Only
7=Furnace
8=Dry Air
9=Moist Air
10=Auto Changeover
11=Heat Econ
12=Cool Econ
13=Away
-=(No data yet)
zwave_thermostat_operating_state.map:
0=Idle
1=Heating
2=Cooling
3=Fan Only
4=Pending Heat
5=Pending Cool
6=Vent / Economizer
-=(No data yet)
And then the sitemap:
Frame label="Living Room Thermostat" {
Setpoint item=LIVINGROOM_THERMOSTAT_HEAT_SETPOINT icon="heating" minValue=60 maxValue=90 step=1.0
Setpoint item=LIVINGROOM_THERMOSTAT_COOL_SETPOINT icon="cooling" minValue=60 maxValue=90 step=1.0
Switch item=LIVINGROOM_THERMOSTAT_MODE label="Thermostat mode" mappings=[0="Off",1="Heat",2="Cool"]
Switch item=LIVINGROOM_THERMOSTAT_FAN_MODE label="Thermostat fan mode" mappings=[0="Auto",1="On",6="Circulate"]
Text item=LIVINGROOM_THERMOSTAT_TEMPERATURE
Text item=LIVINGROOM_THERMOSTAT_OPERATING_STATE
}
No rules needed at all! (Nothing is automated! )
(I dislike automating thermostats, simply because one day 77F seems fine, the next 77F feels too warm. So I don’t even try.)