feat: 新设备自动创建设备信息

This commit is contained in:
fxxian 2024-03-27 23:31:47 +08:00
parent 1d3072d878
commit 78749dffa6
1 changed files with 37 additions and 10 deletions

View File

@ -58,16 +58,43 @@ def on_message(client, userdata, message):
def update_device_info(device_id: str, post_data: Dict):
device = DeviceInfo.objects.filter(device_id=device_id).first()
if device:
device.load = to_string(post_data, power_type=PowerType.Load)
device.storage_battery = to_string(post_data, power_type=PowerType.StorageBattery)
device.solar_panels = to_string(post_data, power_type=PowerType.SolarPanels)
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']
latitude, longitude = post_data['positioning'].split(',')
latitude = float(latitude.replace('N ', ''))
longitude = float(longitude.replace('E ', ''))
count = post_data['count']
signal = post_data['signal']
led_status = post_data['RemoteLEDlightingFixtures']['LED']
energy = post_data['quantityofelectricity']
load = to_string(post_data, power_type=PowerType.Load)
storage_battery = to_string(post_data, power_type=PowerType.StorageBattery)
solar_panels = to_string(post_data, power_type=PowerType.SolarPanels)
ac_power = to_string(post_data, power_type=PowerType.ACPower)
dc_power = to_string(post_data, power_type=PowerType.DCPower)
if device is None:
DeviceInfo.objects.create(device_id=device_id,
longitude=longitude,
latitude=latitude,
count=count,
signal=signal,
led_status=led_status,
energy=energy,
load=load,
storage_battery=storage_battery,
solar_panels=solar_panels,
ac_power=ac_power,
dc_power=dc_power,
org_id=1,)
else:
device.load = load
device.storage_battery = storage_battery
device.solar_panels = solar_panels
device.ac_power = ac_power
device.dc_power = dc_power
device.count = count
device.signal = signal
device.led_status = led_status
device.energy = energy
device.save()