HCPBridgeESP32/tools/opendooralert/opendooralert.py

59 lines
1.6 KiB
Python

import requests
import time
from pushnotifier import PushNotifier as pn
# replace with your device ip
url="http://192.168.178.35/status"
#create account on https://pushnotifier.de/notifications
api_key = "add your api key"
username = 'add your username'
password = 'add your password'
package = 'add your package'
alerttime = 15 # alle 15 Minuten
intervall = 5 # alle 5 Minuten
openstarttime = -1;
def sendAlert(message):
session = pn.PushNotifier(username, password, package, api_key)
session.send_text(message, silent=False, devices=session.get_all_devices())
def millis():
return round(time.time() * 1000)
def handleOpenDoor():
global openstarttime
if openstarttime == -1:
openstarttime = millis()
if openstarttime+ alerttime*60*1000 < millis():
sendAlert('Deine Garage ist offen!')
openstarttime = millis()
def handleCloseDoor():
global openstarttime
if openstarttime > -1:
sendAlert('Deine Garage wurde geschlossen')
openstarttime = -1;
while True:
print("get status...")
try:
r = requests.get(url)
if r.status_code < 400:
status = r.json()
if status["valid"]:
if status["doorstate"] != 0x40:
handleOpenDoor()
else:
handleCloseDoor()
else:
print("Status is invalid")
else:
print("invalid response code "+ r.status_code)
except requests.exceptions.RequestException as e:
print("error: " + e)
time.sleep(intervall*60)