fapg
(Fernando Gomes)
December 8, 2020, 4:39pm
1
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
rpwong
(Russ)
December 8, 2020, 6:02pm
2
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.
fapg
(Fernando Gomes)
December 8, 2020, 6:05pm
3
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