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 = '系统管理'