Advanced PIR sensors features in OpenHAB

Advanced PIR sensors features in OpenHAB

The HC-SR501 PIR sensor contains mechanical adjustement for detect range and time. But in an intelligent house, we want to be able change time how long the light will be active and change whether the light will be controlled by PIR or not. Below it's shown how to program the PIR sensor to enable this features. We assume that you already have PIR items in OpenHAB. You can use our guide how to use Arduino with HC-SR501 sensor in "Extension - Wire sensors".


In OpenHAB, create a separate file for pir sensors such as pir.items with the content below. There is a switch where the PIR feature is  activated/deactivated (Toggle Settings), as well as the lighting duration after activation (Timers). The trigger is automatically activate by the sensor itself and we will automatically turn it of after 20 seconds.

/* PIR sensors */
/*Triggers */    
Switch pir1  "PIR 1 TRIGGER"    (PIR)          {mqtt="<[mosquitto:pir:command:ON:pir1on]",expire="20s,command=OFF"}
Switch pir2  "PIR 2 TRIGGER"    (PIR)          {mqtt="<[mosquitto:pir:command:ON:pir2on]",expire="20s,command=OFF"}

/*Toggle Settings */
Switch pir1_toggle   "Svícení objektu 1 na čidlo"       (PIR)
Switch pir2_toggle   "Svícení objektu 2 na čidlo"       (PIR)
   
/*Timers*/
Number pir1_timer    "Délka sepnutí [%.0f s] pro objekt 1 "   (PIR)
Number pir2_timer    "Délka sepnutí [%.0f s] pro objekt 2 "   (PIR)

Next, create a pir.rules file with the following content in the OpenHAB rules folder. Here, we directly check if light  (e.g. Light_Gar_1) is triggered via PIR (pir1_toggle.state == ON). If yes, turn the light ON until the time (pir1_timer) and if we are still under the sensor this set time is extended.

var Timer occTimepir1 = null
var Timer occTimepir2 = null

/*PIR 1 */
rule "PIR_1"
when
    Item pir1 received update ON
then
    if(pir1_toggle.state == ON){
       sendCommand(Light_Gar_1, ON)
    if(occTimepir1 === null || occTimepir1.hasTerminated()) {        
        occTimepir1 = createTimer(now.plusSeconds((pir1_timer.state as Number).intValue), [|
            sendCommand(Light_Gar_1, OFF)
        occTimepir1 = null
        ])
    }
    else {
        occTimepir1.reschedule(now.plusSeconds((pir1_timer.state as Number).intValue))
    }
    }
end

/*PIR 2 */
rule "PIR_2"
when
    Item pir2 received update ON
then
    if(pir2_toggle.state == ON){
       sendCommand(Light_Gar_2, ON)
    if(occTimepir2 === null || occTimepir2.hasTerminated()) {        
        occTimepir2 = createTimer(now.plusSeconds((pir2_timer.state as Number).intValue), [|
            sendCommand(Light_Gar_2, OFF)
        occTimepir2 = null
        ])
    }
    else {
        occTimepir2.reschedule(now.plusSeconds((pir2_timer.state as Number).intValue))
    }
    }
end

The connection with the Astro binding at OpenHAB can be a very useful to use at home as the HC-SR501 does not contain luminescence sensor. Astro binding enable lights up only when it's astronomically dark, after sunset, or other day time. You can also use PIR sensors as alarm when nobody is in the house. Such a nice functionality for 2 €. Have a fun!

Hodnotit článek:

No votes yet

Přidat komentář:

Add comment

Best articles

Centrální tablet pro chytrý dům
Wall tablet to controll your smart homeRating: 
100%

Wall tablet or older smartphone is perfectly suited as a central indicator of the state of the home, as well as controlling it. It usually replaces the video doorbell and as example, you can play your favorite music or read recipes on it during cooking in your kitchen. In the article, we describe a functional example of such a "wall" tablet and its settings in so-called kiosk mode so, display doesn't run at night and only reacts when someone is nearby.

Jablotron and smarthome synchronization
Connecting Jablotron with OpenHABRating: 
0%

In this article we will show you how to install Jablotron binding in OpenHAB. This binding helps us to synchronize states from Jablotron alarm to OpenHAB. Typically, you can force to switch off lights, close water pipe and circulation, switch off sockets or whatever you want to do when you leave home and set alarm.

Advanced disk cloningRating: 
0%

The classic disk cloning tool in linux is the dd command. This command creates a image of disk or extracts the contents from the image to disk. The dd tool needs to be handled carefully and you need to understand its use. We'll show a more advanced technique of creating a disc image that contains unallocated space. A classic example is when I have a Raspbian operating system installed on a 250 GB disc, but there's only a tiny boot partition (e.g. sda1) and my own operating system partition (sda2) which together have 15 GB. Instead of saving a 250 GB image, I would like to save only two partitions with 15 GB, so that the image is smaller and can be expanded to 16 or 32 GB flash.

iOS OpenVPN Connection SettingsRating: 
0%

In this article you will find detailed instructions on how to connect to OpenVPN from iOS devices.

Android OpenVPN Connection SettingsRating: 
40%

In this article you will find detailed instructions on how to connect to OpenVPN on Android.

OpenVPN on MikroTik routersRating: 
100%

If you have a smart-home, NAS, etc., it's a good idea to think about safe access to your network when you are not at home. Currently I recommend commercial router like Turris or a cheaper option of MikroTik routers. In the other hand, Raspberry Pi can be used as OpenVPN server too. In this article, we will show how to set up secure access to your home network from the internet using OpenVPN on MikroTik routers.

Video intercom Doorbird in OpenHABRating: 
0%

Native support for OpenHAB is provided by video intercom by Doorbird company. The solution is powered and connected by a UTP cable and has its own IP address to make it easier for you to install at the gate. OpenHAB is then able to import images from the intercom, visit history, manage gate opening on the button and by the phone, do not disturb feature during night, alarm feature etc. In the instructions we guide you how to use OpenHAB with Doorbird D101.

Advanced PIR sensors features in OpenHABRating: 
0%

The HC-SR501 PIR sensor contains mechanical adjustement for detect range and time. But in an intelligent house, we want to be able change time how long the light will be active and change whether the light will be controlled by PIR or not. Below it's shown how to program the PIR sensor to enable this features.

Measure tank level water OpenHAB
Measuring the water volume in reservoirRating: 
100%

In this article, you can find how to solve the measuring the water level in the reservoir (e.g. rainwater reservoir). The values are converted into the volume in liters. This enables you to fill the volume tank when needed or predict any other situations.