Do not repeat if a SMS error; other fixes
This commit is contained in:
parent
d7f9b7ae71
commit
ee8e997dff
3 changed files with 40 additions and 19 deletions
|
@ -22,7 +22,7 @@ def main():
|
||||||
logfile = "/opt/sms/sms.log"
|
logfile = "/opt/sms/sms.log"
|
||||||
FORMAT = '%(asctime)-15s %(message)s'
|
FORMAT = '%(asctime)-15s %(message)s'
|
||||||
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
||||||
logger = logging.getLogger('observiumsms')
|
logger = logging.getLogger('icingasms')
|
||||||
|
|
||||||
# check param
|
# check param
|
||||||
smsrcpt = os.environ.get('USERMOBILE')
|
smsrcpt = os.environ.get('USERMOBILE')
|
||||||
|
@ -43,6 +43,8 @@ def main():
|
||||||
try:
|
try:
|
||||||
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
||||||
sms_functions.send_sms([ smsrcpt ], smsstring)
|
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:
|
except sms_functions.ModemManagerError as err:
|
||||||
logger.error('Error when sending SMS: {0}'.format(e.value))
|
logger.error('Error when sending SMS: {0}'.format(e.value))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import time
|
||||||
import os
|
import os
|
||||||
from pydbus import SystemBus
|
from pydbus import SystemBus
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
|
from datetime import datetime
|
||||||
import sms_functions
|
import sms_functions
|
||||||
|
|
||||||
def assemble_sms():
|
def assemble_sms():
|
||||||
|
@ -13,15 +15,39 @@ def assemble_sms():
|
||||||
str_list.append("{}".format(os.environ.get('OBSERVIUM_DURATION')))
|
str_list.append("{}".format(os.environ.get('OBSERVIUM_DURATION')))
|
||||||
return ''.join(str_list)
|
return ''.join(str_list)
|
||||||
|
|
||||||
# Setup logging
|
def main():
|
||||||
logfile = "/opt/sms/sms.log"
|
# Setup logging
|
||||||
FORMAT = '%(asctime)-15s %(message)s'
|
logfile = "/opt/sms/sms.log"
|
||||||
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
FORMAT = '%(asctime)-15s %(message)s'
|
||||||
logger = logging.getLogger('observiumsms')
|
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
|
if __name__ == "__main__":
|
||||||
smsstring = assemble_sms()
|
main()
|
||||||
logger.info("Sending SMS: %s", smsstring)
|
|
||||||
|
|
||||||
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
|
||||||
sms_functions.send_sms(, smsstring)
|
|
||||||
|
|
|
@ -24,13 +24,6 @@ class SIMError(ModemManagerError):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return repr(self.value)
|
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():
|
def get_modem():
|
||||||
# Retry for 5 seconds and give the modems time
|
# Retry for 5 seconds and give the modems time
|
||||||
retries = 0
|
retries = 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue