Carga
This commit is contained in:
2025-04-17 00:35:33 -06:00
parent 4977462629
commit 67fc72aed5
1333 changed files with 1077639 additions and 0 deletions

0
fijos/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

6
fijos/admin.py Normal file
View File

@@ -0,0 +1,6 @@
from django.contrib import admin
from .models import telegram
# Register your models here.
admin.site.register(telegram)

6
fijos/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class FijosConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'fijos'

26
fijos/forms.py Normal file
View File

@@ -0,0 +1,26 @@
from django import forms
from .models import sensoresfijos, AltaSensoresFijos, telegram
class Formsensoresf(forms.ModelForm):
class Meta:
model = sensoresfijos
fields = ('idsensor', 'temp', 'hume')
class FormAltasensoresf(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(FormAltasensoresf, self).__init__(*args, **kwargs)
self.fields['idsensor'].widget.attrs['readonly'] = True
class Meta:
model = AltaSensoresFijos
fields = ('idsensor', 'nombre', 'temp_min', 'temp_max', 'hume_min', 'hume_max', 'activo', 'ver_humedad')
class Formtelegram(forms.ModelForm):
class Meta:
model = telegram
fields = ('idBot', 'idGrupo')

View File

@@ -0,0 +1,65 @@
# Generated by Django 4.0.5 on 2022-11-04 11:09
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='AltaSensoresFijos',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('idsensor', models.CharField(max_length=5, unique=True, verbose_name='Tarjeta Sensor')),
('nombre', models.CharField(max_length=255, verbose_name='Ubicacion')),
('temp_media', models.FloatField(blank=True, null=True, verbose_name='Temperatura Media')),
('temp_min', models.FloatField(verbose_name='Temperatura Minima')),
('temp_max', models.FloatField(verbose_name='Temperatura Maxima')),
('hume_min', models.FloatField(verbose_name='Humedad Minima')),
('hume_max', models.FloatField(verbose_name='Humedad Maxima')),
('activo', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=5, verbose_name='Activo?')),
('ver_humedad', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=5, verbose_name='ver Humedad?')),
],
options={
'verbose_name': 'Alta Sensor Fijo',
'verbose_name_plural': 'Alta Sensor Fijo',
'ordering': ['idsensor'],
},
),
migrations.CreateModel(
name='sensoresfijos',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('idsensor', models.CharField(max_length=5, verbose_name='Tarjeta Sensor')),
('temp', models.FloatField(blank=True, null=True, verbose_name='Temperatura')),
('hume', models.FloatField(blank=True, null=True, verbose_name='Humedad')),
('fecha', models.DateField(auto_now_add=True, verbose_name='Fecha')),
('hora', models.TimeField(default=django.utils.timezone.now, verbose_name='Hora')),
('fecharango', models.DateTimeField(auto_now_add=True, verbose_name='Fecha por rango')),
],
options={
'verbose_name': 'Sensor Fijo',
'verbose_name_plural': 'Sensor Fijo',
'ordering': ['idsensor'],
},
),
migrations.CreateModel(
name='telegram',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('idBot', models.CharField(max_length=250, unique=True, verbose_name='ID del Bot')),
('idGrupo', models.CharField(max_length=250, unique=True, verbose_name='ID del Grupo')),
],
options={
'verbose_name': 'telegram conf',
'verbose_name_plural': 'telegram conf',
'ordering': ['id'],
},
),
]

View File

Binary file not shown.

62
fijos/models.py Normal file
View File

@@ -0,0 +1,62 @@
from django.db import models
from django.utils.timezone import now
from datetime import datetime
from django.utils import timezone
from tinymce import models as tinymce_models
from model_utils import Choices
# Create your models here.
class sensoresfijos(models.Model):
idsensor = models.CharField(max_length=5, null=False, unique=False, verbose_name='Tarjeta Sensor')
temp = models.FloatField(null=True, blank=True, verbose_name='Temperatura')
hume = models.FloatField(null=True, blank=True, verbose_name='Humedad')
fecha = models.DateField(auto_now_add=True, verbose_name='Fecha')
hora = models.TimeField(default=timezone.now, verbose_name='Hora')
fecharango = models.DateTimeField(auto_now_add=True, verbose_name='Fecha por rango')
def __str__(self):
return self.idsensor
class Meta:
verbose_name = 'Sensor Fijo'
verbose_name_plural = 'Sensor Fijo'
ordering = ['idsensor']
class AltaSensoresFijos(models.Model):
STATUS1 = Choices('SI', 'NO')
idsensor = models.CharField(max_length=5, null=False, unique=True, verbose_name='Tarjeta Sensor')
nombre = models.CharField(max_length=255, null=False, blank=False, verbose_name='Ubicacion')
temp_media = models.FloatField(null=True, blank=True, verbose_name='Temperatura Media')
temp_min = models.FloatField(null=False, blank=False, verbose_name='Temperatura Minima')
temp_max = models.FloatField(null=False, blank=False, verbose_name='Temperatura Maxima')
hume_min = models.FloatField(null=False, blank=False, verbose_name='Humedad Minima')
hume_max = models.FloatField(null=False, blank=False, verbose_name='Humedad Maxima')
activo = models.CharField(choices=STATUS1, default=STATUS1.NO, max_length=5, verbose_name='Activo?')
ver_humedad = models.CharField(choices=STATUS1, default=STATUS1.NO, max_length=5, verbose_name='ver Humedad?')
def __str__(self):
return self.idsensor
class Meta:
verbose_name = 'Alta Sensor Fijo'
verbose_name_plural = 'Alta Sensor Fijo'
ordering = ['idsensor']
class telegram(models.Model):
idBot = models.CharField(max_length=250, null=False, unique=True, verbose_name='ID del Bot')
idGrupo = models.CharField(max_length=250, null=False, unique=True, verbose_name='ID del Grupo')
def __str__(self):
return self.idGrupo
class Meta:
verbose_name = 'telegram conf'
verbose_name_plural = 'telegram conf'
ordering = ['id']

3
fijos/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

950
fijos/views.py Normal file
View File

@@ -0,0 +1,950 @@
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)