Modes != on/off

Hi,

My thermostat have a switch item to ON/OFF the thermostat and another number item to configure the mode, but in GA binding, I have only “ga=thermostatMode” that controls everything (on/off/heat/cool/) (see: https://developers.google.com/assistant/smarthome/traits/temperaturesetting.html and https://www.openhab.org/docs/ecosystem/google-assistant/).

How I can manage to split this, for working in GA binding?

Best Regards,
Fernando Gomes

Use a proxy item that’s connected to Google Assistant, with rules to deliver the appropriate commands to your actual thermostat items.

You’ll need to account for when your thermostat is off and you switch it to “heat” or “cool” by also turning it on. You’ll also need a rule to go the other way, ensuring that the GA proxy item is synchronized.

Hi,

Thanks for your quick response, can you point me to an example or documentation?

Best Regards,
Fernando Gomes

Here you go:

*.items

Group                 Heizung_GoogleAssistant             "Heizung"                                                                                  {ga="Thermostat" [ thermostatTemperatureRange="15, 25", roomHint="Felix"]}
Switch                Heizung_AnAus                       "Heizung"                                <radiator>
String                Heizung_Modus_Sprachassistent       "Modus"                                                       (Heizung_GoogleAssistant)    {ga="thermostatMode"}	//Item nötig, da sonst kein "Hey Google, Heizung an" möglich ist
Number:Temperature    Heizung_AktuelleTemperatur          "Aktuelle Temperatur [%.1f °C]"          <temperature_hot>    (Heizung_GoogleAssistant)    {channel="tado:zone:7a9974e7:1:currentTemperature", ga="thermostatTemperatureAmbient"}
Number:Temperature    Heizung_Zieltemperatur              "Zieltemperatur [%.1f °C]"               <heating>            (Heizung_GoogleAssistant)    {channel="tado:zone:7a9974e7:1:targetTemperature", ga="thermostatTemperatureSetpoint"}
Number                Heizung_AktuelleLuftfeuchtigkeit    "Aktuelle Luftfeuchtigkeit [%.4s %%]"    <humidity>           (Heizung_GoogleAssistant)    {channel="tado:zone:7a9974e7:1:humidity", ga="thermostatHumidityAmbient"}

*.rules

rule "Heizung"
when
    Item Heizung_Modus_Sprachassistent received command
then
    if (receivedCommand=="on" || receivedCommand=="heat") {
        logInfo("Rule triggered", Dateiname + ": \"Heizung\": an")
        Heizung_AnAus.sendCommand(ON)
    }
    if (receivedCommand=="off" && Heizung_Zieltemperatur.state.toString != "5.0 °C") {
        logInfo("Rule triggered", Dateiname + ": \"Heizung\": aus")
        Heizung_AnAus.sendCommand(OFF)
    }
end
1 Like