esp_mqtt/scripts/script.pir

73 wiersze
1.6 KiB
Plaintext
Czysty Zwykły widok Historia

2017-08-22 19:46:45 +00:00
%
% Demo script for an ESP-01 module with a PIR (movement) sensor connected to GPIO 2.
% An indicator LED is connected to GPIO 0.
% The sensor connects to the Sonoff switch modul running the esp_uMQTT_broker.
%
% Config params, overwrite any previous settings from the commandline
% No AP, no broker
config ap_on 0
config broker_access 0
config ssid MQTTbroker
config password stupidPassword
% Give us a time
config ntp_server 1.de.pool.ntp.org
% Connect to the broker on the Sonoff
config mqtt_host 192.168.178.32
config mqtt_user Martin
config mqtt_password secret
config speed 160
% Now the initialization, this is done once after booting
on init
do
println "Starting the PIR script"
2017-08-24 19:48:58 +00:00
% Device number ("* 1" to make even "" a number)
setvar $device_number = @1 * 1
% Read delay constanst in secs from flash @2
2018-05-15 14:36:10 +00:00
setvar $delay = @2 * 1
2017-08-24 19:48:58 +00:00
if $delay = 0 then
% Write default
2018-05-15 14:36:10 +00:00
setvar $delay = 10
setvar @2 = $delay
2017-08-24 19:48:58 +00:00
endif
2017-08-22 19:46:45 +00:00
% Status of the PIR
setvar $pir_status=0
gpio_out 0 $pir_status
% Command topic of the switch
setvar $command_topic="/martinshome/switch/1/command"
% Status topic
setvar $status_topic="/martinshome/pir/" | $device_number | "/status"
% Now the events, checked whenever something happens
% The PIR
on gpio_interrupt 2 pullup
do
println "New state GPIO 2: " | $this_gpio
setvar $pir_status = $this_gpio
gpio_out 0 $pir_status
publish remote $status_topic $pir_status retained
if $pir_status = 1 then
publish remote $command_topic "on"
endif
settimer 1 $delay*1000
% Turn off again if nothing happens
on timer 1
do
if $pir_status = 0 then
publish remote $command_topic "off"
endif