Time to cook: 120min
Difficulty: +++++
In a previous recipe we retrofitted our garage door. In this recipe we will cover the keylock Application. Using Node Red, we are going to build a virtual keylock, simulating the exact behavior of it’s physical version. A user can enter a code from 4 upto 8 digits within a certain timeframe. If the code entered matches the programmed code, the keylock will control a dry-contact for a few seconds, which is used as a trigger to open or close the garage door.
Ingredients
Node-red-contrib-ui-led
Node-red-dashboard
Prerequisites
Cook recipe Retrofit the garage door
Cook recipe Installing Node-RED
Tools
The Building plan
The following flow shows how you can build a Virtual keylock using Node-Red.
For this Node-Red flow you need the following nodes installed:
Node-red-contrib-ui-led
Node-red-dashboard
The virtual keyboard is made out of 12 template dashboard nodes. Each representing a number or function.
The template widget can contain any valid html and Angular/Angular-Material directives. This node can be used to create a dynamic user interface element that changes its appearance based on the input message and can send back messages to Node-RED.
For example for number 1:
<md-button class="vibrate filled touched bigfont rounded" style="background-color:#2980b9" ng-click="send({payload: '1'})"> 1 </md-button>
The configuration of the node looks as follows:
The output of the template dashboard nodes are collected on a Join node which sequences the messages into a single message within a certain time span. I used 3 seconds in this example.
A function node is then used to compare the message with a pre-defined code.
In case it matches, it sends a payload “ON”. A delay node is used to reset the payload to ‘OFF”. This simulates a pulse which we will use to open or close the garage door. A UI-LED dashboard node shows the pulse state.
Now we can wire everything together.
An OpenHab node is used to control the smart implant. An on/off command is issued with a 2 sec delay to simulate a pulse on one of the 2 dry contacts available on the Smart implant. This dry-contact is physically connected to the door switch contact of my garage door controller.
We use the openhab2-out node which is installed by default when we install Node-red on top of OpenHab on the Raspberry-Pi.
- Configure the controller as follows:
For ItemName, select the switch_binary item from your Zwave Smart Implant.
Select ItemCommand as msg.topic
The complete node-red flow for this recipe can be downloaded here
Comentarii