openHAB Rules, Items and sitemap for Toon.
Posted: Sun Jan 27, 2019 9:23 pm
I have added control for Toon to my openHAB system. Although not as fancy as a binding, it does get the job done. It also makes it possible for me to control Toon outside my own network (through myopenhab). Just sharing as it might help others that use openhab.
Prerequisite:
items/toon.items
rules/toon.rules
sitemaps/toon.sitemap
Prerequisite:
- HTTP binding
- JSONPath Transformation
Code: Select all
ToonCacheTherm.url=http://192.168.3.175/happ_thermstat?action=getThermostatInfo
ToonCacheTherm.updateInterval=10000
Code: Select all
Number KamerTemperature "Kamer temperatuur" { http="<[ToonCacheTherm:10000:JSONPATH($.currentTemp)]" }
Number ToonTemperature "Kamer temperatuur" { http="<[ToonCacheTherm:10000:JSONPATH($.currentSetpoint)]" }
Number ToonState { http="<[ToonCacheTherm:10000:JSONPATH($.activeState)]" }
Number ToonProgramAan { http="<[ToonCacheTherm:10000:JSONPATH($.programState)]" }
Code: Select all
rule "Set point change"
when Item ToonTemperature changed
then
sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=setSetpoint&Setpoint="+ ToonTemperature.state.toString)
end
rule "Switch Program state"
when Item ToonProgramAan changed
then
sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=changeSchemeState&state=" + ToonProgramAan.state.toString)
end
rule "Switch state"
when Item ToonState changed
then
sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=changeSchemeState&state=2&temperatureState=" + ToonState.state.toString)
end
Code: Select all
itemap toon label="Toon" {
Frame label="Thermostaat" icon="thermostat" {
Setpoint item=ToonTemperature label="Gewenste Temperatuur [%d °C]" icon="temperature" minValue=00 maxValue=3000 step=50
Text item=KamerTemperature label="Huidige Temperatuur [%d °C]" icon="temperature"
Selection item=ToonProgramAan label="Progamma" mappings=[0="Uit", 1="Aan"]
Selection item=ToonState label="State" mappings=[0="Comfort", 1="Thuis", 2="Slapen", 3="Weg"]
Chart item=KamerTemperature period=W refresh=300
}
}