Created
February 26, 2018 11:53
-
-
Save hendrikhofstadt/fb72709ff5eb470c43c2d5ba509e7365 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import RPi.GPIO as GPIO | |
import os | |
import picamera | |
from telethon import TelegramClient | |
# Pin an dem der Bewegungsmelder angeschlossen ist | |
sensor_port = 12 | |
# Empfänger der Alarme (Telegram Nutzername) | |
alarm_recipient = "" | |
# Telegram aufsetzen | |
api_id = 0 | |
api_hash = '' | |
# Client erstellen | |
client = TelegramClient('alarmanlage', api_id, api_hash) | |
client.start() | |
# Kamera vorbereiten | |
camera = picamera.PiCamera() | |
def alarm(): | |
# Alarm versenden | |
client.send_message(alarm_recipient, 'Hallo. Eben wurde der Alarm ausgelöst. Du erhältst gleich ein Video!') | |
# Aufnahme starten | |
camera.start_recording('beweis.h264') | |
# Solange der Bewegunsmelder ausloest soll aufgenommen werden | |
# Die reine Auslösezeit kann an dem Potentiometer am Melder geändert werden | |
while GPIO.input(sensor_port) != 0: | |
time.sleep(1) | |
# alternativ camera.wait_recording(1) | |
# Aufnahme beenden | |
camera.stop_recording() | |
# Beweis umbenennen | |
os.system("MP4Box -fps 30 -add beweis.h264 -new beweis.mp4") | |
# Unkonvertierten Beweis löschen | |
os.remove("beweis.h264") | |
# Beweis versenden | |
client.send_file(alarm_recipient, 'beweis.mp4') | |
# Alarm beenden | |
client.send_message(alarm_recipient, 'Hallo Hendrik. Der Alarm wurde soeben beendet. Siehe Video ^|^') | |
# Setze Modus für Portzuweisung (siehe https://goo.gl/KnfQsT) | |
GPIO.setmode(GPIO.BOARD) | |
# IO Pin fuer Bewegungsmelder als Input konfigurieren | |
GPIO.setup(sensor_port, GPIO.IN) | |
while True: | |
if GPIO.input(sensor_port) == 0: | |
# Kein Alarm | |
time.sleep(1) | |
else: | |
# Alarm | |
alarm() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment