Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
    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)
Exemple #6
0
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)
Exemple #7
0
def global_variables():
    global Recordatorio, e, Snips
    Snips = Snips()
Exemple #8
0
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)