Send push notifications
This commit is contained in:
parent
8ee47e36e3
commit
2118ab0d6a
30
garage.py
30
garage.py
|
@ -1,4 +1,5 @@
|
||||||
import json
|
import json
|
||||||
|
import requests
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
|
@ -8,19 +9,19 @@ from signal import signal
|
||||||
from signal import SIGTERM
|
from signal import SIGTERM
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
|
|
||||||
state = {"east-door": "opened", "west-door": "opened"}
|
|
||||||
threadLock = Lock()
|
threadLock = Lock()
|
||||||
stateFile = 'www/garage.json'
|
stateFile = 'www/garage.json'
|
||||||
|
state = {'east-door': 'opened', 'west-door': 'opened'}
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
config = ConfigParser()
|
config = ConfigParser()
|
||||||
config.read('garage.cfg')
|
config.read('garage.cfg')
|
||||||
eastPin = config['garage'].getint('east-pin')
|
eastPin = config['garage'].getint('east-pin')
|
||||||
westPin = config['garage'].getint('west-pin')
|
westPin = config['garage'].getint('west-pin')
|
||||||
# eastUri = config['push'].getint('east-uri')
|
ntfy = config['push'].get('ntfy')
|
||||||
# westUri = config['push'].getint('west-uri')
|
topic = config['push'].get('topic')
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
persistState()
|
persistState()
|
||||||
|
|
||||||
eastButton = Button(eastPin)
|
eastButton = Button(eastPin)
|
||||||
|
@ -36,26 +37,30 @@ def main():
|
||||||
|
|
||||||
def eastDoorOpened():
|
def eastDoorOpened():
|
||||||
with threadLock:
|
with threadLock:
|
||||||
state["east-door"] = "opened"
|
state['east-door'] = 'opened'
|
||||||
persistState()
|
persistState()
|
||||||
|
sendNotification()
|
||||||
|
|
||||||
|
|
||||||
def eastDoorClosed():
|
def eastDoorClosed():
|
||||||
with threadLock:
|
with threadLock:
|
||||||
state["east-door"] = "closed"
|
state['east-door'] = 'closed'
|
||||||
persistState()
|
persistState()
|
||||||
|
sendNotification()
|
||||||
|
|
||||||
|
|
||||||
def westDoorOpened():
|
def westDoorOpened():
|
||||||
with threadLock:
|
with threadLock:
|
||||||
state["west-door"] = "opened"
|
state['west-door'] = 'opened'
|
||||||
persistState()
|
persistState()
|
||||||
|
sendNotification()
|
||||||
|
|
||||||
|
|
||||||
def westDoorClosed():
|
def westDoorClosed():
|
||||||
with threadLock:
|
with threadLock:
|
||||||
state["west-door"] = "closed"
|
state['west-door'] = 'closed'
|
||||||
persistState()
|
persistState()
|
||||||
|
sendNotification()
|
||||||
|
|
||||||
|
|
||||||
def persistState():
|
def persistState():
|
||||||
|
@ -63,5 +68,12 @@ def persistState():
|
||||||
json.dump(state, file)
|
json.dump(state, file)
|
||||||
|
|
||||||
|
|
||||||
|
def sendNotification():
|
||||||
|
requests.post(
|
||||||
|
url=f'https://{ntfy}/{topic}',
|
||||||
|
data='update'.encode(encoding='utf-8')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[garage]
|
[garage]
|
||||||
east-pin=1
|
east-pin=1
|
||||||
west-pin=1
|
west-pin=2
|
||||||
|
|
||||||
[push]
|
[push]
|
||||||
east-uri=uri
|
ntfy=ntfy.sh
|
||||||
west-uri=uri
|
topic=topic
|
||||||
|
|
Loading…
Reference in New Issue