doorstatus/source/server/watchdoor.py
2020-11-18 21:59:23 +01:00

54 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python
#coding: utf8
# file: watchdoor.py
# date: 06.09.2020
# mail: berhsi@web.de
# desc: deamon who deals with edge detection at pin 18
import logging
loglevel = logging.INFO
formatstring = '%(asctime)s: %(levelname)s: %(message)s'
logging.basicConfig(format=formatstring, level=loglevel)
import time
import RPi.GPIO as GPIO
try:
from setstatus import SetStatus
except Exception as e:
logging.error('Cant import module setstatus')
logging.error('Error: {}'.format(e))
GPIO.setmode(GPIO.BOARD) # kind of enumeration
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) # pin 18 (GPIO 24)
channel = 18
def voltage_changed(channel):
'''
callback-function
'''
if GPIO.input(channel) == GPIO.HIGH:
# door closed -> pin hight
logging.info('Pin high triggered - Space closed')
s = SetStatus()
s.run(0)
else:
# door open -> pin low
logging.info('Pin low triggered - Space is open')
s = SetStatus()
s.run(1)
def main():
'''
'''
logging.info('watchdoor.py started')
GPIO.add_event_detect(channel,
GPIO.BOTH,
callback = voltage_changed,
bouncetime = 200)
while 1:
time.sleep(0.1)
if __name__ == '__main__':
main()