This page is part of archived documentation for openHAB 2.5. Go to the current stable version
# AKM868 Binding v1
This binding is for users coming from the proprietary homeautomation-system "IP-Symcon". If you have bought some hardware from them, you can use this binding to enable your AKM868 presence detection system.
The following hardware was used to do presence detection with the AKM-868 controller and a OVO868-tracker for your key-ring:
# Binding Configuration
The binding can be configured in the file services/akm868.cfg
.
Property | Default | Required | Description |
---|---|---|---|
host | Yes | IP address of the adapter LAN-T 868 | |
port | 10001 | No | Port of the adapter LAN-T 868 |
timeout | Timeout in milliseconds. If the AKM-Controller does not send an update within that timeframe, the switch item is changing to OFF |
# Item Configuration
The syntax of the binding configuration strings accepted is the following:
{ akm868="id=x,channel=y" }
The id
represents the ID of your OVO-Tracker.
The channel
can be one of the following values:
channel | meaning |
---|---|
0 | notify on pings from the tracker |
1 | when the button of the tracker was pressed |
5 | when the button of the tracker was pressed longer |
# Examples
# Items
Switch PresenceMichael "Key Michael" <present> {akm868="id=9999,channel=0"}
This item would turn the Switch to ON
as soon as openHAB receives a PING from the tracker. It will turn the Switch to OFF
if the tracker doesn't send another PING within the given timeframe (timeout
value from the configuration).
Switch KeyPressedShortMichael "Key Michael" <present> {akm868="id=9999,channel=1"}
This item would turn the Switch to ON
every time the key was pressed.
Switch KeyPressedLongeMichael "Key Michael" <present> {akm868="id=9999,channel=5"}
This item would turn the Switch to ON every time the key was pressed for a longer time.
# Rules
rule "Turn off WIFI if not at Home"
when
Item PresenceMichael changed to OFF
then
logInfo("Wifi","Wifi OFF")
sendCommand(Power_Upstairs_Wifi, OFF)
end
# Limitations
You must use a LANT-868 Adapter. The USB868-Adapter doesn't work. However, if you own a USB adapter, there is a workaround utilizing the Serial binding (1.x).
Once the Serial binding is installed, following items are needed for the workaround:
String Presence_AKM_ComPort "Last String from AKM [%s]" { serial="/dev/ttyUSB1" } //check USB port is matching to your system configuration
DateTime Presence_AKM1_LastUpdate "Key 1: Last Update: [%1$td.%1$tm.%1$tY %1$tT]"
String Presence_AKM1_Action "Key 1: Last Action: [%s]"
Switch Presence_AKM "Presence AKM" <contact>
This rule handles an incoming event form the keyfob:
rule "Presence AKM Direct"
when Item Presence_AKM_ComPort received update
then
var String[] buffer= Presence_AKM_ComPort.state.toString.split(",")
// var String id = buffer.get(2) // this is the ID of the keyfob. rule could be enhanced to distinguish several keyfobs
var String action = buffer.get(3)
var String packetValid = buffer.get(4)
if (packetValid.contains("OK")) {
postUpdate(Presence_AKM1_LastUpdate, new DateTimeType())
Presence_AKM.sendCommand("ON")
switch (action) {
case '0' : Presence_AKM1_Action.sendCommand("Ping")
case '1' : Presence_AKM1_Action.sendCommand("PressedShort")
case '5' : Presence_AKM1_Action.sendCommand("PressedLong")
}
}
end
A second rule is needed to periodically check if the there was an update from the keyfob. If there was no update in the last 100 seconds, the assumption is that the fob is out of range.
rule "Presence AKM reset"
when
Time cron "0 0/1 * * * ?"
then
if (Presence_AKM.state == ON) {
var DateTimeType l_akm1 = Presence_AKM1_LastUpdate.state as DateTimeType
if ((new DateTimeType().calendar.timeInMillis - l_akm1.calendar.timeInMillis) > 100000){ // 100 sec timeout
Presence_AKM1_Action.sendCommand("Away")
Presence_AKM.sendCommand("OFF")
}
}
end