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