Ich grüße euch,
Ich baue mir eine Alarmanlage und bin gerade dabei mittels Python die Alarmanlage zu programmieren trampel aber gerade auf der stelle.
Der Alarm wird mit Telegram an und ausgeschalten.
Wenn ich den Alarm anschalte und eine Tür geöffnet wurde kann ich den Alarm nicht mehr abschalten und muss das Script neu starten.
Heißt ich bekomme trotz abschalten des Alarms eine Alarmmeldung wenn eine Tür geöffnet oder geschlossen wird.
Ich möchte aber das nach dem ausschalten nichts mehr kommt solange ich den Alarm nicht wieder anschalte.
Der Rest funzt soweit.
Könnte mir jemand einen Tip geben?
Python
from gpiozero import Button
import telepot
from telepot.loop import MessageLoop
from time import asctime,sleep
Holztür=Button(17, pull_up=False)
Werkstatttür=Button(18, pull_up=False)
Bartür=Button(22, pull_up=False)
Westtür=Button(27, pull_up=False)
#Funktion für Telegramm
def handle(msg):
chat_id = msg['chat']['id'] # Receiving the message from telegram
command = msg['text'] # Getting text from the message
print ('Received:')
print(command)
#-------------------------------------------------------------------------------------
#Einbruchsmeldung bei Scharfschaltung und Telegram Nachricht + Datum und Uhrzeit !
#-------------------------------------------------------------------------------------
def Alarm_Holztür():
bot.sendMessage (chat_id, str("Alarm Holztür offen") + "\n" + asctime()) #Meldung via Telegram wenn Alarm "an" und Tür wird geöffnet
print("Alarm Holztür offen")#Feedback
def Holztür_geschlossen():
bot.sendMessage (chat_id, str("Alarm Holztür geschlossen") + "\n" + asctime())#Meldung via Telegram wenn Alarm "an" und Tür wird geschlossen
print("Alarm Holztür geschlossen")#Feedback
def Alarm_Werkstatttür():
bot.sendMessage (chat_id, str("Alarm Werkstatttür offen") + "\n" + asctime())
print("Alarm Werkstatttür offen")
def Werkstatttür_geschlossen():
bot.sendMessage (chat_id, str("Alarm Werkstatttür geschlossen") + "\n" + asctime())
print("Alarm Werkstatttür geschlossen")
def Alarm_Bartür():
bot.sendMessage (chat_id, str("Alarm Bartür offen") + "\n" + asctime())
print("Alarm Bartür offen")
def Bartür_geschlossen():
bot.sendMessage (chat_id, str("Alarm Bartür geschlossen") + "\n" + asctime())
print("Alarm Bartür geschlossen")
def Alarm_Westtür():
bot.sendMessage (chat_id, str("Alarm Westtür offen") + "\n" + asctime())
print("Alarm Westtür offen")
def Westtür_geschlossen():
bot.sendMessage (chat_id, str("Alarm Westtür geschlossen") + "\n" + asctime())
print("Alarm Westtür geschlossen")
#-----------------------------------------------------------------------------------------------------
#Rückmeldung bei Alarm "an" und eine Tür ist noch geöffnet / Reed kein kontakt !
#-----------------------------------------------------------------------------------------------------
def Holztür_offen():
bot.sendMessage (chat_id, str("Holztür schließen") + "\n" + asctime())
print("Holztür schließen")
def Werkstatttür_offen():
bot.sendMessage (chat_id, str("Werkstatttür schließen") + "\n" + asctime())
print("Werkstatttür schließen")
def Bartür_offen():
bot.sendMessage (chat_id, str("Bartür schließen") + "\n" + asctime())
print("Bartür schließen")
def Westtür_offen():
bot.sendMessage (chat_id, str("Westtür schließen") + "\n" + asctime())
print("Westtür schließen")
#-----------------------------------------------------------------------------------------------------
#Hauptprogramm !
#-----------------------------------------------------------------------------------------------------
while True:
#Alarm abschalten
if command == "/aus":
bot.sendMessage (chat_id, str("Alarm AUS") + "\n" + asctime())
print("Alarm AUS")
break
#Alarm anschalten
elif command == "/an" and Holztür.is_pressed and Werkstatttür.is_pressed and Bartür.is_pressed and Westtür.is_pressed:
bot.sendMessage (chat_id, str("Alarm AN") + "\n" + asctime())
print("Alarm AN")
Holztür.when_pressed = Holztür_geschlossen
Holztür.when_released = Alarm_Holztür
Werkstatttür.when_pressed = Werkstatttür_geschlossen
Werkstatttür.when_released = Alarm_Werkstatttür
Bartür.when_pressed = Bartür_geschlossen
Bartür.when_released = Alarm_Bartür
Westtür.when_pressed = Westtür_geschlossen
Westtür.when_released = Alarm_Westtür
break
#Rückmeldung wenn bei Alarm "an" noch eine Tür geöffnet ist
else:
if not Holztür.is_pressed:
print("Holztür schließen")
bot.sendMessage (chat_id, str("Holztür schließen") + "\n" + asctime())
if not Werkstatttür.is_pressed:
print("Werkstatttür schließen")
bot.sendMessage (chat_id, str("Werkstatttür schließen") + "\n" + asctime())
if not Bartür.is_pressed:
print("Bartür schließen")
bot.sendMessage (chat_id, str("Bartür schließen") + "\n" + asctime())
if not Westtür.is_pressed:
print("Westtür schließen")
bot.sendMessage (chat_id, str("Westtür schließen") + "\n" + asctime())
break
# Insert your telegram token below
bot = telepot.Bot('1234456789:Abcdefghijklmnopqrstuvwxyz')
print (bot.getMe())
# Start listening to the telegram bot and whenever a message is received, the handle function will be called.
MessageLoop(bot, handle).run_as_thread()
print ('Listening....')
while 1:
sleep(0.1)
Alles anzeigen