Remote lock/unlock and get status of your Kwikset Kevo locks via MQTT. Simply publish a message like:
{
"type": "lock",
"lock_id": "a95a788a-e774-4561-8fc8-2225b3dccc21"
}
lock and unlock types are supported.
A simpler message format is also supported:
UNLOCK a95a788a-e774-4561-8fc8-2225b3dccc21
The Lock status will be polled at a user-defined interval and published to the topic as well as printed to the console.
{
"lock_id": "a95a788a-e774-4561-8fc8-2225b3dccc21",
"type": "lockState",
"state": "Locked"
}
A Kevo Plus bridge is required. You can get the lock IDs manually by logging into mykevo.com, click Details for the lock, click Settings, the lock ID is on the right.
Thanks to Carl Seelye for pynello.
docker run --name kevoplus -d --restart=always -e [email protected] -e KEVO_PASSWORD=password -e KEVO_REFRESH_INTERVAL=180 -e KEVO_LOCK_ID=a95a788a-e774-4561-8fc8-2225b3dccc21 -e MQTT_TOPIC=home/kevo -e MQTT_BROKER=localhost salanki/kevo-mqtt:latest
Simply use the MQTT Binding. A custom transform/kevostate.js is required.
(function(i) {
var json = JSON.parse(i);
if (json.type == 'Locked') {
return 'ON';
} else {
return 'OFF';
}
})(input)
Switch DoorLock { mqtt=">[mybroker:home/kevo:command:ON:LOCK a95a788a-e774-4561-8fc8-2225b3dccc21],>[mybroker:home/kevo:command:OFF:UNLOCK a95a788a-e774-4561-8fc8-2225b3dccc21],<[mybroker:home/kevo:state:JS(kevostate.js):.*lockState.*" }