Exemplo n.º 1
0
def controlador_accion_Confirmar(hermes, MensajeIntent, conf):
    global Snips
    Snips.log(None, Snips.usuario, 'Voz', 'Evento aceptado', '')
    evento = ultimoEventoRecordatorioPorUsuario()
    print(evento.__str__())
    if (evento):
        if (Snips.EventoActivo(evento)):
            mensaje = 'Aceptando ' + evento.__str__()
            if (not evento.rep):
                Snips.EventoFinalizado(evento)
                job = 'Evento no repetitivo: recordando tomar ' + evento.med + ' a ' + evento.usuario
            else:
                Snips.NingunaVez(evento)
                job = 'Evento repetitivo: recordando tomar ' + evento.med + ' a ' + evento.usuario + ' cada ' + evento.cuando
            if (existe_Trabajo1(job)):
                Snips.planificador1.remove_job(job)
                hermes.publish_end_session(MensajeIntent.session_id, mensaje)
        else:
            hermes.publish_end_session(
                MensajeIntent.session_id,
                'No existe ningún recordatorio a confirmar')
    else:
        hermes.publish_end_session(
            MensajeIntent.session_id,
            'No existe ningún recordatorio a confirmar')
Exemplo n.º 2
0
def ultimoEventoRecordatorioPorUsuario():
    aux = None
    with open('/home/pi/Reporte.csv', 'r') as csvfile:
        lector = csv.DictReader(csvfile)
        encabecazados = lector.fieldnames
        listaRec = []
        for columna in lector:
            # print(row[headers[2]])
            if (columna['Nombre_Usuario'] == Snips.usuario
                    and columna['Tipo'] == 'Recordatorio'):
                listaRec.append(columna)
        print(*listaRec)
        for columna in listaRec:
            if (columna['¿Repetitivo?'] == 'Si'):
                e = Evento(
                    columna['Medicamento'],
                    datetime.strptime(columna['Fecha'], "%Y-%m-%d %H:%M:%S"),
                    columna['Nombre_Usuario'], True, columna['Frecuencia'])
                print(e)
                if (Snips.EventoActivo(e)):
                    aux = e
            else:
                e = Evento(
                    columna['Medicamento'],
                    datetime.strptime(columna['Fecha'], "%Y-%m-%d %H:%M:%S"),
                    columna['Nombre_Usuario'], False, None)
                print(e)
                if (Snips.EventoActivo(e)):
                    aux = e
        print('Va a aceptar ' + aux.__str__())
        if (aux):
            return aux
        else:
            return None
Exemplo n.º 3
0
    def run(self):
        while True:
            estado = GPIO.input(self.BOTON)
            if estado:
                global Snips
                Snips.log(None, Snips.usuario, 'Botón', 'Evento aceptado', '')
                evento = ultimoEventoRecordatorioPorUsuario()
                print(evento.__str__())
                if (evento):
                    if (Snips.EventoActivo(evento)):
                        print('Activo')
                        mensaje = 'Aceptando ' + evento.__str__()
                        if (not evento.rep):
                            # print('No repetitivo')
                            Snips.EventoFinalizado(evento)
                            trabajo = 'Evento no repetitivo: recordando tomar ' + evento.med + ' a ' + evento.usuario
                        else:
                            # print('Repetitivo')
                            Snips.NingunaVez(evento)
                            trabajo = 'Evento repetitivo: recordando tomar ' + evento.med + ' a ' + evento.usuario + ' cada ' + evento.cuando

                        if (self.existe_Trabajo(trabajo)):
                            Snips.planificador1.remove_job(trabajo)
                            say('default', mensaje)
                    else:
                        say('default',
                            'No existe ningún recordatorio a confirmar')
                else:
                    say('default', 'No existe ningún recordatorio a confirmar')

            time.sleep(1)
Exemplo n.º 4
0
def controlador_accion_Negar(hermes, MensajeIntent, conf):
    Snips.log(None, Snips.usuario, '', 'Evento no aceptado', '')
    evento = ultimoEventoRecordatorioPorUsuario()
    print(evento.__str__())
    if (evento):
        msg = "Evento no aceptado por " + Snips.usuario + " se te volverá ha avisar en 20 segundos"
    else:
        msg = "No existe ningún evento a negar"
    hermes.publish_end_session(MensajeIntent.session_id, msg)
Exemplo n.º 5
0
def controlador_accion_Cambiar_usuario(hermes, MensajeIntent, conf):
    global Snips
    usuario = MensajeIntent.slots.usuario.first().value
    if (Snips.existeUsuario(usuario)):
        if (Snips.UsuarioActivo() != usuario):
            mensaje = "Cambio de usuario a " + usuario
            Snips.CambioUsuarioActivo(usuario)
            Snips.log(None, usuario, '', 'Cambio_Usuario', '')
        else:
            mensaje = "El usuario " + usuario + " ya es el actual"
    else:
        mensaje = "El usuario " + usuario + " no existe"
    hermes.publish_end_session(MensajeIntent.session_id, mensaje)
Exemplo n.º 6
0
def recordatorio(MensajeIntent, e, Repetitivo, Snips):
    print('Evento detectado para : %s' % datetime.now())
    if (e.usuario == Snips.usuario):
        say(MensajeIntent, e.usuario + ' te toca tomarte ' + e.med)
        Snips.log(e, Snips.usuario, '', 'Recordatorio', '')
        if (e.rep):
            Snips.planificador1.add_job(
                recordatorioTomar,
                'interval',
                seconds=20,
                id='Evento repetitivo: recordando tomar ' + e.med + ' a ' +
                e.usuario + ' cada ' + e.cuando,
                args=[e, MensajeIntent, Snips])
        else:
            Snips.planificador1.add_job(
                recordatorioTomar,
                'interval',
                seconds=20,
                id='Evento no repetitivo: recordando tomar ' + e.med + ' a ' +
                e.usuario,
                args=[e, MensajeIntent, Snips])
Exemplo n.º 7
0
def recordatorioTomar(e, intentMessage, Snips):
    if (Snips.EventoActivo(e)):
        if (e.usuario == Snips.usuario):
            with Hermes(mqtt_options=MqttOptions()) as clienteMQTT:
                if (e.veces < 6):
                    Snips.log(e, Snips.usuario, '', 'Recordatorio', '')
                    clienteMQTT.publish_start_session_action(
                        site_id=intentMessage,
                        session_init_text=e.usuario + '¿ te has tomado ' +
                        e.med + '?',
                        session_init_intent_filter=[
                            "caguilary:Confirmar", "caguilary:Negar"
                        ],
                        session_init_can_be_enqueued=True,
                        session_init_send_intent_not_recognized=True,
                        custom_data=None)
                    mensaje = ""
                    print(e.usuario + '¿te has tomado ' + e.med + '?:Vez ' +
                          str(e.veces))
                    Snips.Incrementar(e)
                    e.IncrementarVeces()
                    clienteMQTT.publish_end_session(intentMessage, mensaje)
                else:
                    mensaje = e.usuario + ' ha ignorado el evento tomar ' + e.med
                    say(intentMessage, mensaje)
                    if (not e.rep):
                        Snips.EventoFinalizado(e)
                    else:
                        Snips.NingunaVez(e)
                    if (e.rep):
                        Snips.planificador1.remove_job(
                            'Evento repetitivo: recordando tomar ' + e.med +
                            ' a ' + e.usuario + ' cada ' + e.cuando)
                    else:
                        Snips.planificador1.remove_job(
                            'Evento no repetitivo: recordando tomar ' + e.med +
                            ' a ' + e.usuario)
                    clienteMQTT.publish_end_session(intentMessage, mensaje)
        else:
            print("Usuario actual distinto al del evento")
            if (e.rep):
                Snips.planificador1.remove_job(
                    'Evento repetitivo: recordando tomar ' + e.med + ' a ' +
                    e.usuario + ' cada ' + e.cuando)
            else:
                Snips.planificador1.remove_job(
                    'Evento no repetitivo: recordando tomar ' + e.med + ' a ' +
                    e.usuario)
    else:
        print("El evento ya ha sido confirmado")
        if (e.rep):
            Snips.planificador1.remove_job(
                'Evento repetitivo: recordando tomar ' + e.med + ' a ' +
                e.usuario + ' cada ' + e.cuando)
        else:
            Snips.planificador1.remove_job(
                'Evento no repetitivo: recordando tomar ' + e.med + ' a ' +
                e.usuario)
Exemplo n.º 8
0
def controlador_accion_anadir_usuario(hermes, MensajeIntent, conf):
    global Snips
    usuario = MensajeIntent.slots.usuario.first().value
    if (not Snips.existeUsuario(usuario)):
        mensaje = "Añadiendo usuario " + usuario + ' y cambio a dicho usuario'
        Snips.anadirUsuario(usuario)
        Snips.CambioUsuarioActivo(usuario)
        Snips.log(None, usuario, '', 'Añadir_Usuario', '')
    else:
        mensaje = "El usuario " + usuario + " ya existe"
    hermes.publish_end_session(MensajeIntent.session_id, mensaje)
Exemplo n.º 9
0
def global_variables():
    global Recordatorio, e, Snips
    Snips = Snips()
Exemplo n.º 10
0
def controlador_accion_Borrar(hermes, MensajeIntent, conf):
    if (not MensajeIntent.slots.Repeticion):
        sesion = MensajeIntent.session_id
        if (MensajeIntent.slots.Fecha):
            fecha = MensajeIntent.slots.Fecha.first().value
            fecha = fecha[:fecha.index('+') - 1]
            fechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S")
            med = MensajeIntent.slots.Medicamento.first().value
            mensaje = Snips.usuario + " está borrando el recordatorio para el día  " + str(
                fechaObjeto.day) + " de " + str(
                    fechaObjeto.month) + " del " + str(
                        fechaObjeto.year) + " a las " + str(
                            fechaObjeto.hour) + minutos(
                                fechaObjeto.minute) + " tomar " + med
            e = Evento(med, fechaObjeto, Snips.usuario, False, '')
            if (Snips.ExisteEvento(e)):
                e.IncrementarVeces()
                print('Evento a borrar: tomar ' + str(e))
                Snips.borrarEvento(e)
                Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                job = fecha + ',' + e.med + ',' + e.usuario
                if (existe_Trabajo(job)):
                    Snips.planificador.remove_job(job)

                job = 'Evento no repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario
                if (existe_Trabajo1(job)):
                    Snips.planificador1.remove_job(job)
            else:
                mensaje = 'Evento a borrar no existe'
                Snips.log(None, '', '', 'Error', mensaje)
        else:
            mensaje = 'Fecha errónea. Vuelve a introducir el comando'
        hermes.publish_end_session(MensajeIntent.session_id, mensaje)
    else:
        print('Borrando evento rep')
        sesion = MensajeIntent.session_id
        if (MensajeIntent.slots.Fecha):
            fecha = MensajeIntent.slots.Fecha.first().value
            fecha = fecha[:fecha.index('+') - 1]
            fechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S")
        else:
            fecha = datetime.today().replace(
                hour=0, minute=0, second=0,
                microsecond=0).strftime("%Y-%m-%d %H:%M")
            fechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M")

        med = MensajeIntent.slots.Medicamento.first().value
        if (not MensajeIntent.slots.cantidad):
            veces = 1
        else:
            veces = int(MensajeIntent.slots.cantidad.first().value)
        if (veces == 0):
            mensaje = 'No se puede borrar un evento repetitivo con cantidad igual a 0.'
        else:
            frecuencia = MensajeIntent.slots.Repeticion.first().value

            if (frecuencia == 'diariamente'):
                mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' todos los dias empezando ' + str(
                    fecha)
                e = Evento(med, fechaObjeto, Snips.usuario, True, '1 dia')
                print(e)
                if (Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    job = 'Repeticion diaria,' + med + ',' + Snips.usuario + ',' + str(
                        fechaObjeto)
                    Snips.borrarEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                    if (existe_Trabajo(job)):
                        Snips.planificador.remove_job(job)

                    job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                    if (existe_Trabajo1(job)):
                        Snips.planificador1.remove_job(job)
                else:
                    mensaje = 'Evento a borrar no existe'
                    Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'dia'):
                if (veces > 30):
                    mensaje = "No se puede borrar un evento repetitivo con cant mayor a 30 días."
                else:
                    mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' dias empezando ' + str(fecha)
                    e = Evento(med, fechaObjeto, Snips.usuario, True,
                               str(veces) + ' dia')
                    if (Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        job = 'Repeticion cada ' + str(
                            veces
                        ) + ' dias,' + med + ',' + Snips.usuario + ',' + str(
                            fechaObjeto)
                        Snips.borrarEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                        if (existe_Trabajo(job)):
                            Snips.planificador.remove_job(job)

                        job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                        if (existe_Trabajo1(job)):
                            Snips.planificador1.remove_job(job)
                    else:
                        mensaje = 'Evento a borrar no existe'
                        Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'mes'):
                if (veces > 11):
                    mensaje = "No se puede borrar un evento repetitivo con cant igual o mayor que 11 meses"
                else:
                    mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' meses empezando ' + str(fecha)
                    e = Evento(med, fechaObjeto, Snips.usuario, True,
                               str(veces) + ' mes')
                    if (Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        job = 'Repeticion ' + str(
                            veces
                        ) + ' meses ,' + med + ',' + Snips.usuario + ',' + str(
                            fechaObjeto)
                        Snips.borrarEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                        if (existe_Trabajo(job)):
                            Snips.planificador.remove_job(job)

                        job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                        if (existe_Trabajo1(job)):
                            Snips.planificador1.remove_job(job)
                    else:
                        mensaje = 'Evento a borrar no existe'
                        Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'semana'):
                if (veces > 30):
                    mensaje = "No se puede borrar un evento repetitivo con cant mayor a 30 semanas."
                else:
                    mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' semanas empezando ' + str(fecha)
                    e = Evento(med, fechaObjeto, Snips.usuario, True,
                               str(veces) + ' semana')
                    if (Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        job = 'Repeticion ' + str(
                            veces
                        ) + ' semanas,' + med + ',' + Snips.usuario + ',' + str(
                            fechaObjeto)
                        Snips.borrarEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                        if (existe_Trabajo(job)):
                            Snips.planificador.remove_job(job)

                        job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                        if (existe_Trabajo1(job)):
                            Snips.planificador1.remove_job(job)
                    else:
                        mensaje = 'Evento a borrar no existe'
                        Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'hora'):
                if (veces > 23):
                    mensaje = "No se puede borrar un evento repetitivo con cant sea 23 horas o más."
                else:
                    mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' horas empezando ' + str(fecha)
                    e = Evento(med, fechaObjeto, Snips.usuario, True,
                               str(veces) + ' hora')
                    if (Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        job = 'Repeticion ' + str(
                            veces
                        ) + ' horas,' + med + ',' + Snips.usuario + ',' + str(
                            fechaObjeto)
                        Snips.borrarEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                        if (existe_Trabajo(job)):
                            Snips.planificador.remove_job(job)

                        job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                        if (existe_Trabajo1(job)):
                            Snips.planificador1.remove_job(job)
                    else:
                        mensaje = 'Evento a borrar no existe'
                        Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'desayuno'):  #HORA-1
                mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' en el desayuno'
                e = Evento(med, fechaObjeto, Snips.usuario, True, 'desayuno')
                if (Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    job = 'Repeticion Desayuno' + ',' + med + ',' + Snips.usuario + ',' + str(
                        fechaObjeto)
                    Snips.borrarEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                    if (existe_Trabajo(job)):
                        Snips.planificador.remove_job(job)

                    job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                    if (existe_Trabajo1(job)):
                        Snips.planificador1.remove_job(job)
                else:
                    mensaje = 'Evento a borrar no existe'
                    Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'comida'):  #HORA-1
                mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' en la comida'
                e = Evento(med, fechaObjeto, Snips.usuario, True, 'comida')
                if (Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    job = 'Repeticion Comida' + ',' + med + ',' + Snips.usuario + ',' + str(
                        fechaObjeto)
                    Snips.borrarEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                    if (existe_Trabajo(job)):
                        Snips.planificador.remove_job(job)

                    job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                    if (existe_Trabajo1(job)):
                        Snips.planificador1.remove_job(job)
                else:
                    mensaje = 'Evento a borrar no existe'
                    Snips.log(None, '', '', 'Error', mensaje)

            elif (frecuencia == 'cena'):  #HORA-1
                mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' en la cena'
                e = Evento(med, fechaObjeto, Snips.usuario, True, 'cena')
                if (Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    job = 'Repeticion Cena' + ',' + med + ',' + Snips.usuario + ',' + str(
                        fechaObjeto)
                    Snips.borrarEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                    if (existe_Trabajo(job)):
                        Snips.planificador.remove_job(job)

                    job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                    if (existe_Trabajo1(job)):
                        Snips.planificador1.remove_job(job)
                else:
                    mensaje = 'Evento a borrar no existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            else:
                mensaje = Snips.usuario + " está borrando un recordatorio para tomar " + med + ' cada ' + str(
                    veces) + ' ' + frecuencia + ' empezando ' + str(fecha)
                e = Evento(med, fechaObjeto, Snips.usuario, True,
                           str(veces) + ' ' + frecuencia)
                if (Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    job = 'Repeticion semanal cada ' + frecuencia + ',' + med + ',' + Snips.usuario + ',' + str(
                        fechaObjeto)
                    Snips.borrarEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Borrar_Evento', '')
                    if (existe_Trabajo(job)):
                        Snips.planificador.remove_job(job)

                    job = 'Evento repetitivo: recordando tomar ' + e.med + ' a ' + e.usuario + ' cada ' + e.cuando
                    if (existe_Trabajo1(job)):
                        Snips.planificador1.remove_job(job)
                else:
                    mensaje = 'Evento a borrar no existe'
                    Snips.log(None, '', '', 'Error', mensaje)

        hermes.publish_end_session(MensajeIntent.session_id, mensaje)
Exemplo n.º 11
0
def controlador_accion_Anadir_Evento(hermes, MensajeIntent, conf):
    global Snips
    #print(str(MensajeIntent.slots.Repeticion))
    if (not MensajeIntent.slots.Repeticion):
        session = MensajeIntent.session_id
        if (MensajeIntent.slots.Fecha):
            fecha = MensajeIntent.slots.Fecha.first().value
            fecha = fecha[:fecha.index('+') - 1]
            FechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S")
            if (datetime.now() < FechaObjeto):
                med = MensajeIntent.slots.Medicamento.first().value
                mensaje = Snips.usuario + " está añadiendo un recordatorio para el día  " + str(
                    FechaObjeto.day) + " de " + str(
                        FechaObjeto.month) + " del " + str(
                            FechaObjeto.year) + " a las " + str(
                                FechaObjeto.hour) + minutos(
                                    FechaObjeto.minute) + " tomar " + med
                e = Evento(med, FechaObjeto, Snips.usuario, False, '')
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                    Snips.planificador.add_job(
                        recordatorio,
                        'date',
                        run_date=FechaObjeto,
                        id=str(e.fecha) + ',' + e.med + ',' + e.usuario,
                        args=['default', e, False, Snips])
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            else:
                mensaje = 'La fecha introducida ya ha pasado. Vuelve a introducir el comando'
        else:
            mensaje = 'Fecha errónea. Vuelve a introducir el comando'
    else:
        session = MensajeIntent.session_id
        if (MensajeIntent.slots.Fecha):
            fecha = MensajeIntent.slots.Fecha.first().value
            fecha = fecha[:fecha.index('+') - 1]
            FechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M:%S")
        else:
            fecha = datetime.today().replace(
                second=0, microsecond=0).strftime("%Y-%m-%d %H:%M")
            FechaObjeto = datetime.strptime(fecha, "%Y-%m-%d %H:%M")

        med = MensajeIntent.slots.Medicamento.first().value
        if (not MensajeIntent.slots.cantidad):
            veces = 1
        else:
            veces = int(MensajeIntent.slots.cantidad.first().value)
        days = calendar.monthrange(datetime.now().year,
                                   datetime.now().month)[1]
        if (veces == 0):
            mensaje = 'No se puede crear un evento repetitivo con cantidad  igual a 0.'
        else:
            frecuencia = MensajeIntent.slots.Repeticion.first().value
            if (frecuencia == 'diariamente'):
                mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' todos los dias empezando ' + str(
                    fecha)
                e = Evento(med, FechaObjeto, Snips.usuario, True, '1 dia')
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    if (e.fecha < datetime.now()):
                        FechaObjecto = datetime.now() + timedelta(days=1)

                    Snips.planificador.add_job(
                        recordatorio,
                        'cron',
                        id='Repeticion diaria,' + med + ',' + Snips.usuario +
                        ',' + str(FechaObjeto),
                        year=FechaObjeto.year,
                        month=FechaObjeto.month,
                        day=str(FechaObjeto.day) + '/1',
                        hour=FechaObjeto.hour,
                        minute=FechaObjeto.minute,
                        replace_existing=True,
                        args=['default', e, True, Snips])
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'dia'):
                if (veces > 30):
                    mensaje = "No se puede crear un evento repetitivo con cant mayor a 30 días."
                else:
                    mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' dias empezando ' + str(fecha)
                    e = Evento(med, FechaObjeto, Snips.usuario, True,
                               str(veces) + ' dia')
                    if (not Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        if (e.fecha < datetime.now()):
                            aux = veces
                            FechaObjecto = datetime.now() + timedelta(days=aux)

                        Snips.planificador.add_job(
                            recordatorio,
                            'cron',
                            id='Repeticion cada ' + str(veces) + ' dias,' +
                            med + ',' + Snips.usuario + ',' + str(FechaObjeto),
                            year=FechaObjeto.year,
                            month=FechaObjeto.month,
                            day=str(FechaObjeto.day) + '/' + str(veces),
                            hour=FechaObjeto.hour,
                            minute=FechaObjeto.minute,
                            replace_existing=True,
                            args=['default', e, True, Snips])
                        Snips.anadirEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                    else:
                        mensaje = 'Evento a crear ya existe'
                        Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'mes'):
                if (veces > 11):
                    mensaje = "No se puede crear un evento repetitivo con cant igual o mayor que 11 meses"
                else:
                    mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' meses empezando ' + str(fecha)
                    e = Evento(med, FechaObjeto, Snips.usuario, True,
                               str(veces) + ' mes')
                    if (not Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        if (e.fecha < datetime.now()):
                            aux = veces * days
                            FechaObjecto = datetime.now() + timedelta(days=aux)
                        Snips.planificador.add_job(
                            recordatorio,
                            'cron',
                            id='Repeticion ' + str(veces) + ' meses ,' + med +
                            ',' + Snips.usuario + ',' + str(FechaObjeto),
                            year=FechaObjeto.year,
                            month=str(FechaObjeto.month) + '/' + str(veces),
                            day=FechaObjeto.day,
                            hour=FechaObjeto.hour,
                            minute=FechaObjeto.minute,
                            replace_existing=True,
                            args=['default', e, True, Snips])
                        Snips.anadirEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                    else:
                        mensaje = 'Evento a crear ya existe'
                        Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'semana'):
                if (veces > 30):
                    mensaje = "No se puede crear un evento repetitivo con cant mayor a 30 semanas."
                else:
                    mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' semanas empezando ' + str(fecha)
                    e = Evento(med, FechaObjeto, Snips.usuario, True,
                               str(veces) + ' semana')
                    if (not Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        if (e.fecha < datetime.now()):
                            aux = 7 * veces
                            FechaObjecto = datetime.now() + timedelta(days=aux)
                        Snips.planificador.add_job(
                            recordatorio,
                            'cron',
                            id='Repeticion ' + str(veces) + ' semanas,' + med +
                            ',' + Snips.usuario + ',' + str(FechaObjeto),
                            year=FechaObjeto.year,
                            month=FechaObjeto.month,
                            day=str(FechaObjeto.day) + '/' + str(7 * veces),
                            hour=FechaObjeto.hour,
                            minute=FechaObjeto.minute,
                            replace_existing=True,
                            args=['default', e, True, Snips])
                        Snips.anadirEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                    else:
                        mensaje = 'Evento a crear ya existe'
                        Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'hora'):
                if (veces > 23):
                    mensaje = "No se puede crear un evento repetitivo con cant sea 23 o más."
                else:
                    mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str(
                        veces) + ' horas empezando ' + str(fecha)
                    e = Evento(med, FechaObjeto, Snips.usuario, True,
                               str(veces) + ' hora')
                    if (not Snips.ExisteEvento(e)):
                        e.IncrementarVeces()
                        if (e.fecha < datetime.now()):
                            FechaObjecto = e.fecha
                            while ((FechaObjecto + timedelta(hours=veces)) <
                                   datetime.now()
                                   and (FechaObjecto.hour + veces) < 23):
                                print(str(FechaObjecto))
                                FechaObjecto += timedelta(hours=veces)
                            print(str(FechaObjecto))
                        horaSig = FechaObjecto.hour + veces
                        print(str(FechaObjecto))
                        if (horaSig > 23):
                            FechaObjecto += timedelta(hours=veces)
                            print(str(FechaObjecto))
                        print(str(FechaObjecto))
                        Snips.planificador.add_job(
                            recordatorio,
                            'cron',
                            id='Repeticion ' + str(veces) + ' horas,' + med +
                            ',' + Snips.usuario + ',' + str(FechaObjeto),
                            year=FechaObjeto.year,
                            month=FechaObjeto.month,
                            day=FechaObjeto.day,
                            hour=str(FechaObjeto.hour) + '/' + str(veces),
                            minute=FechaObjeto.minute,
                            replace_existing=True,
                            args=['default', e, True, Snips])
                        Snips.anadirEvento(e)
                        Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                    else:
                        mensaje = 'Evento a crear ya existe'
                        Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'desayuno'):  #HORA-1
                mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' en el desayuno'
                e = Evento(med, FechaObjeto, Snips.usuario, True, 'desayuno')
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    if (e.fecha < datetime.now()):
                        FechaObjecto = datetime.now() + timedelta(days=1)
                    Snips.planificador.add_job(
                        recordatorio,
                        'cron',
                        id='Repeticion Desayuno' + ',' + med + ',' +
                        Snips.usuario + ',' + str(FechaObjeto),
                        year=FechaObjeto.year,
                        month=FechaObjeto.month,
                        day=FechaObjeto.day,
                        hour='8/1',
                        minute=0,
                        replace_existing=True,
                        args=['default', e, True, Snips])
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'comida'):  #HORA-1
                mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' en la comida'
                e = Evento(med, FechaObjeto, Snips.usuario, True, 'comida')
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    if (e.fecha < datetime.now()):
                        FechaObjecto = datetime.now() + timedelta(days=1)
                    Snips.planificador.add_job(
                        recordatorio,
                        'cron',
                        id='Repeticion Comida' + ',' + med + ',' +
                        Snips.usuario + ',' + str(FechaObjeto),
                        year=FechaObjeto.year,
                        month=FechaObjeto.month,
                        day=FechaObjeto.day,
                        hour='13/1',
                        minute=0,
                        replace_existing=True,
                        args=['default', e, True, Snips])
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            elif (frecuencia == 'cena'):  #HORA-1
                mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' en la cena'
                e = Evento(med, FechaObjeto, Snips.usuario, True, 'cena')
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    if (e.fecha < datetime.now()):
                        FechaObjecto = datetime.now() + timedelta(days=1)
                    Snips.planificador.add_job(
                        recordatorio,
                        'cron',
                        id='Repeticion Cena' + ',' + med + ',' +
                        Snips.usuario + ',' + str(FechaObjeto),
                        year=FechaObjeto.year,
                        month=FechaObjeto.month,
                        day=FechaObjeto.day,
                        hour='21/1',
                        minute=0,
                        replace_existing=True,
                        args=['default', e, True, Snips])
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
            else:
                mensaje = Snips.usuario + " está añadiendo un recordatorio para tomar " + med + ' cada ' + str(
                    veces) + ' ' + frecuencia + ' empezando ' + str(fecha)
                e = Evento(med, FechaObjeto, Snips.usuario, True,
                           str(veces) + ' ' + frecuencia)
                if (not Snips.ExisteEvento(e)):
                    e.IncrementarVeces()
                    if (e.fecha < datetime.now()):
                        FechaObjecto = datetime.now() + timedelta(days=7 *
                                                                  veces)
                    Snips.planificador.add_job(
                        recordatorio,
                        'cron',
                        id='Repeticion semanal cada ' + frecuencia + ',' +
                        med + ',' + Snips.usuario + ',' + str(FechaObjeto),
                        day_of_week=Snips.dia_sem(frecuencia),
                        year=FechaObjeto.year,
                        month=FechaObjeto.month,
                        day=FechaObjeto.day,
                        hour=FechaObjeto.hour,
                        minute=FechaObjeto.minute,
                        replace_existing=True,
                        args=['default', e, True, Snips])
                    Snips.anadirEvento(e)
                    Snips.log(e, Snips.usuario, '', 'Añadir_Evento', '')
                else:
                    mensaje = 'Evento a crear ya existe'
                    Snips.log(None, '', '', 'Error', mensaje)
    print('planificador')
    Snips.planificador.print_jobs()
    print('planificador1')
    Snips.planificador1.print_jobs()
    hermes.publish_end_session(MensajeIntent.session_id, mensaje)