def recordatorioTomar(e, intentMessage): global Snips if (e.user == Snips.usr): if (e.veces < 6): Reminder(e) mqttClient.publish_start_session_action( site_id=intentMessage, session_init_text=e.user + '¿ te has tomado ' + e.med + '?', session_init_intent_filter=[ "caguilary:Confirmar", "caguilary:Negar" ], session_init_can_be_enqueued=False, session_init_send_intent_not_recognized=True, custom_data=None) msg = "" print(e.user + '¿te has tomado ' + e.med + '?:Vez ' + str(e.veces)) Snips.Incrementar(e) e.IncrementarVeces() mqttClient.publish_end_session(intentMessage, msg) else: msg = e.user + 'ha ignorado el evento tomar ' + e.med say(intentMessage, msg) Snips.scheduler1.remove_job('recordando tomar ' + e.med + ' a ' + e.user) if (not e.rep): Snips.FinishEvent(e) else: Snips.NingunaVeces(e) mqttClient.publish_end_session(intentMessage, msg) else: print("Usuario actual distinto al del evento") Snips.scheduler1.remove_job('recordando tomar ' + e.med + ' a ' + e.user)
def action_wrapper_user(hermes, intentMessage, conf): global Snips user = intentMessage.slots.user.first().value if (Snips.existUser(user)): msg = "Cambio de usuario a " + user Snips.changeActiveUsers(user) Change_User(user) else: msg = "El usuario " + user + " no existe" hermes.publish_end_session(intentMessage.session_id, msg)
def action_wrapper_AnadirUsuario(hermes, intentMessage, conf): global Snips user = intentMessage.slots.user.first().value if (not Snips.existUser(user)): msg = "Añadiendo usuario " + user + ' y cambio a dicho usuario' Snips.addUser(user) Snips.changeActiveUsers(user) Add_User(user) else: msg = "El usuario " + user + " ya existe" hermes.publish_end_session(intentMessage.session_id, msg)
def action_wrapper_Confirmar(hermes, intentMessage, conf): global Snips #msg="Evento aceptado por "+e.user msg = "Evento aceptado" AceptedReminder('Voz') event = lastEventReminder() if (event): if (Snips.eventActive(event)): if (not event.rep): Snips.FinishEvent(event) else: Snips.NingunaVez(event) job = 'recordando tomar ' + event.med + ' a ' + event.user if (exist_Job(job)): Snips.scheduler1.remove_job('recordando tomar ' + event.med + ' a ' + event.user) hermes.publish_end_session(intentMessage.session_id, msg)
def run(self): while True: state = GPIO.input(self.BUTTON) if state: global Snips #msg="Evento aceptado por "+e.user msg = "Evento aceptado" AceptedReminder('Botón') event = lastEventReminder() if (event): if (Snips.eventActive(event)): if (not event.rep): Snips.FinishEvent(event) else: Snips.NingunaVez(event) job = 'recordando tomar ' + event.med + ' a ' + event.user if (self.exist_Job(job)): Snips.scheduler1.remove_job(job) say('default', msg) time.sleep(1)
def action_wrapper_Borrar(hermes, intentMessage, conf): print('Borrando evento') if (not intentMessage.slots.Repeticion): session = intentMessage.session_id fecha = intentMessage.slots.Fecha.first().value fecha = fecha[:fecha.index('+') - 1] date = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S") med = intentMessage.slots.Medicamento.first().value msg = Snips.usr + " está borrando el recordatorio para el día " + str( date.day) + " de " + str(date.month) + " del " + str( date.year) + " a las " + str(date.hour) + minutes( date.minute) + " tomar " + med #add_Reminder(med,fecha) """now=datetime.now() if((date - now).total_seconds()>0): t = Timer((date - now).total_seconds(), recordatorio,['default',med,fecha]) t.start()""" e = Event(med, date, Snips.usr, False, '') e.IncrementarVeces() print('Evento a borrar: tomar ' + str(e)) Snips.borrarEvento(e) delete_Reminder(e) job = fecha + ',' + e.med + ',' + e.user if (exist_Job(job)): Snips.scheduler.remove_job(job) job = 'recordando tomar ' + e.med + ' a ' + e.user if (exist_Job1(job)): Snips.scheduler1.remove_job(job) hermes.publish_end_session(intentMessage.session_id, msg) else: session = intentMessage.session_id if (intentMessage.slots.Fecha): fecha = intentMessage.slots.Fecha.first().value fecha = fecha[:fecha.index('+') - 1] date = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S") else: fecha = datetime.today().strftime("%Y-%m-%d %H:%M") date = datetime.strptime(fecha, "%Y-%m-%d %H:%M") med = intentMessage.slots.Medicamento.first().value if (not intentMessage.slots.cantidad): veces = 1 else: veces = int(intentMessage.slots.cantidad.first().value) if (veces != 0): frecuencia = intentMessage.slots.Repeticion.first().value if (frecuencia == 'diariamente'): msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' todos los dias empezando ' + str( fecha) e = Event(med, date, Snips.usr, True, '1 dias') e.IncrementarVeces() job = 'Repeticion diaria,' + med + ',' + Snips.usr elif (frecuencia == 'dia'): msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' cada ' + str( veces) + ' dias empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' dias') e.IncrementarVeces() job = 'Repeticion cada ' + str( veces) + ' dias,' + med + ',' + Snips.usr elif (frecuencia == 'mes'): msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' cada ' + str( veces) + ' meses empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' meses') e.IncrementarVeces() job = 'Repeticion ' + str( veces) + ' meses ,' + med + ',' + Snips.usr elif (frecuencia == 'semana'): msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' cada ' + str( veces) + ' semanas empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' semanas') e.IncrementarVeces() job = 'Repeticion' + str( veces) + ' semanas,' + med + ',' + Snips.usr elif (frecuencia == 'hora'): msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' cada ' + str( veces) + ' horas empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' horas') e.IncrementarVeces() job = 'Repeticion ' + str( veces) + ' horas,' + med + ',' + Snips.usr elif (frecuencia == 'desayuno'): #HORA-1 msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' en el desayuno' e = Event(med, date, Snips.usr, True, 'Desayuno') e.IncrementarVeces() job = 'Repeticion Desayuno' + ',' + med + ',' + Snips.usr elif (frecuencia == 'comida'): #HORA-1 msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' en la comida' e = Event(med, date, Snips.usr, True, 'Comida') e.IncrementarVeces() job = 'Repeticion Comida' + ',' + med + ',' + Snips.usr elif (frecuencia == 'cena'): #HORA-1 msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' en la cena' e = Event(med, date, Snips.usr, True, 'Cena') e.IncrementarVeces() job = 'Repeticion Cena' + ',' + med + ',' + Snips.usr else: msg = Snips.usr + " está borrando un recordatorio para tomar " + med + ' cada ' + frecuencia + ' empezando ' + str( fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' ' + frecuencia) e.IncrementarVeces() job = 'Repeticion semanal cada ' + frecuencia + ',' + med + ',' + Snips.usr Snips.borrarEvento(e) delete_Reminder(e) if (exist_Job(job)): Snips.scheduler.remove_job(job) job = 'recordando tomar ' + e.med + ' a ' + e.user if (exist_Job1(job)): Snips.scheduler1.remove_job(job) else: msg = 'No se puede crear un evento repetivo con cant igual a 0.' hermes.publish_end_session(intentMessage.session_id, msg)
def global_variables(): global Recordatorio, e, Snips Snips = Snips()
def action_wrapper_Anadir(hermes, intentMessage, conf): global Snips print(str(intentMessage.slots.Repeticion)) if (not intentMessage.slots.Repeticion): session = intentMessage.session_id fecha = intentMessage.slots.Fecha.first().value fecha = fecha[:fecha.index('+') - 1] date = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S") med = intentMessage.slots.Medicamento.first().value msg = Snips.usr + " está añadiendo un recordatorio para el día " + str( date.day) + " de " + str(date.month) + " del " + str( date.year) + " a las " + str(date.hour) + minutes( date.minute) + " tomar " + med #add_Reminder(med,fecha) """now=datetime.now() if((date - now).total_seconds()>0): t = Timer((date - now).total_seconds(), recordatorio,['default',med,fecha]) t.start()""" e = Event(med, date, Snips.usr, False, '') e.IncrementarVeces() Snips.addEvent(e) add_Reminder(e) Snips.scheduler.add_job(recordatorio, 'date', run_date=date, id=fecha + ',' + e.med + ',' + e.user, args=['default', e, False]) hermes.publish_end_session(intentMessage.session_id, msg) else: session = intentMessage.session_id if (intentMessage.slots.Fecha): fecha = intentMessage.slots.Fecha.first().value fecha = fecha[:fecha.index('+') - 1] date = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S") else: fecha = datetime.today().strftime("%Y-%m-%d %H:%M") date = datetime.strptime(fecha, "%Y-%m-%d %H:%M") med = intentMessage.slots.Medicamento.first().value if (not intentMessage.slots.cantidad): veces = 1 else: veces = int(intentMessage.slots.cantidad.first().value) if (veces != 0): frecuencia = intentMessage.slots.Repeticion.first().value if (frecuencia == 'diariamente'): msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' todos los dias empezando ' + str( fecha) e = Event(med, date, Snips.usr, True, '1 dia') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion diaria,' + med + ',' + Snips.usr, year=date.year, month=date.month, day=str(date.day) + '/1', hour=date.hour, minute=date.minute, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'dia'): msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str( veces) + ' dias empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' dia') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion cada ' + str(veces) + ' dias,' + med + ',' + Snips.usr, year=date.year, month=date.month, day=str(date.day) + '/' + str(veces), hour=date.hour, minute=date.minute, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'mes'): msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str( veces) + ' meses empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' mes') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion ' + str(veces) + ' meses ,' + med + ',' + Snips.usr, year=date.year, month=str(date.month) + '/' + str(veces), day=date.day, hour=date.hour, minute=date.minute, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'semana'): msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str( veces) + ' semanas empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' semana') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion' + str(veces) + ' semanas,' + med + ',' + Snips.usr, year=date.year, month=date.month, day=str(date.day) + '/' + str(7 * veces), hour=date.hour, minute=date.minute, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'hora'): msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str( veces) + ' horas empezando ' + str(fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' hora') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion ' + str(veces) + ' horas,' + med + ',' + Snips.usr, year=date.year, month=date.month, day=date.day, hour=str(date.hour) + '/' + str(veces), minute=date.minute, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'desayuno'): #HORA-1 msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' en el desayuno' e = Event(med, date, Snips.usr, True, 'Desayuno') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion Desayuno' + ',' + med + ',' + Snips.usr, year=date.year, month=date.month, day=date.day, hour='8/1', minute=0, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'comida'): #HORA-1 msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' en la comida' e = Event(med, date, Snips.usr, True, 'Comida') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion Comida' + ',' + med + ',' + Snips.usr, year=date.year, month=date.month, day=date.day, hour='13/1', minute=0, replace_existing=True, args=['default', e, True]) elif (frecuencia == 'cena'): #HORA-1 msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' en la cena' e = Event(med, date, Snips.usr, True, 'Cena') e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion Cena' + ',' + med + ',' + Snips.usr, year=date.year, month=date.month, day=date.day, hour='20/1', minute=0, replace_existing=True, args=['default', e, True]) else: msg = Snips.usr + " está añadiendo un recordatorio para tomar " + med + ' cada ' + frecuencia + ' empezando ' + str( fecha) e = Event(med, date, Snips.usr, True, str(veces) + ' ' + frecuencia) e.IncrementarVeces() Snips.scheduler.add_job(recordatorio, 'cron', id='Repeticion semanal cada ' + frecuencia + ',' + med + ',' + Snips.usr, day_of_week=dia_sem(frecuencia), year=date.year, month=date.month, day=date.day, hour=date.hour, minute=date.minute, replace_existing=True, args=['default', e, True]) Snips.addEvent(e) add_Reminder(e) else: msg = 'No se puede crear un evento repetivo con cant igual a 0.' hermes.publish_end_session(intentMessage.session_id, msg)