Do not repeat if a SMS error; other fixes

This commit is contained in:
root 2019-05-12 23:50:00 +02:00
parent d7f9b7ae71
commit ee8e997dff
3 changed files with 40 additions and 19 deletions

View file

@ -22,7 +22,7 @@ def main():
logfile = "/opt/sms/sms.log"
FORMAT = '%(asctime)-15s %(message)s'
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
logger = logging.getLogger('observiumsms')
logger = logging.getLogger('icingasms')
# check param
smsrcpt = os.environ.get('USERMOBILE')
@ -43,6 +43,8 @@ def main():
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))
else:

View file

@ -1,9 +1,11 @@
#!/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
def assemble_sms():
@ -13,15 +15,39 @@ def assemble_sms():
str_list.append("{}".format(os.environ.get('OBSERVIUM_DURATION')))
return ''.join(str_list)
# Setup logging
logfile = "/opt/sms/sms.log"
FORMAT = '%(asctime)-15s %(message)s'
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
logger = logging.getLogger('observiumsms')
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
# Assemble SMS
smsstring = assemble_sms()
logger.info("Sending SMS: %s", smsstring)
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
sms_functions.send_sms(, smsstring)
if __name__ == "__main__":
main()

View file

@ -24,13 +24,6 @@ class SIMError(ModemManagerError):
def __str__(self):
return repr(self.value)
def assemble_sms():
str_list = []
str_list.append("Observium {}\n".format(os.environ.get('OBSERVIUM_TITLE')))
str_list.append("{} [{}]\n".format(os.environ.get('OBSERVIUM_ENTITY_NAME'), os.environ.get('OBSERVIUM_ENTITY_DESCRIPTION')))
str_list.append("{}".format(os.environ.get('OBSERVIUM_DURATION')))
return ''.join(str_list)
def get_modem():
# Retry for 5 seconds and give the modems time
retries = 0