#!/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()