def main(): print("Iniciando modem...") logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.smsTextMode = False modem.connect(PIN) sms=text() modem.sendSms('649886178',sms )
def run(self): # initialize modem modem = GsmModem(self._modem_device, self._modem_baud, smsReceivedCallbackFunc=self._handleSms) modem.connect(self._modem_pin) # try to sycn clock with GSM network time self.set_clock_from_network(modem) # handle SMS self._pon_requested = False modem.smsTextMode = False modem.processStoredSms() # wait for completion try: modem.rxThread.join(1) finally: modem.close() # handle asynchronous sms request if self._pon_requested: self._pon_requested = False self.setup_connection()
def main(): # sendsms("+972549766158", "Hello") print('Initializing modem...') # Uncomment the following line to see what the modem is doing: # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) # modem = GsmModem(PORT) # modem.connect() # modem.smsc = "+972586279099" # modem.sendSms("+972549766158", "before") # modem.close() numOfSeats = 4 message = "זוהי הודעה מגבאי בית הכנסת : נשמח אם תוכל להחזיר הודעה עם מספר המושבים הפנויים שמוקצים לך ולמשפחתך בשבת הקרובה." + "\nמקסימום: " + str( numOfSeats) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) # modem.smsc = "+972586279099" #golan telecom modem.smsc = "+972521100059" #cellcom # modem.sendSms("+972549766158", "שלום מדבר אמיתי מלכה תוכל להגיב לי בבקשה?") modem.sendSms("+972587766185", message) # modem.smsc = "+972586279099" print('Waiting for SMS message...') try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def main(): print("Iniciando modem...") logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.smsTextMode = True modem.connect(PIN) modem.sendSms('638070483', text())
def main(): global modem global phonebook config.read('config.ini') # Create the phonebook tmpPhonebook = config.items('phonebook') for row in tmpPhonebook: phonebook[row[0]] = row[1] # Initialize the modem print('Initializing modem...') modem = GsmModem(config.get('modem', 'port'), config.getint('modem', 'baudrate'), smsReceivedCallbackFunc=on_gsm_handleSms) modem.smsTextMode = True # Connect to the modem try: modem.connect(config.get('modem', 'pin')) except PinRequiredError: print('Pin required') sys.exit(1) except IncorrectPinError: print('Wrong pin') sys.exit(1) # Print information about modem and network print(u'Connected to modem: {0} {1}'.format(modem.manufacturer, modem.model)) print(u'Connected to network: {0}'.format(modem.networkName)) print(u'Signal strenght: {0}'.format(str(modem.signalStrength))) print('Ready!') print('===') # Make sure to empty incoming sms bucket modem.processStoredSms() # Initialize MQTT client.on_connect = on_mqtt_connect client.on_message = on_mqtt_message client.username_pw_set(config.get('mqtt', 'user'), config.get('mqtt', 'pass')) client.connect(config.get('mqtt', 'server'), config.getint('mqtt', 'port'), 60) client.loop_start() # Keep running forever try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def main(): # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) try: modem.rxThread.join(2**31) finally: modem.close()
def main(): print("Iniciando modem...") logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.smsTextMode = False modem.connect(PIN) sms = text() modem.sendSms('649886178', sms)
def listen(): global gsm jeedom_socket.open() logging.debug("Start listening...") try: logging.debug("Connecting to GSM Modem...") gsm = GsmModem(_device, int(_serial_rate), smsReceivedCallbackFunc=handleSms) if _text_mode == 'yes': logging.debug("Text mode true") gsm.smsTextMode = True else: logging.debug("Text mode false") gsm.smsTextMode = False if _pin != 'None': logging.debug("Enter pin code : " + _pin) gsm.connect(_pin) else: gsm.connect() if _smsc != 'None': logging.debug("Configure smsc : " + _smsc) gsm.write('AT+CSCA="{0}"'.format(_smsc)) logging.debug("Waiting for network...") gsm.waitForNetworkCoverage() logging.debug("Ok") try: jeedom_com.send_change_immediate({ 'number': 'network_name', 'message': str(gsm.networkName) }) except Exception, e: if str(e).find('object has no attribute') <> -1: pass logging.error("Exception: %s" % str(e)) try: gsm.write('AT+CPMS="ME","ME","ME"') gsm.write('AT+CMGD=1,4') except Exception, e: if str(e).find('object has no attribute') <> -1: pass logging.error("Exception: %s" % str(e))
def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) print('Waiting for SMS message...') try: modem.rxThread.join(2**10) finally: modem.close()
def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) print('Waiting for SMS message...') try: modem.rxThread.join(2**31) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close();
def main(): print('Initializing modem...') modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=sms_catcher, incomingCallCallbackFunc=call_catcher) modem.smsTextMode = False modem.connect() print('Waiting for SMS or Call...') try: modem.rxThread.join() finally: modem.close()
def listen(): global gsm jeedom_socket.open() logging.debug("Start listening...") try: logging.debug("Connecting to GSM Modem...") gsm = GsmModem(_device, int(_serial_rate), smsReceivedCallbackFunc=handleSms) if _text_mode == 'yes' : logging.debug("Text mode true") gsm.smsTextMode = True else : logging.debug("Text mode false") gsm.smsTextMode = False if _pin != 'None': logging.debug("Enter pin code : "+_pin) gsm.connect(_pin) else : gsm.connect() if _smsc != 'None' : logging.debug("Configure smsc : "+_smsc) gsm.write('AT+CSCA="{0}"'.format(_smsc)) logging.debug("Waiting for network...") gsm.waitForNetworkCoverage() logging.debug("Ok") try: jeedom_com.send_change_immediate({'number' : 'network_name', 'message' : str(gsm.networkName) }); except Exception, e: if str(e).find('object has no attribute') <> -1: pass logging.error("Exception: %s" % str(e)) try: gsm.write('AT+CPMS="ME","ME","ME"') gsm.write('AT+CMGD=1,4') except Exception, e: if str(e).find('object has no attribute') <> -1: pass logging.error("Exception: %s" % str(e))
def main(): print('Initializing modem...') modem = GsmModem(PORT, SPEED) modem.smsTextMode = False modem.connect(PIN) try: number_request = '+79372219943' #number_request = '+79179812832' #number_request = '+79272294597' message = "/00000 INS OUTS" modem.sendSms(number_request, message) #modem.status() finally: modem.close()
def runModem(): print('Initializing modem...') #logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) modem.deleteMultipleStoredSms() #modem.sendSms('+44740000000','asdsdefed',False) print('Waiting for SMS message...') try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def main(): logging.basicConfig(format="%(levelname)s: %(message)s", level=logging.INFO) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) try: if modem.ownNumber: print("Modem phone number:", modem.ownNumber) print("IMSI:", modem.imsi) print("IMEI:", modem.imei) modem.processStoredSms() while True: print("--- Network: {0} / Signal: {1} ---".format( modem.networkName, modem.signalStrength)) modem.rxThread.join(60 * 60) finally: modem.close()
def send_sms_alert(): if SMS_ALERTS_ENABLED: # Configuring the Modem Connection modem_port = '/dev/ttyUSB0' modem_baudrate = 115200 modem_sim_pin = None # SIM card PIN (if any) # Establishing a Connection to the SMS Modem logger.debug("Initializing connection to modem...") modem = GsmModem(modem_port, modem_baudrate) modem.smsTextMode = False if modem_sim_pin: modem.connect(modem_sim_pin) else: modem.connect() # Continuously dispatches SMS alerts to a list of designated recipients while True: sms_alert_status = sms_alert_queue.get() sms_alert_timestamp = sms_alert_queue.get() if sms_alert_status == "Gunshot Detected": try: # At this point in execution, an attempt to send an SMS alert to local authorities will be made modem.waitForNetworkCoverage(timeout = NETWORK_COVERAGE_TIMEOUT) for number in DESIGNATED_ALERT_RECIPIENTS: modem.sendSms(number, ALERT_MESSAGE + sms_alert_timestamp) logger.debug(" *** Sent out an SMS alert to all designated recipients *** ") except: logger.debug("ERROR: Unable to successfully send an SMS alert to the designated recipients.") pass finally: logger.debug(" ** Finished evaluating an audio sample with the model ** ") else: while True: sms_alert_status = sms_alert_queue.get() sms_alert_timestamp = sms_alert_queue.get() if sms_alert_status == "Gunshot Detected": logger.debug(ALERT_MESSAGE + sms_alert_timestamp)
def main(): print('[%s] Initializing modem...' % datetime.datetime.now()) # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) print('[%s] Initialized modem!' % datetime.datetime.now()) print('[%s] Sending Message...' % datetime.datetime.now()) cellnum = raw_input("Please Enter your phone number:") text = raw_input("Please Enter your text message:") print('Type:', type(text)) modem.sendSms(cellnum, unicode(text, 'gbk')) print('[%s] Waiting for SMS message...' % datetime.datetime.now()) try: modem.rxThread.join(2 ** 31) # Specify a (huge) timeout so that it essentially blocks indefinitely, # but still receives CTRL+C interrupt signal finally: modem.close()
def listen_for_sms(): global modem global correct_format # print('Initializing modem...') # Uncomment the following line to see what the modem is doing: # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect() first_text = BOX + ' Restart: Waiting for credentials | cmcibm,<BROKER>,<PORT>,<USERNAME>,<PASSWORD>' #load_dest() sentmsg = modem.sendSms(DESTINATION, first_text) print('Waiting for SMS message') try: modem.rxThread.join(TIMEOUT) finally: print('Closing modem') to_print = load_mqtt() if correct_format == 1: #print("the format is correct and equal to") # to_print = load_mqtt() print(change_required) print(correct_format) print(to_print[0]) print(to_print[1]) print(to_print[2]) print(to_print[3]) else: #print("the format is NOT correct and equal to") print(change_required) print(correct_format) print('') print('') print('') print('') modem.close()
from gsmmodem.modem import GsmModem def print_sms(sms): print dir(sms) def handleSms(sms): print dir(sms) PORT = '/dev/ttyUSB2' modem = GsmModem(PORT, 9600, smsReceivedCallbackFunc=handleSms) # modem = GsmModem(PORT, 9600) modem.smsTextMode = True modem.connect(5910) modem.sendSms('+59172038768', 'sadfadfsfd') print modem.imei print modem.networkName # def lineStartingWith(string, lines): # """ Searches through the specified list of strings and returns the # first line starting with the specified search string, or None if not found # """ # for line in lines: # if line.startswith(string): # return line # else: # return None # modem.write('AT+CMGS="{0}"'.format('+59172038768'), timeout=3, expectedResponseTermSeq='> ')
unit = sys.argv[1] device = sys.argv[2] message = "Message" BAUDRATE = 115200 logging.basicConfig(filename="logs/" + unit + ".log", level = logging.DEBUG, format='%(asctime)s %(levelname)s: %(message)s'); # logging.info("Use file %s", file) # logging.info("Use dev %s", device) logging.info("Initializing modem...") modem = GsmModem(device, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = True modem.connect() logging.info("Waiting for network coverage...") modem.waitForNetworkCoverage(30) with open( 'data/' + unit + '.csv', 'rU' ) as csvfile: thisList = csv.reader(csvfile, delimiter=',', quotechar='"') head = next(thisList) totalrows = 0 for row in thisList: totalrows += 1 phone = '0' + str(row[0]) logging.info("%s Send to %s", totalrows, phone) try:
unit = str(sys.argv[1]) device = str(sys.argv[2]) cardcode = str(sys.argv[3]) BAUDRATE = 115200 LOADCODE = '1510' logging.basicConfig(filename="logs/" + unit + ".log", level = logging.DEBUG, format='%(asctime)s %(levelname)s: %(message)s'); # logging.info("Use file %s", file) # logging.info("Use dev %s", device) logging.info("Initializing modem...") modem = GsmModem(device, BAUDRATE) modem.smsTextMode = False modem.connect() logging.info("Waiting for network coverage...") modem.waitForNetworkCoverage(30) logging.info("Loading %s with %s", unit, cardcode) call = modem.dial( LOADCODE + cardcode) wasAnswered = False while call.active: if call.answered: wasAnswered = True logging.info("Call answered") time.sleep(10.0)
cardcode = str(sys.argv[3]) BAUDRATE = 115200 LOADCODE = '1510' logging.basicConfig(filename="logs/" + unit + ".log", level=logging.DEBUG, format='%(asctime)s %(levelname)s: %(message)s') # logging.info("Use file %s", file) # logging.info("Use dev %s", device) logging.info("Initializing modem...") modem = GsmModem(device, BAUDRATE) modem.smsTextMode = False modem.connect() logging.info("Waiting for network coverage...") modem.waitForNetworkCoverage(30) logging.info("Loading %s with %s", unit, cardcode) call = modem.dial(LOADCODE + cardcode) wasAnswered = False while call.active: if call.answered: wasAnswered = True logging.info("Call answered") time.sleep(10.0)
def start(self): """ Samotne jadro daemona: setupneme GmailAPI, setupneme GSM modem a zacneme provadet nekonecnou smycku """ self.running = True # (0) SETUP VIRTUAL SERIAL PORT FOR MODEM if "virtualPortInitCommand" in myconfig['modem']: try: virtualSerialPortInstance = virtualSerialPort(myconfig['modem']['virtualPortInitCommand']) virtualSerialPortInstance.start() except: pass else: virtualSerialPortInstance = None # (1) SETUP GMAIL ACCESS logging.info('Initializing GMAIL access...') try: gmailService = gmailUtils.get_service(self.cwd) except RuntimeError as e: print(str(e)) logging.critical(str(e)) if (virtualSerialPortInstance is not None): virtualSerialPortInstance.stop() #sys.exit(1) self.stop() ###################################################################################################################################################### # (2) SETUP GSM MODEM + bind a "smsReceived" callback + poll gmail inbox logging.info('Initializing GSM modem on {0} port @ {1} speed...'.format(myconfig['modem']['port'], myconfig['modem']['baudrate'])) modem = GsmModem(myconfig['modem']['port'], myconfig['modem']['baudrate'], smsReceivedCallbackFunc=self.incomingSmsHandler) modem.smsTextMode = False while self.running: # start of gsm init loop try: modem.connect(myconfig['modem']['pin']) except serial.SerialException: logging.error('Error: Cannot connect to modem on serial port %s @ %s. Trying again in %d sec...' % (myconfig['modem']['port'], myconfig['modem']['baudrate'], myconfig['modem']['errorRetryWaitTime'])) time.sleep(myconfig['modem']['errorRetryWaitTime']) except TimeoutException: logging.error('Error: Serial device %s @ %s timeout. Trying again in %d sec...' % (myconfig['modem']['port'], myconfig['modem']['baudrate'], myconfig['modem']['errorRetryWaitTime'])) time.sleep(myconfig['modem']['errorRetryWaitTime']) except PinRequiredError: # Fatal error logging.critical('Error: SIM card PIN required. Please provide PIN in the config file.') self.stop() return 1 except IncorrectPinError: # Fatal error logging.critical('Error: Incorrect SIM card PIN entered!') self.stop() return 1 else: logging.info('Modem connected.') try: logging.info('Checking for network coverage...') modem.waitForNetworkCoverage(8) # of seconds except TimeoutException: logging.warning('We can now start gmail inbox polling infinite loop.') print('Network signal strength is not sufficient, please adjust modem position/antenna and try again.') modem.close() else: logging.info('GSM modem is ready.') logging.info('We are now handling all incoming SMS messages.') try: if (myconfig['incomingSmsHandlerSetup']['processStoredSms'] == "all"): modem.processStoredSms(unreadOnly=False) elif (myconfig['incomingSmsHandlerSetup']['processStoredSms'] == "unread"): modem.processStoredSms(unreadOnly=True) except Exception as e: logging.critical("Nastal problem pri zpracovani drivejsich neprectenych SMS:") raise sys.exit(0) else: logging.info('We can now start gmail inbox polling infinite loop.') try: while self.running: # start of main gmail loop logging.debug('Checking incoming emails...') newMessagesCount = self.incomingGmailHandler(gmailService, modem) time.sleep(myconfig['general']['gmailQueueWaitingPeriod'] if newMessagesCount > 0 else myconfig['general']['gmailPollingInterval']) # end of main gmail loop except KeyboardInterrupt: #sys.exit(0) self.stop() return 0 except Exception as e: print("Nastala vyjimka v hlavni smycce daemona, viz log.") logging.exception("Nastal problem v hlavni smycce:") raise finally: print("Bye gmail loop.") finally: print("Bye stored sms handling try-cache.") finally: print("Bye.") modem.close() if (virtualSerialPortInstance is not None): virtualSerialPortInstance.stop() finally: print("end of gsm init loop") # end of gsm init loop # normally we won't reach this place, but when a non-fatal error happens # (like 'No modem found', 'No GSM signal', etc.), we can continue the loop to # try it again in the new iteration of the main loop # TODO - move kill socat here. Move socat init to try finally ###################################################################################################################################################### return 0 # just for make sure, the program should never end up on this line