feat: 补充mqtt其余字段
This commit is contained in:
parent
e773252d17
commit
6f4bff7e7e
|
@ -0,0 +1,48 @@
|
|||
# Generated by Django 2.2.4 on 2024-03-26 03:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mosquito', '0030_auto_20240325_1452'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='deviceinfo',
|
||||
name='energy',
|
||||
field=models.FloatField(blank=True, null=True, verbose_name='电量'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='deviceinfo',
|
||||
name='signal',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='信号'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mosqpost',
|
||||
name='energy',
|
||||
field=models.FloatField(blank=True, null=True, verbose_name='电量'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mosqpost',
|
||||
name='led_status',
|
||||
field=models.CharField(default='OFF', max_length=10, verbose_name='LED 状态'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mosqpost',
|
||||
name='signal',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='信号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='deviceinfo',
|
||||
name='led_status',
|
||||
field=models.CharField(choices=[('ON', 'ON'), ('OFF', 'OFF')], default='OFF', max_length=10, verbose_name='LED 状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='mosqpost',
|
||||
name='count',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='灭蚊数量'),
|
||||
),
|
||||
]
|
|
@ -4,7 +4,10 @@ from smart.models import SmartModule, SmartPush
|
|||
|
||||
class MosqPost(models.Model):
|
||||
device_id = models.CharField(db_index=True, max_length=100, verbose_name='设备ID')
|
||||
count = models.PositiveIntegerField(verbose_name="灭蚊数量")
|
||||
count = models.PositiveIntegerField(blank=True, null=True, verbose_name="灭蚊数量")
|
||||
signal = models.PositiveIntegerField(blank=True, null=True, verbose_name="信号")
|
||||
energy = models.FloatField(blank=True, null=True, verbose_name='电量')
|
||||
led_status = models.CharField(max_length=10, default='OFF', verbose_name='LED 状态')
|
||||
load = models.CharField(max_length=100, blank=True, null=True, verbose_name='负载电压电流功率')
|
||||
storage_battery = models.CharField(max_length=100, blank=True, null=True, verbose_name='电池电压电流功率')
|
||||
solar_panels = models.CharField(max_length=100, blank=True, null=True, verbose_name='太阳能电压电流功率')
|
||||
|
@ -67,8 +70,8 @@ class Org(models.Model):
|
|||
|
||||
|
||||
LED_CHOICE = (
|
||||
('on', 'on'),
|
||||
('off', 'off')
|
||||
('ON', 'ON'),
|
||||
('OFF', 'OFF')
|
||||
)
|
||||
|
||||
|
||||
|
@ -83,6 +86,8 @@ class DeviceInfo(models.Model):
|
|||
|
||||
# mqtt 数据
|
||||
count = models.PositiveIntegerField(blank=True, null=True, verbose_name='蚊子计数')
|
||||
signal = models.PositiveIntegerField(blank=True, null=True, verbose_name="信号")
|
||||
energy = models.FloatField(blank=True, null=True, verbose_name='电量')
|
||||
led_status = models.CharField(max_length=10, choices=LED_CHOICE, default='OFF', verbose_name='LED 状态')
|
||||
load = models.CharField(max_length=100, blank=True, null=True, verbose_name='负载电压电流功率')
|
||||
storage_battery = models.CharField(max_length=100, blank=True, null=True, verbose_name='电池电压电流功率')
|
||||
|
|
|
@ -51,9 +51,9 @@ def on_message(client, userdata, message):
|
|||
update_device_info(device_id, post_data=post_data)
|
||||
create_mosq_post(device_id, post_data=post_data)
|
||||
print(f"Device: {device_id} update & create post success")
|
||||
except KeyError:
|
||||
except KeyError as e:
|
||||
print(f"Device: {device_id} update & create post failed")
|
||||
print(payload)
|
||||
print(f"key: {e} is not existed")
|
||||
|
||||
|
||||
def update_device_info(device_id: str, post_data: Dict):
|
||||
|
@ -65,6 +65,9 @@ def update_device_info(device_id: str, post_data: Dict):
|
|||
device.ac_power = to_string(post_data, power_type=PowerType.ACPower)
|
||||
device.dc_power = to_string(post_data, power_type=PowerType.DCPower)
|
||||
device.count = post_data['count']
|
||||
device.signal = post_data['signal']
|
||||
device.led_status = post_data['RemoteLEDlightingFixtures']['LED']
|
||||
device.energy = post_data['quantityofelectricity']
|
||||
device.save()
|
||||
|
||||
|
||||
|
@ -75,9 +78,15 @@ def create_mosq_post(device_id: str, post_data: Dict):
|
|||
ac_power = to_string(post_data, power_type=PowerType.ACPower)
|
||||
dc_power = to_string(post_data, power_type=PowerType.DCPower)
|
||||
count = post_data['count']
|
||||
led_status = post_data['RemoteLEDlightingFixtures']['LED']
|
||||
signal = post_data['signal']
|
||||
energy = post_data['quantityofelectricity']
|
||||
MosqPost.objects.create(device_id=device_id,
|
||||
count=count,
|
||||
led_status=led_status,
|
||||
load=load,
|
||||
signal=signal,
|
||||
energy=energy,
|
||||
storage_battery=storage_battery,
|
||||
solar_panels=solar_panels,
|
||||
ac_power=ac_power,
|
||||
|
|
Loading…
Reference in New Issue