951 lines
40 KiB
Python
951 lines
40 KiB
Python
from asyncio.windows_events import NULL
|
|
from inspect import _void
|
|
import json
|
|
import os
|
|
import requests
|
|
from django.conf import settings
|
|
from django.template import Context
|
|
from django.template.loader import get_template
|
|
from django.contrib import messages
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
|
from django.http import HttpResponse
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.contrib.auth.models import User
|
|
from datetime import datetime, timedelta
|
|
import time
|
|
from urllib.parse import urlencode
|
|
from urllib.request import Request, urlopen
|
|
|
|
from django.core.mail import EmailMultiAlternatives
|
|
|
|
|
|
from .models import sensoresfijos, AltaSensoresFijos, telegram
|
|
from .forms import Formsensoresf, FormAltasensoresf, Formtelegram
|
|
|
|
from django.utils.decorators import method_decorator
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
|
from django.http.response import JsonResponse
|
|
from django.views import View
|
|
|
|
from django.views.generic import TemplateView
|
|
from random import randint
|
|
# Create your views here.
|
|
|
|
|
|
def ConsultaSensoresf(request):
|
|
if request.method == "POST":
|
|
sensor = request.POST.get("sensor")
|
|
fecha = request.POST.get("fecha")
|
|
datos = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__icontains=fecha)
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
return render(request, "sensoresf.html", {"datos": datos, "sensores": sensores,"menus": sensores})
|
|
|
|
sensor = request.POST.get("sensor")
|
|
fecha = request.POST.get("fecha")
|
|
datos = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__icontains=fecha)
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
return render(request, "sensoresf.html", {"datos": datos, "sensores": sensores,"menus": sensores})
|
|
|
|
|
|
def ConsultaSensoresRango(request):
|
|
if request.method == "POST":
|
|
sensor = request.POST.get("sensor")
|
|
ini = request.POST.get("fecha_ini")
|
|
fin = request.POST.get("fecha_fin")
|
|
datos = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin))
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
return render(request, "sensoresf.html", {"datos": datos, "sensores": sensores,"menus": sensores, "fecha_ini": ini, "fecha_fin": fin})
|
|
|
|
|
|
|
|
## sensores fijos
|
|
@method_decorator(csrf_exempt)
|
|
def sensoresf(request):
|
|
if request.method == "POST":
|
|
form = Formsensoresf(request.POST)
|
|
if form.is_valid():
|
|
post = form.save(commit=False)
|
|
post.save()
|
|
sensor = request.POST.get("idsensor")
|
|
temp = request.POST.get("temp")
|
|
hume = request.POST.get("hume")
|
|
temp1 = float(temp)
|
|
hume1 = float(hume)
|
|
nombres = AltaSensoresFijos.objects.filter(idsensor=sensor)
|
|
nombre = nombres[0].nombre
|
|
telegram1 = 'El sensor: ' + nombre +' Salio Fuera del rango con temperatura actual de: '+ temp
|
|
telegram2 = 'El sensor: ' + nombre +' Salio Fuera del rango con humedad actual de: '+ hume
|
|
datos1 = AltaSensoresFijos.objects.all()
|
|
|
|
t01id = datos1[0].idsensor
|
|
t01tmin = datos1[0].temp_min
|
|
t01tmax = datos1[0].temp_max
|
|
t01hmin = datos1[0].hume_min
|
|
t01hmax = datos1[0].hume_max
|
|
|
|
t02id = datos1[1].idsensor
|
|
t02tmin = datos1[1].temp_min
|
|
t02tmax = datos1[1].temp_max
|
|
t02hmin = datos1[1].hume_min
|
|
t02hmax = datos1[1].hume_max
|
|
|
|
t03id = datos1[2].idsensor
|
|
t03tmin = datos1[2].temp_min
|
|
t03tmax = datos1[2].temp_max
|
|
t03hmin = datos1[2].hume_min
|
|
t03hmax = datos1[2].hume_max
|
|
|
|
t04id = datos1[3].idsensor
|
|
t04tmin = datos1[3].temp_min
|
|
t04tmax = datos1[3].temp_max
|
|
t04hmin = datos1[3].hume_min
|
|
t04hmax = datos1[3].hume_max
|
|
|
|
t05id = datos1[4].idsensor
|
|
t05tmin = datos1[4].temp_min
|
|
t05tmax = datos1[4].temp_max
|
|
t05hmin = datos1[4].hume_min
|
|
t05hmax = datos1[4].hume_max
|
|
|
|
t06id = datos1[5].idsensor
|
|
t06tmin = datos1[5].temp_min
|
|
t06tmax = datos1[5].temp_max
|
|
t06hmin = datos1[5].hume_min
|
|
t06hmax = datos1[5].hume_max
|
|
|
|
t07id = datos1[6].idsensor
|
|
t07tmin = datos1[6].temp_min
|
|
t07tmax = datos1[6].temp_max
|
|
t07hmin = datos1[6].hume_min
|
|
t07hmax = datos1[6].hume_max
|
|
|
|
t08id = datos1[7].idsensor
|
|
t08tmin = datos1[7].temp_min
|
|
t08tmax = datos1[7].temp_max
|
|
t08hmin = datos1[7].hume_min
|
|
t08hmax = datos1[7].hume_max
|
|
|
|
t09id = datos1[8].idsensor
|
|
t09tmin = datos1[8].temp_min
|
|
t09tmax = datos1[8].temp_max
|
|
t09hmin = datos1[8].hume_min
|
|
t09hmax = datos1[8].hume_max
|
|
|
|
t010id = datos1[9].idsensor
|
|
t010tmin = datos1[9].temp_min
|
|
t010tmax = datos1[9].temp_max
|
|
t010hmin = datos1[9].hume_min
|
|
t010hmax = datos1[9].hume_max
|
|
|
|
t011id = datos1[10].idsensor
|
|
t011tmin = datos1[10].temp_min
|
|
t011tmax = datos1[10].temp_max
|
|
t011hmin = datos1[10].hume_min
|
|
t011hmax = datos1[10].hume_max
|
|
|
|
t012id = datos1[11].idsensor
|
|
t012tmin = datos1[11].temp_min
|
|
t012tmax = datos1[11].temp_max
|
|
t012hmin = datos1[11].hume_min
|
|
t012hmax = datos1[11].hume_max
|
|
|
|
t013id = datos1[12].idsensor
|
|
t013tmin = datos1[12].temp_min
|
|
t013tmax = datos1[12].temp_max
|
|
t013hmin = datos1[12].hume_min
|
|
t013hmax = datos1[12].hume_max
|
|
|
|
t014id = datos1[13].idsensor
|
|
t014tmin = datos1[13].temp_min
|
|
t014tmax = datos1[13].temp_max
|
|
t014hmin = datos1[13].hume_min
|
|
t014hmax = datos1[13].hume_max
|
|
|
|
t015id = datos1[14].idsensor
|
|
t015tmin = datos1[14].temp_min
|
|
t015tmax = datos1[14].temp_max
|
|
t015hmin = datos1[14].hume_min
|
|
t015hmax = datos1[14].hume_max
|
|
|
|
t016id = datos1[15].idsensor
|
|
t016tmin = datos1[15].temp_min
|
|
t016tmax = datos1[15].temp_max
|
|
t016hmin = datos1[15].hume_min
|
|
t016hmax = datos1[15].hume_max
|
|
|
|
t017id = datos1[16].idsensor
|
|
t017tmin = datos1[16].temp_min
|
|
t017tmax = datos1[16].temp_max
|
|
t017hmin = datos1[16].hume_min
|
|
t017hmax = datos1[16].hume_max
|
|
|
|
t018id = datos1[17].idsensor
|
|
t018tmin = datos1[17].temp_min
|
|
t018tmax = datos1[17].temp_max
|
|
t018hmin = datos1[17].hume_min
|
|
t018hmax = datos1[17].hume_max
|
|
|
|
t019id = datos1[18].idsensor
|
|
t019tmin = datos1[18].temp_min
|
|
t019tmax = datos1[18].temp_max
|
|
t019hmin = datos1[18].hume_min
|
|
t019hmax = datos1[18].hume_max
|
|
|
|
t020id = datos1[19].idsensor
|
|
t020tmin = datos1[19].temp_min
|
|
t020tmax = datos1[19].temp_max
|
|
t020hmin = datos1[19].hume_min
|
|
t020hmax = datos1[19].hume_max
|
|
|
|
t021id = datos1[20].idsensor
|
|
t021tmin = datos1[20].temp_min
|
|
t021tmax = datos1[20].temp_max
|
|
t021hmin = datos1[20].hume_min
|
|
t021hmax = datos1[20].hume_max
|
|
|
|
t022id = datos1[21].idsensor
|
|
t022tmin = datos1[21].temp_min
|
|
t022tmax = datos1[21].temp_max
|
|
t022hmin = datos1[21].hume_min
|
|
t022hmax = datos1[21].hume_max
|
|
|
|
t023id = datos1[22].idsensor
|
|
t023tmin = datos1[22].temp_min
|
|
t023tmax = datos1[22].temp_max
|
|
t023hmin = datos1[22].hume_min
|
|
t023hmax = datos1[22].hume_max
|
|
|
|
t024id = datos1[23].idsensor
|
|
t024tmin = datos1[23].temp_min
|
|
t024tmax = datos1[23].temp_max
|
|
t024hmin = datos1[23].hume_min
|
|
t024hmax = datos1[23].hume_max
|
|
|
|
t025id = datos1[24].idsensor
|
|
t025tmin = datos1[24].temp_min
|
|
t025tmax = datos1[24].temp_max
|
|
t025hmin = datos1[24].hume_min
|
|
t025hmax = datos1[24].hume_max
|
|
|
|
t026id = datos1[25].idsensor
|
|
t026tmin = datos1[25].temp_min
|
|
t026tmax = datos1[25].temp_max
|
|
t026hmin = datos1[25].hume_min
|
|
t026hmax = datos1[25].hume_max
|
|
|
|
t027id = datos1[26].idsensor
|
|
t027tmin = datos1[26].temp_min
|
|
t027tmax = datos1[26].temp_max
|
|
t027hmin = datos1[26].hume_min
|
|
t027hmax = datos1[26].hume_max
|
|
|
|
t028id = datos1[27].idsensor
|
|
t028tmin = datos1[27].temp_min
|
|
t028tmax = datos1[27].temp_max
|
|
t028hmin = datos1[27].hume_min
|
|
t028hmax = datos1[27].hume_max
|
|
|
|
t029id = datos1[28].idsensor
|
|
t029tmin = datos1[28].temp_min
|
|
t029tmax = datos1[28].temp_max
|
|
t029hmin = datos1[28].hume_min
|
|
t029hmax = datos1[28].hume_max
|
|
|
|
t030id = datos1[29].idsensor
|
|
t030tmin = datos1[29].temp_min
|
|
t030tmax = datos1[29].temp_max
|
|
t030hmin = datos1[29].hume_min
|
|
t030hmax = datos1[29].hume_max
|
|
|
|
t031id = datos1[30].idsensor
|
|
t031tmin = datos1[30].temp_min
|
|
t031tmax = datos1[30].temp_max
|
|
t031hmin = datos1[30].hume_min
|
|
t031hmax = datos1[30].hume_max
|
|
|
|
t032id = datos1[31].idsensor
|
|
t032tmin = datos1[31].temp_min
|
|
t032tmax = datos1[31].temp_max
|
|
t032hmin = datos1[31].hume_min
|
|
t032hmax = datos1[31].hume_max
|
|
|
|
t033id = datos1[32].idsensor
|
|
t033tmin = datos1[32].temp_min
|
|
t033tmax = datos1[32].temp_max
|
|
t033hmin = datos1[32].hume_min
|
|
t033hmax = datos1[32].hume_max
|
|
|
|
t034id = datos1[33].idsensor
|
|
t034tmin = datos1[33].temp_min
|
|
t034tmax = datos1[33].temp_max
|
|
t034hmin = datos1[33].hume_min
|
|
t034hmax = datos1[33].hume_max
|
|
|
|
t035id = datos1[34].idsensor
|
|
t035tmin = datos1[34].temp_min
|
|
t035tmax = datos1[34].temp_max
|
|
t035hmin = datos1[34].hume_min
|
|
t035hmax = datos1[34].hume_max
|
|
|
|
t036id = datos1[35].idsensor
|
|
t036tmin = datos1[35].temp_min
|
|
t036tmax = datos1[35].temp_max
|
|
t036hmin = datos1[35].hume_min
|
|
t036hmax = datos1[35].hume_max
|
|
|
|
t037id = datos1[36].idsensor
|
|
t037tmin = datos1[36].temp_min
|
|
t037tmax = datos1[36].temp_max
|
|
t037hmin = datos1[36].hume_min
|
|
t037hmax = datos1[36].hume_max
|
|
|
|
t038id = datos1[37].idsensor
|
|
t038tmin = datos1[37].temp_min
|
|
t038tmax = datos1[37].temp_max
|
|
t038hmin = datos1[37].hume_min
|
|
t038hmax = datos1[37].hume_max
|
|
|
|
t039id = datos1[38].idsensor
|
|
t039tmin = datos1[38].temp_min
|
|
t039tmax = datos1[38].temp_max
|
|
t039hmin = datos1[38].hume_min
|
|
t039hmax = datos1[38].hume_max
|
|
|
|
t040id = datos1[39].idsensor
|
|
t040tmin = datos1[39].temp_min
|
|
t040tmax = datos1[39].temp_max
|
|
t040hmin = datos1[30].hume_min
|
|
t040hmax = datos1[30].hume_max
|
|
|
|
t041id = datos1[40].idsensor
|
|
t041tmin = datos1[40].temp_min
|
|
t041tmax = datos1[40].temp_max
|
|
t041hmin = datos1[40].hume_min
|
|
t041hmax = datos1[40].hume_max
|
|
|
|
t042id = datos1[41].idsensor
|
|
t042tmin = datos1[41].temp_min
|
|
t042tmax = datos1[41].temp_max
|
|
t042hmin = datos1[41].hume_min
|
|
t042hmax = datos1[41].hume_max
|
|
|
|
t043id = datos1[42].idsensor
|
|
t043tmin = datos1[42].temp_min
|
|
t043tmax = datos1[42].temp_max
|
|
t043hmin = datos1[42].hume_min
|
|
t043hmax = datos1[42].hume_max
|
|
|
|
t044id = datos1[43].idsensor
|
|
t044tmin = datos1[43].temp_min
|
|
t044tmax = datos1[43].temp_max
|
|
t044hmin = datos1[43].hume_min
|
|
t044hmax = datos1[43].hume_max
|
|
|
|
t045id = datos1[44].idsensor
|
|
t045tmin = datos1[44].temp_min
|
|
t045tmax = datos1[44].temp_max
|
|
t045hmin = datos1[44].hume_min
|
|
t045hmax = datos1[44].hume_max
|
|
|
|
t046id = datos1[45].idsensor
|
|
t046tmin = datos1[45].temp_min
|
|
t046tmax = datos1[45].temp_max
|
|
t046hmin = datos1[45].hume_min
|
|
t046hmax = datos1[45].hume_max
|
|
|
|
t047id = datos1[46].idsensor
|
|
t047tmin = datos1[46].temp_min
|
|
t047tmax = datos1[46].temp_max
|
|
t047hmin = datos1[46].hume_min
|
|
t047hmax = datos1[46].hume_max
|
|
|
|
t048id = datos1[47].idsensor
|
|
t048tmin = datos1[47].temp_min
|
|
t048tmax = datos1[47].temp_max
|
|
t048hmin = datos1[47].hume_min
|
|
t048hmax = datos1[47].hume_max
|
|
|
|
t049id = datos1[48].idsensor
|
|
t049tmin = datos1[48].temp_min
|
|
t049tmax = datos1[48].temp_max
|
|
t049hmin = datos1[48].hume_min
|
|
t049hmax = datos1[48].hume_max
|
|
|
|
t050id = datos1[49].idsensor
|
|
t050tmin = datos1[49].temp_min
|
|
t050tmax = datos1[49].temp_max
|
|
t050hmin = datos1[49].hume_min
|
|
t050hmax = datos1[49].hume_max
|
|
|
|
if sensor == t01id:
|
|
if temp1 < t01tmin or temp1 > t01tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t01hmin or hume1 > t01hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t02id:
|
|
if temp1 < t02tmin or temp1 > t02tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t02hmin or hume1 > t02hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t03id:
|
|
if temp1 < t03tmin or temp1 > t03tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t03hmin or hume1 > t03hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t04id:
|
|
if temp1 < t04tmin or temp1 > t04tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t04hmin or hume1 > t04hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t05id:
|
|
if temp1 < t05tmin or temp1 > t05tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t05hmin or hume1 > t05hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t06id:
|
|
if temp1 < t06tmin or temp1 > t06tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t06hmin or hume1 > t06hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t07id:
|
|
if temp1 < t07tmin or temp1 > t07tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t07hmin or hume1 > t07hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t08id:
|
|
if temp1 < t08tmin or temp1 > t08tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t08hmin or hume1 > t08hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t09id:
|
|
if temp1 < t09tmin or temp1 > t09tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t09hmin or hume1 > t09hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t010id:
|
|
if temp1 < t010tmin or temp1 > t010tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t010hmin or hume1 > t010hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t011id:
|
|
if temp1 < t011tmin or temp1 > t011tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t011hmin or hume1 > t011hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t012id:
|
|
if temp1 < t012tmin or temp1 > t012tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t012hmin or hume1 > t012hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t013id:
|
|
if temp1 < t013tmin or temp1 > t013tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t013hmin or hume1 > t013hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t014id:
|
|
if temp1 < t014tmin or temp1 > t014tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t014hmin or hume1 > t014hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t015id:
|
|
if temp1 < t015tmin or temp1 > t015tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t015hmin or hume1 > t015hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t016id:
|
|
if temp1 < t016tmin or temp1 > t016tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t016hmin or hume1 > t016hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t017id:
|
|
if temp1 < t017tmin or temp1 > t017tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t017hmin or hume1 > t017hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t018id:
|
|
if temp1 < t018tmin or temp1 > t018tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t018hmin or hume1 > t018hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t019id:
|
|
if temp1 < t019tmin or temp1 > t019tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t019hmin or hume1 > t019hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t020id:
|
|
if temp1 < t020tmin or temp1 > t020tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t020hmin or hume1 > t020hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t021id:
|
|
if temp1 < t021tmin or temp1 > t021tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t021hmin or hume1 > t021hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t022id:
|
|
if temp1 < t022tmin or temp1 > t022tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t022hmin or hume1 > t022hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t023id:
|
|
if temp1 < t023tmin or temp1 > t023tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t023hmin or hume1 > t023hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t024id:
|
|
if temp1 < t024tmin or temp1 > t024tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t024hmin or hume1 > t024hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t025id:
|
|
if temp1 < t025tmin or temp1 > t025tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t025hmin or hume1 > t025hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t026id:
|
|
if temp1 < t026tmin or temp1 > t026tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t026hmin or hume1 > t026hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t027id:
|
|
if temp1 < t027tmin or temp1 > t027tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t027hmin or hume1 > t027hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t028id:
|
|
if temp1 < t028tmin or temp1 > t028tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t028hmin or hume1 > t028hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t029id:
|
|
if temp1 < t029tmin or temp1 > t029tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t029hmin or hume1 > t029hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t030id:
|
|
if temp1 < t030tmin or temp1 > t030tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t030hmin or hume1 > t030hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t031id:
|
|
if temp1 < t031tmin or temp1 > t031tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t031hmin or hume1 > t031hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t032id:
|
|
if temp1 < t032tmin or temp1 > t032tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t032hmin or hume1 > t032hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t033id:
|
|
if temp1 < t033tmin or temp1 > t033tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t033hmin or hume1 > t033hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t034id:
|
|
if temp1 < t034tmin or temp1 > t034tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t034hmin or hume1 > t034hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t035id:
|
|
if temp1 < t035tmin or temp1 > t035tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t035hmin or hume1 > t035hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t036id:
|
|
if temp1 < t036tmin or temp1 > t036tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t036hmin or hume1 > t036hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t037id:
|
|
if temp1 < t037tmin or temp1 > t037tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t037hmin or hume1 > t037hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t038id:
|
|
if temp1 < t038tmin or temp1 > t038tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t038hmin or hume1 > t038hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t039id:
|
|
if temp1 < t039tmin or temp1 > t039tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t039hmin or hume1 > t039hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t040id:
|
|
if temp1 < t040tmin or temp1 > t040tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t040hmin or hume1 > t040hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t041id:
|
|
if temp1 < t041tmin or temp1 > t041tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t041hmin or hume1 > t041hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t042id:
|
|
if temp1 < t042tmin or temp1 > t042tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t042hmin or hume1 > t042hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t043id:
|
|
if temp1 < t043tmin or temp1 > t043tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t043hmin or hume1 > t043hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t044id:
|
|
if temp1 < t044tmin or temp1 > t044tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t044hmin or hume1 > t044hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t045id:
|
|
if temp1 < t045tmin or temp1 > t045tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t045hmin or hume1 > t045hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t046id:
|
|
if temp1 < t046tmin or temp1 > t046tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t046hmin or hume1 > t046hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t047id:
|
|
if temp1 < t047tmin or temp1 > t047tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t047hmin or hume1 > t047hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t048id:
|
|
if temp1 < t048tmin or temp1 > t048tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t048hmin or hume1 > t048hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t049id:
|
|
if temp1 < t049tmin or temp1 > t049tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t049hmin or hume1 > t049hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
elif sensor == t050id:
|
|
if temp1 < t050tmin or temp1 > t050tmax:
|
|
enviarmensaje(telegram1)
|
|
elif hume1 < t050hmin or hume1 > t050hmax:
|
|
enviarmensajeh(telegram2)
|
|
return HttpResponse(status=200)
|
|
else:
|
|
for field, items in form.errors.items():
|
|
for item in items:
|
|
messages.error(request, '{}: {}'.format(field, item))
|
|
|
|
form = Formsensoresf()
|
|
date = datetime.now()
|
|
date1 = date.strftime("%Y-%m-%d")
|
|
datos = sensoresfijos.objects.filter(fecha__icontains=date1)
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
return render(request, "sensoresf.html", {"form": form, "datos": datos, "sensores": sensores,"menus": sensores})
|
|
|
|
|
|
|
|
class SensoresFijos(TemplateView):
|
|
template_name = 'sensores.html'
|
|
|
|
@method_decorator(csrf_exempt)
|
|
def dispatch(self, request, *args, **kwargs):
|
|
return super().dispatch(request, *args, **kwargs)
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
data = {}
|
|
try:
|
|
action = request.POST['action']
|
|
if action == 'get_graph_online1':
|
|
sf = sensoresfijos.objects.filter(idsensor='T001').latest('id')
|
|
data = {'y': sf.temp}
|
|
elif action == 'get_graph_online2':
|
|
sf = sensoresfijos.objects.filter(idsensor='T002').latest('id')
|
|
data = {'y': sf.temp}
|
|
elif action == 'get_graph_online3':
|
|
sf = sensoresfijos.objects.filter(idsensor='T003').latest('id')
|
|
data = {'y': sf.temp}
|
|
elif action == 'get_graph_online4':
|
|
sf = sensoresfijos.objects.filter(idsensor='T004').latest('id')
|
|
data = {'y': sf.temp}
|
|
else:
|
|
data['error'] = 'Ha ocurrido un error'
|
|
except Exception as e:
|
|
data['error'] = str(e)
|
|
return JsonResponse(data, safe=False)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context['panel'] = 'Panel de administrador'
|
|
return context
|
|
|
|
|
|
### alta sensores fijos ###
|
|
|
|
@login_required(login_url='acceder')
|
|
def altasensoresf(request):
|
|
if request.method == "POST":
|
|
form = FormAltasensoresf(request.POST)
|
|
if form.is_valid():
|
|
post = form.save(commit=False)
|
|
post.save()
|
|
return redirect("altasensoresf")
|
|
else:
|
|
for field, items in form.errors.items():
|
|
for item in items:
|
|
messages.error(request, '{}: {}'.format(field, item))
|
|
|
|
datos = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
teleg = telegram.objects.all()
|
|
return render(request, "altasensoresf.html", {"datos": datos, "teleg": teleg, "menus": datos})
|
|
|
|
|
|
|
|
@login_required(login_url='acceder')
|
|
def ActualizarSensor(request, id):
|
|
instance= get_object_or_404(AltaSensoresFijos, pk=id)
|
|
form = FormAltasensoresf(request.POST or None, instance=instance)
|
|
context= {'form': form}
|
|
if form.is_valid():
|
|
obj= form.save(commit= False)
|
|
obj.save()
|
|
messages.success(request, "El perfil fue actualizado")
|
|
return redirect("altasensoresf")
|
|
|
|
else:
|
|
context= {'form': form, 'error': 'Error al actualizar'}
|
|
return render(request,'actualizar_sensorf.html' , context)
|
|
|
|
|
|
#############################################################################################
|
|
################# telegram conf ###################################
|
|
|
|
def enviarmensaje(telegram1):
|
|
teleg = telegram.objects.all()
|
|
bot = teleg[0].idBot
|
|
grupo = teleg[0].idGrupo
|
|
idBot = bot
|
|
idGrupo = grupo
|
|
requests.post('https://api.telegram.org/bot' + idBot + '/sendMessage',
|
|
data={'chat_id': idGrupo, 'text': telegram1, 'parse_mode': 'HTML'})
|
|
|
|
|
|
def enviarmensajeh(telegram2):
|
|
teleg = telegram.objects.all()
|
|
bot = teleg[0].idBot
|
|
grupo = teleg[0].idGrupo
|
|
idBot = bot
|
|
idGrupo = grupo
|
|
requests.post('https://api.telegram.org/bot' + idBot + '/sendMessage',
|
|
data={'chat_id': idGrupo, 'text': telegram2, 'parse_mode': 'HTML'})
|
|
|
|
|
|
def enviarmensajeact(telegram3):
|
|
teleg = telegram.objects.all()
|
|
bot = teleg[0].idBot
|
|
grupo = teleg[0].idGrupo
|
|
idBot = bot
|
|
idGrupo = grupo
|
|
requests.post('https://api.telegram.org/bot' + idBot + '/sendMessage',
|
|
data={'chat_id': idGrupo, 'text': telegram3, 'parse_mode': 'HTML'})
|
|
|
|
|
|
def confTelegram(request):
|
|
datos = telegram.objects.all()
|
|
return render(request, "telegram.html", {"datos": datos})
|
|
|
|
|
|
@login_required(login_url='acceder')
|
|
def ActualizarTelegram(request, id):
|
|
instance= get_object_or_404(telegram, pk=id)
|
|
form = Formtelegram(request.POST or None, instance=instance)
|
|
context= {'form': form}
|
|
if form.is_valid():
|
|
obj= form.save(commit= False)
|
|
obj.save()
|
|
messages.success(request, "El perfil fue actualizado")
|
|
return redirect("altasensoresf")
|
|
|
|
else:
|
|
context= {'form': form, 'error': 'Error al actualizar'}
|
|
return render(request,'actualizar_telegram.html' , context)
|
|
|
|
|
|
|
|
#### ENVIO EMAIL #######
|
|
def enviaremail(sensor, temp):
|
|
subject = 'Sensor fuera de rango'
|
|
template = get_template('email.html')
|
|
email = "********@gmail.com"
|
|
content = template.render({
|
|
'sensor': sensor,'temp': temp,
|
|
})
|
|
message = EmailMultiAlternatives(subject,
|
|
'',
|
|
settings.EMAIL_HOST_USER,
|
|
[email])
|
|
message.attach_alternative(content, 'text/html')
|
|
message.send()
|
|
|
|
|
|
####### ruta post sensor con dia especifico sin actualizacion
|
|
def sensoresfijosdia(request):
|
|
if request.method == "POST":
|
|
sensor = request.POST.get("sensor")
|
|
ini = request.POST.get("fecha_ini")
|
|
fin = request.POST.get("fecha_fin")
|
|
if sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin)).exists():
|
|
datos = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin))
|
|
datos2 = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin)).order_by('temp').values()
|
|
datos3 = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin)).order_by('-temp').values()
|
|
datos4 = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin)).order_by('hume').values()
|
|
datos5 = sensoresfijos.objects.filter(idsensor=sensor).filter(fecha__range=(ini, fin)).order_by('-hume').values()
|
|
temmin = datos2[0]
|
|
temmax = datos3[0]
|
|
humemin = datos4[0]
|
|
humemax = datos5[0]
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
nombre = AltaSensoresFijos.objects.filter(idsensor=sensor)[0]
|
|
sensort = nombre
|
|
return render(request, "sensores_fijos_dia.html", {"datos": datos, "sensores": sensores, "sensort": sensort, "fecha_ini": ini, "fecha_fin": fin, "temmin": temmin, "temmax": temmax, "humemin": humemin, "humemax": humemax, "menus": sensores})
|
|
|
|
date = 'No Existen Datos del Sensor'
|
|
date1 = 'No Existen Datos del Sensor'
|
|
datos = 'No Existen Datos del Sensor'
|
|
datos2 = 'No Existen Datos del Sensor'
|
|
datos3 = 'No Existen Datos del Sensor'
|
|
datos4 = 'No Existen Datos del Sensor'
|
|
datos5 = 'No Existen Datos del Sensor'
|
|
temmin = 'No Existen Datos del Sensor'
|
|
temmax = 'No Existen Datos del Sensor'
|
|
humemin = 'No Existen Datos del Sensor'
|
|
humemax = 'No Existen Datos del Sensor'
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
sensort = 'No Existen Datos del Sensor'
|
|
return render(request, "sensores_fijos_dia.html", {"datos": datos, "sensores": sensores, "sensort": sensort, "fecha": date1, "temmin": temmin, "temmax": temmax, "humemin": humemin, "humemax": humemax, "menus": sensores})
|
|
|
|
|
|
#### ruta get por sensor con actualizacion cada 20 segundos
|
|
def sensoresfijosdianew(request, id):
|
|
date = datetime.now()
|
|
date1 = date.strftime("%Y-%m-%d")
|
|
sen = str(id).zfill(3)
|
|
sen1 = id
|
|
sensores = AltaSensoresFijos.objects.all().order_by('nombre')
|
|
if sensoresfijos.objects.filter(idsensor=sen1).exists():
|
|
if sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).exists():
|
|
datos = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).order_by('fecharango').values()
|
|
datos2 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).order_by('temp').values()
|
|
datos3 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).order_by('-temp').values()
|
|
datos4 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).order_by('hume').values()
|
|
datos5 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=date1).order_by('-hume').values()
|
|
temmin = datos2[0]
|
|
temmax = datos3[0]
|
|
humemin = datos4[0]
|
|
humemax = datos5[0]
|
|
nombre = AltaSensoresFijos.objects.filter(idsensor=sen1)[0]
|
|
sensort = nombre
|
|
return render(request, "sensores_fijos_dianew.html", {"datos": datos, "sensores": sensores, "sensort": sensort, "fecha": date1, "temmin": temmin, "temmax": temmax, "humemin": humemin, "humemax": humemax, "menus": sensores})
|
|
|
|
uf = sensoresfijos.objects.filter(idsensor=sen1).latest('id')
|
|
uf1 = uf.fecha
|
|
datos = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=uf1).order_by('fecharango').values()
|
|
datos2 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=uf1).order_by('temp').values()
|
|
datos3 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=uf1).order_by('-temp').values()
|
|
datos4 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=uf1).order_by('hume').values()
|
|
datos5 = sensoresfijos.objects.filter(idsensor=sen1).filter(fecha__icontains=uf1).order_by('-hume').values()
|
|
temmin = datos2[0]
|
|
temmax = datos3[0]
|
|
humemin = datos4[0]
|
|
humemax = datos5[0]
|
|
nombre = AltaSensoresFijos.objects.filter(idsensor=sen1)[0]
|
|
sensort = nombre
|
|
return render(request, "sensores_fijos_dianew.html", {"datos": datos, "sensores": sensores, "sensort": sensort, "fecha": uf1, "temmin": temmin, "temmax": temmax, "humemin": humemin, "humemax": humemax, "menus": sensores})
|
|
|
|
sensort = 'No Existen Datos del Sensor'
|
|
temmin = sensort
|
|
temmax = sensort
|
|
hummin = sensort
|
|
hummax = sensort
|
|
return render(request, "sensores_fijos_dianew.html", {"sensores": sensores, "sensort": sensort, "fecha": date1, "temmin": temmin, "temmax": temmax, "hummin": hummin, "hummax": hummax, "menus": sensores})
|
|
|
|
|
|
######################### check activo #####################
|
|
|
|
def CheckSensoresActivos(request):
|
|
datos = AltaSensoresFijos.objects.all()
|
|
for i in range(50):
|
|
idt = datos[i].idsensor
|
|
act = datos[i].activo
|
|
min = 29
|
|
timer = str(min)
|
|
if act == 'SI':
|
|
if sensoresfijos.objects.filter(idsensor=idt).exists():
|
|
uf = sensoresfijos.objects.filter(idsensor=idt).latest('id')
|
|
oldf = uf.fecharango.strftime("%Y-%m-%d %H:%M:%S")
|
|
tn = datetime.strptime(oldf, "%Y-%m-%d %H:%M:%S") + timedelta(minutes=min)
|
|
hoy = datetime.now()
|
|
f1 = tn.strftime("%Y-%m-%d %H:%M:%S")
|
|
f2 = hoy.strftime("%Y-%m-%d %H:%M:%S")
|
|
if f1 < f2:
|
|
telegram3 = 'El sensor: ' + idt +' No ha enviado datos en mas de '+ timer +' minutos.'
|
|
enviaractivo(idt)
|
|
enviarmensajeact(telegram3)
|
|
|
|
return HttpResponse(status=200)
|
|
|
|
|
|
def enviaractivo(id):
|
|
url = "http://server.mxsig.com.mx:9000/sensoresf/"
|
|
post_fields = {'idsensor': id , "temp": "-200.0", "hume": "-200.0"}
|
|
request = Request(url, urlencode(post_fields).encode())
|
|
json = urlopen(request).read().decode()
|
|
print(json)
|