48 lines
1.3 KiB
Python
Executable File
48 lines
1.3 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import logging
|
|
import time
|
|
import os
|
|
from pydbus import SystemBus
|
|
from gi.repository import GLib
|
|
from datetime import datetime
|
|
import sms_functions
|
|
from observium_func import assemble_sms
|
|
|
|
def main():
|
|
# Setup logging
|
|
logfile = "/opt/sms/sms.log"
|
|
FORMAT = '%(asctime)-15s %(message)s'
|
|
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
|
logger = logging.getLogger('observiumsms')
|
|
|
|
# check param
|
|
smsrcpt = os.environ.get('USERMOBILE')
|
|
if not smsrcpt:
|
|
logger.error('No SMS number given')
|
|
raise Exception('No SMS number given for message')
|
|
|
|
# Assemble SMS
|
|
smsstring = assemble_sms()
|
|
logger.info("Sending SMS: %s", smsstring)
|
|
|
|
success = False
|
|
retries = 0
|
|
max_retries = 3
|
|
|
|
while not success and retries < max_retries:
|
|
retries += 1
|
|
try:
|
|
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
|
sms_functions.send_sms([ smsrcpt ], smsstring)
|
|
except sms_functions.SIMError as err:
|
|
logger.exception('SIM Error when sending SMS')
|
|
except sms_functions.ModemManagerError as err:
|
|
logger.error('Error when sending SMS: {0}'.format(e.value))
|
|
time.sleep(6)
|
|
else:
|
|
success = True
|
|
|
|
if __name__ == "__main__":
|
|
main()
|