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()
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')
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')
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')
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']))
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']))
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'))
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)
def liberar_gpios(): automatic = ParamikoComando() automatic.conectar() comando = 'liberar_gpios.py' stdin, stdout, stderr = automatic.ejecutarcomando(comando, False) # automatic.client.close()
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)
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
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()