示例#1
0
def matar_automatic():
    automatic = ParamikoComando()
    automatic.conectar()

    try:
        ####MATANDO AUTIMATIC.PY##################
        print('matando automatic.py')
        comando = 'automatic.py'
        for pid in automatic.pid(comando):
            pid_a_matar = pid.strip('\n')
            automatic.matar(pid_a_matar)
    except:
        pass
    automatic.client.close()
示例#2
0
def matar_ecosystem():
    ecoluz = ParamikoComando()
    ecoluz.conectar()
    comando = 'ecosystem.py'
    try:
        ####MATANDO ECOSYSTEM.PY##################
        print('matando ecosystem.py')
        for pid in ecoluz.pid(comando):
            pid_a_matar = pid.strip('\n')
            ecoluz.matarsig(pid_a_matar)
        session['ecosystem'] = 0
    except:
        pass
    ecoluz.client.close()
    print('Ecosystem apagado')
示例#3
0
def matar_camara():
    camara = ParamikoComando()
    camara.conectar()
    comando = 'camara.py'
    try:
        ####MATANDO CAMARA.PY##################
        print('matando camara.py')
        for pid in camara.pid(comando):
            pid_a_matar = pid.strip('\n')
            camara.matarsig(pid_a_matar)
        session['camara'] = 0
    except:
        pass
    camara.client.close()
    print('Camara apagada')
示例#4
0
def matar_timelaps():
    timelaps = ParamikoComando()
    timelaps.conectar()
    comando = 'fotos.py'
    try:
        ####MATANDO FOTOS.PY##################
        print('matando fotos.py')
        for pid in timelaps.pid(comando):
            pid_a_matar = pid.strip('\n')
            timelaps.matarsig(pid_a_matar)
        session['timelaps'] = 0
    except:
        pass
    timelaps.client.close()
    print('Timelaps apagado')
示例#5
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']))
示例#6
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']))
示例#7
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'))
示例#8
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)
示例#9
0
def liberar_gpios():
    automatic = ParamikoComando()
    automatic.conectar()
    comando = 'liberar_gpios.py'
    stdin, stdout, stderr = automatic.ejecutarcomando(comando, False)  #
    automatic.client.close()
示例#10
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)
示例#11
0
from src import app, db
from src.core.forms import Ejecutar, Seleccionar, Parar, IndoorForm, AutomaticForm, TrabajandoForm, MensajeAdminForm, TimeLapsForm, TimeLapsForm2
import paramiko
import time
from time import sleep
from datetime import datetime
import os
from src.comando import ParamikoComando
from src.models import Configuracion, Historial, Luna, Sensordht22, SensorStream, MensajesAdm, SensorPhStream, SensorHumSueloStream, SensorEcStream
import base64
from src.core.conexion import Conexion2

##################################
############INSTANCIAS############
##################################
luz = ParamikoComando()
#luz.conectar()

humedad = ParamikoComando()
#humedad.conectar()

riego = ParamikoComando()
#riego.conectar()

#intractor = ParamikoComando()#modificar
ec_down = ParamikoComando()

#extractor = ParamikoComando()#modificar
ec_up = ParamikoComando()

#ventilador = ParamikoComando()#modificar
示例#12
0
from werkzeug.utils import secure_filename
from src import app, db
from src.core.forms import Ejecutar, Seleccionar, Parar, IndoorForm, AutomaticForm, TrabajandoForm, MensajeAdminForm
import paramiko
import time
from time import sleep
from datetime import datetime
import os
from src.comando import ParamikoComando
from src.models import Configuracion, Historial, Luna, Sensordht22, SensorStream, MensajesAdm, SensorPhStream, SensorHumSueloStream
import base64
from src.core.conexion import Conexion2
##################################
############INSTANCIAS############
##################################
luz = ParamikoComando()
#luz.conectar()

humedad = ParamikoComando()
#humedad.conectar()

riego = ParamikoComando()
#riego.conectar()

intractor = ParamikoComando()  #modificar
#intractor_extractor = ParamikoComando()
#ventilacion.conectar()

extractor = ParamikoComando()  #modificar
#ec_up = ParamikoComando()
#extractor.conectar()