You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
4.0 KiB
88 lines
4.0 KiB
4 years ago
|
from django.db import models
|
||
|
from datetime import datetime
|
||
|
|
||
|
class Spot(models.Model):
|
||
|
name = models.CharField(max_length=30, verbose_name='地点名称')
|
||
|
sn = models.CharField(max_length=20, verbose_name='设备序列号')
|
||
|
ip = models.CharField(max_length=15, verbose_name='设备IP')
|
||
|
def __str__(self):
|
||
|
return self.name
|
||
|
class Meta:
|
||
|
verbose_name_plural='地点设置'
|
||
|
|
||
|
class Envdata(models.Model):
|
||
|
spot = models.ForeignKey('Spot', on_delete=models.CASCADE, verbose_name='地点')
|
||
|
errcode = models.IntegerField(default=0, verbose_name='错误代码')
|
||
|
electricity = models.SmallIntegerField(default=1, verbose_name='供电')
|
||
|
fire = models.IntegerField(default=0, verbose_name='火情')
|
||
|
water = models.SmallIntegerField(default=0, verbose_name='漏水')
|
||
|
temperature = models.FloatField(default=0.0, verbose_name='温度')
|
||
|
humidity = models.FloatField(default=0.0, verbose_name='湿度')
|
||
|
rectime = models.DateTimeField(verbose_name='记录时间')
|
||
|
def __str__(self):
|
||
|
return self.spot.name
|
||
|
class Meta:
|
||
|
verbose_name_plural='采集数据'
|
||
|
|
||
|
class Alarm(models.Model):
|
||
|
spot = models.ForeignKey('Spot', on_delete=models.CASCADE, verbose_name='地点')
|
||
|
errcode = models.IntegerField(default=0, verbose_name='报警代码')
|
||
|
almname = models.CharField(max_length=20, null=True, verbose_name='报警名称')
|
||
|
almvalue = models.IntegerField(default=0, verbose_name='报警数值')
|
||
|
almtime = models.DateTimeField(verbose_name='报警时间')
|
||
|
def __str__(self):
|
||
|
return self.almname
|
||
|
class Meta:
|
||
|
verbose_name_plural='报警数据'
|
||
|
|
||
|
class Sms(models.Model):
|
||
|
name = models.CharField(max_length=10, verbose_name='姓名')
|
||
|
phone = models.CharField(max_length=11, verbose_name='手机', null=True)
|
||
|
email = models.CharField(max_length=25, verbose_name='邮箱', null=True)
|
||
|
def __str__(self):
|
||
|
return self.name
|
||
|
class Meta:
|
||
|
verbose_name_plural='通讯设置'
|
||
|
|
||
|
class Alarmset(models.Model):
|
||
|
spot = models.ForeignKey('Spot', on_delete=models.CASCADE, verbose_name='地点')
|
||
|
connection = models.BooleanField(default=False, verbose_name='设备离线')
|
||
|
electricity = models.BooleanField(default=False, verbose_name='断电')
|
||
|
fire = models.BooleanField(default=False, verbose_name='火情')
|
||
|
water = models.BooleanField(default=False, verbose_name='漏水')
|
||
|
temperature = models.BooleanField(default=False, verbose_name='温度')
|
||
|
humidity = models.BooleanField(default=False, verbose_name='湿度')
|
||
|
def __str__(self):
|
||
|
return self.spot.name
|
||
|
class Meta:
|
||
|
verbose_name_plural='报警设置'
|
||
|
|
||
|
class Sendlog(models.Model):
|
||
|
sendtype = models.CharField(max_length=8, default='mail', verbose_name='发送类型')
|
||
|
sendresult = models.BooleanField(default=True, verbose_name='发送结果')
|
||
|
sendto = models.CharField(max_length=200, default='', verbose_name='发送对象')
|
||
|
sendtime = models.DateTimeField(default=datetime.now(), verbose_name='发送时间')
|
||
|
def __str__(self):
|
||
|
return self.sendtype
|
||
|
class Meta:
|
||
|
verbose_name_plural = '发送日志'
|
||
|
|
||
|
class Device(models.Model):
|
||
|
spot = models.CharField(max_length=20, verbose_name='设备序列号')
|
||
|
# servaddr = models.CharField(max_length=30, default='http://172.18.17.136:8000', verbose_name='服务器地址')
|
||
|
timespan = models.IntegerField(default=1, verbose_name='采集时间间隔')
|
||
|
afire = models.IntegerField(default=15000, verbose_name='火情报警阈值')
|
||
|
atemp = models.FloatField(default=32.0, verbose_name='温度报警阈值')
|
||
|
ahum = models.FloatField(default=75.0, verbose_name='湿度报警阈值')
|
||
|
def __str__(self):
|
||
|
return self.spot
|
||
|
class Meta:
|
||
|
verbose_name_plural = '设备管理'
|
||
|
|
||
|
class Envchart(models.Model):
|
||
|
class Meta:
|
||
|
verbose_name_plural = '统计图表'
|
||
|
|
||
|
class Sysmanager(models.Model):
|
||
|
class Meta:
|
||
|
verbose_name_plural = '系统管理'
|