====== Examples for OpenHAB ======
At this page we collect example configurations for the OpenHAB integration of smarthomatic devices.
using the [[https://github.com/mcjobo/openhab/wiki/Smarthomatic-Binding|Smarthomatic-Binding]] published at Github. Some [[https://github.com/Roadyweb/openhab_myconfig|example configurations]] can be found there as well.
====== Item definitions ======
An EnvSensor with Temperature + Humidity message:
Number Temp1 "Temperature1 [%.1f °C]" (gTemperature) {smarthomatic="<[deviceId=123, messageGroupId=10, messageId=2, messagePart=1:JS(getDiv100.js)]"}
Number Humi1 "Humidity1 [%.0f]" (gHumidity) {smarthomatic="<[deviceId=2, messageGroupId=10, messageId=2, messagePart=0:JS(getDiv10.js)]"}
A battery status message:
Number Batt1 "Battery1 [%.0f]" (gBattery) {smarthomatic="<[deviceId=123, messageGroupId=0, messageId=5]"}
Two switches connected to a GPIO pins and mapped to DigitalInputPin 0 and 1 in e2p :
Switch Switch1 "Switch1" (gSwitch) {smarthomatic="<[deviceId=123, messageGroupId=1, messageId=1, messagePart=0]"}
Switch Switch1 "Switch1" (gSwitch) {smarthomatic="<[deviceId=123, messageGroupId=1, messageId=1, messagePart=1]"}
====== A flood detection sensor ======
Based on the EnvSensor the short between a GPIO-PIN and GND or a special switch can be used as a water detection sensor.
The item definition on OpenHAB (the contacts are mapped to the third DigitalInputPin in e2p):
Switch Water_Basement "Water sensor basement [MAP(water.map):%s]" (gBasement,gSensorWater,gSensor) {smarthomatic="<[deviceId=123, messageGroupId=1, messageId=1, messagePart=2]"}
The water.map file:
ON=dry
OFF=wet
-=??
The rule to send a mail if a short between the pins is connected:
val String mailTo = mymail@server.com
rule "water detection"
when
Item gSensorWater received update
then
// check for any water detection sensors in the house that are activated (OFF state = closed = wet)
if (! gSensorWater.allMembers.filter([state == OFF]).empty) {
logInfo("sensor.rules", "Water alarm tripped by short detection sensor!")
Alarm_Water.postUpdate(ON)
}
end
rule "water alarm"
when
Item Alarm_Water received update ON
then
report = gSensorWater.allMembers.map[name + ": " + state].join("\n")
val message = "A water sensor was activated!!! \n\nsensor status:\n" + report + "\n\n regards, OpenHab"
sendMail(mailTo, "WATER ALARM!!", message )
end