Esempio n. 1
0
def timelaps():
    form = TimeLapsForm()  # (sale opcion de ponerle nombre y guardarlo)
    form2 = TimeLapsForm2()  # sale opcion de encender
    comprobar_timelaps()
    if comprobar_timelaps():
        if form.validate_on_submit():
            matar_timelaps()
            compositor = ParamikoComando()
            compositor.conectar()
            comando = 'timelaps.py ' + form.nombre_time_laps.data
            stdin, stdout, stderr = compositor.ejecutarcomando(comando, False)
            exit_status = stdout.channel.recv_exit_status()
            if exit_status == 0:
                print(
                    f'Timelaps Guardado con el nombre de: {form.nombre_time_laps.data}.mp4'
                )
                session['timelaps'] = 0
                compositor.client.close()
                archivo = str(form.nombre_time_laps.data)
                link = 'static/' + archivo + '.zip'
                return render_template('descarga.html', link=link)
        return render_template('timelaps.html', form=form, form2=form2)

    else:
        if form2.validate_on_submit():
            flash(
                'Este proceso puede tardar algunos minutos, pronto saldra la opcion de descarga',
                'info')
            fotos = ParamikoComando()
            fotos.conectar()
            comando = 'fotos.py'
            session['timelaps'] = 1
            fotos.ejecutarcomando(comando, False)
            print('Timelaps encendido')
        return render_template('timelaps.html', form=form, form2=form2)
Esempio n. 2
0
def ecosystem(eco):
    ecoluz = ParamikoComando()
    ecoluz.conectar()
    comando = 'ecosystem.py'
    session['ecosystem'] = eco
    if session['ecosystem'] == 0:
        matar_ecosystem()
    else:
        ecoluz.ejecutarcomando(comando, False)
        print('Ecosystem encendido')

    return redirect(url_for('.home', user=session['username']))
Esempio n. 3
0
def camara(cam):
    camara = ParamikoComando()
    camara.conectar()
    opcion = 'on' if cam == 1 else 'off'
    comando = 'camara.py ' + opcion
    camara.ejecutarcomando(comando, False)
    session['camara'] = cam
    if session['camara'] == 0:
        camara.client.close()
        print('camara apagada')
    else:
        print('camara encendida')

    return redirect(url_for('.home', user=session['username']))
Esempio n. 4
0
def logout():
    camara = ParamikoComando()
    camara.conectar()
    comando = 'camara.py off'
    camara.ejecutarcomando(comando, False)

    camara.client.close()

    logout_user()
    flash(f'Chau {session["username"]}', 'primary')
    for i in session:
        print(i)
        session[i] = ''

    return redirect(url_for('.login'))
Esempio n. 5
0
def encender_sensorDHT22():
    sensor = ParamikoComando()
    sensor.conectar()
    try:
        comando = 'pigpiod_py.py'
        sensor.ejecutarcomando(comando, False)
    except:
        pass
    comando = 'datosdh22.py'
    if sensor.pid(comando) != []:
        print('El sensor DHT22 ya esta encendido')
    else:
        sensor.ejecutarcomando(comando, False)
        print('Sensor DHT22 encendido')
        #sensor.client.close()
        return True
Esempio n. 6
0
def luna():
    proceso = ParamikoComando()
    proceso.conectar()
    comando = 'luna.py'
    stdin, stdout, stderr = proceso.ejecutarcomando(comando, False)
    print('comando ' + comando + ' ejecutado')
    #aca va un sleep porque el tiempo de la consulta es mas corto que la ejecuciond el script luna.py y sale error porque no encuentra nada la primera vez
    luna_hoy = Luna.query.filter_by(id=1).first()
    luna_fases = Luna.query.all()
    dia = str(datetime.today().day)
    mes = str(datetime.today().month)
    anio = str(datetime.today().year)
    print(dia + '/' + mes + '/' + anio)
    img_nueva = Luna.query.filter(Luna.fase == 'Luna Nueva').first()
    img_llena = Luna.query.filter(Luna.fase == 'Luna Llena').first()
    img_creciente = Luna.query.filter(Luna.fase == 'Cuarto Creciente').first()
    img_menguante = Luna.query.filter(Luna.fase == 'Cuarto Menguante').first()
    nueva = base64.b64encode(img_nueva.image).decode('ascii')
    llena = base64.b64encode(img_llena.image).decode('ascii')
    creciente = base64.b64encode(img_creciente.image).decode('ascii')
    menguante = base64.b64encode(img_menguante.image).decode('ascii')

    return render_template('luna.html',
                           luna_hoy=luna_hoy,
                           luna_fases=luna_fases,
                           dia=dia,
                           mes=mes,
                           anio=anio,
                           creciente=creciente,
                           llena=llena,
                           menguante=menguante,
                           nueva=nueva)
Esempio n. 7
0
def ejecutar_automatic(nombre_conf):
    global TRABAJANDO
    automatic = ParamikoComando()
    automatic.conectar()
    comando = 'automatic.py ' + nombre_conf
    guardar_en_historial(session['username'], nombre_conf)
    stdin, stdout, stderr = automatic.ejecutarcomando(comando, False)
    TRABAJANDO = True
    session['nombre_conf'] = nombre_conf
    session['inicio'] = datetime.now()
    Configuracion.query.filter_by(nombre_conf=nombre_conf).update(
        {Configuracion.inicio: session['inicio']}, synchronize_session=False)
    db.session.commit()
Esempio n. 8
0
def comando():

    form = Ejecutar()
    if form.validate_on_submit():
        comando = form.comando.data
        proceso = ParamikoComando()
        proceso.conectar()
        stdin, stdout, stderr = proceso.ejecutarcomando(comando, True)

        proceso.client.close()
        return render_template('stdout.html',
                               form=form,
                               stdin=stdin,
                               stdout=stdout,
                               stderr=stderr,
                               comando=comando)

    return render_template('comando.html', form=form)
Esempio n. 9
0
def luna():
    proceso = ParamikoComando()
    proceso.conectar()
    comando = 'luna2.py'
    stdin, stdout, stderr = proceso.ejecutarcomando(comando, False)
    print('comando ' + comando + ' ejecutado')
    luna_hoy = Luna.query.filter_by(id=1).first()
    luna_fases = Luna.query.order_by(Luna.id.asc()).all()
    dia = str(datetime.today().day)
    mes = str(datetime.today().month)
    anio = str(datetime.today().year)
    print(dia + '/' + mes + '/' + anio)
    img_dia1 = Luna.query.filter_by(id=1).first()
    img_dia2 = Luna.query.filter_by(id=2).first()
    img_dia3 = Luna.query.filter_by(id=3).first()
    img_dia4 = Luna.query.filter_by(id=4).first()
    img_dia5 = Luna.query.filter_by(id=5).first()
    img_dia6 = Luna.query.filter_by(id=6).first()
    img_dia7 = Luna.query.filter_by(id=7).first()
    dia1 = base64.b64encode(img_dia1.image).decode('ascii')
    dia2 = base64.b64encode(img_dia2.image).decode('ascii')
    dia3 = base64.b64encode(img_dia3.image).decode('ascii')
    dia4 = base64.b64encode(img_dia4.image).decode('ascii')
    dia5 = base64.b64encode(img_dia5.image).decode('ascii')
    dia6 = base64.b64encode(img_dia6.image).decode('ascii')
    dia7 = base64.b64encode(img_dia7.image).decode('ascii')

    return render_template('luna.html',
                           luna_hoy=luna_hoy,
                           luna_fases=luna_fases,
                           dia=dia,
                           mes=mes,
                           anio=anio,
                           dia1=dia1,
                           dia2=dia2,
                           dia3=dia3,
                           dia4=dia4,
                           dia5=dia5,
                           dia6=dia6,
                           dia7=dia7)
Esempio n. 10
0
def liberar_gpios():
    automatic = ParamikoComando()
    automatic.conectar()
    comando = 'liberar_gpios.py'
    stdin, stdout, stderr = automatic.ejecutarcomando(comando, False)  #
    automatic.client.close()
Esempio n. 11
0
def mensajeadm():
    lista_msg = []
    listado = MensajesAdm.query.filter_by(
        usuario=session['username']).order_by(MensajesAdm.id.asc()).all()

    con = Conexion2()
    try:
        for i in listado:
            print(i.id_mensaje)

            consulta = """SELECT respuesta FROM mensajesadmserver WHERE id_mensaje = '%s'""" % i.id_mensaje
            con.CUR.execute(consulta)
            i.respuesta = con.CUR.fetchone()
            print(i.respuesta)
            MensajesAdm.query.filter_by(id_mensaje=i.id_mensaje).update(
                {MensajesAdm.respuesta: i.respuesta},
                synchronize_session=False)
            db.session.commit()
            data = {i.id_mensaje: i.respuesta}
            lista_msg.append(data)

    except:
        pass
    #con.CUR.close()
    print(lista_msg)

    msg = ParamikoComando()
    msg.conectar()
    comando = 'raspip.py'
    stdin, stdout, stderr = msg.ejecutarcomando(comando, True)
    ip = str(stdout.readlines()[0])
    print(ip)
    comando = 'nserie.py'
    stdin, stdout, stderr = msg.ejecutarcomando(comando, False)
    numero_serie_rpi = str(stdout.readlines()[0])
    print(numero_serie_rpi)
    fecha = datetime.now().date()
    hora = datetime.now().time()
    form = MensajeAdminForm()
    if form.validate_on_submit():
        mensaje = form.mensaje.data
        asunto = form.asunto.data
        mensaje_a_base = MensajesAdm(fecha, hora, asunto, mensaje,
                                     numero_serie_rpi, ip, session['username'])

        #con = Conexion2()
        id_mensaje = mensaje_a_base.id_mensaje
        datos = (fecha, hora, asunto, mensaje, numero_serie_rpi, ip,
                 session['username'], id_mensaje)
        consulta = """INSERT INTO  mensajesadmserver (fecha, hora, asunto, mensaje, numero_serie_rpi, ip_rpi, usuario, id_mensaje) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"""
        try:
            con.CUR.execute(consulta, datos)
            con.CONEXION.commit()

            db.session.add(mensaje_a_base)
            db.session.commit()
            #   con.CUR.close()
            flash('Mensaje enviado al administrador, en breve sera respondido',
                  'info')
        except:
            #  con.CUR.close()
            flash('Mensaje no enviado, intente mas tarde', 'warning')
        return redirect(url_for('.home', user=session['username']))
    return render_template('mensajes.html',
                           form=form,
                           ip=ip,
                           numero_serie_rpi=numero_serie_rpi,
                           fecha=fecha,
                           hora=hora,
                           listado=listado)