|
|
|
@ -406,6 +406,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -497,64 +498,74 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
}
|
|
|
|
|
device.IsOnline = isOnline != 0x00;
|
|
|
|
|
|
|
|
|
|
var dataList = new List<EditDataModel>();
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.DeviceId, deviceId, DeviceDataType.Int, Keys.DeviceId, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Address, address, DeviceDataType.String, Keys.Address, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.EndPoint, endpoint, DeviceDataType.Int, Keys.EndPoint, hidden: true));
|
|
|
|
|
var dataList = new List<Data>();
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.DeviceId, deviceId, DeviceDataType.Int, Keys.DeviceId, hidden: true, timestamp: timestamp));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Address, address, DeviceDataType.String, Keys.Address, hidden: true, timestamp: timestamp));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.EndPoint, endpoint, DeviceDataType.Int, Keys.EndPoint, hidden: true, timestamp: timestamp));
|
|
|
|
|
if (new int[] { 0x0002, 0x0009, 0x0081, 0x0202, 0x0220, 0x0051 }.Contains(deviceId))
|
|
|
|
|
{
|
|
|
|
|
if (deviceId == 0x202)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
var state = device.CreateData(Keys.State, switchState == 0 ? "关" : (switchState == 1 ? "开" : "停"), DeviceDataType.String, "状态");
|
|
|
|
|
device.AddorUpdateData(state);
|
|
|
|
|
dataList.Add(state.To<EditDataModel>());
|
|
|
|
|
var state = device.CreateData(Keys.State, switchState == 0 ? "关" : (switchState == 1 ? "开" : "停"), DeviceDataType.String, "状态", timestamp: timestamp);
|
|
|
|
|
if (!device.Data.Any(o => o.Key == Keys.State))
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(state);
|
|
|
|
|
dataList.Add(state);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var battery = ms.ReadByte();
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Battery, battery, DeviceDataType.Int, Keys.Battery, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Battery, battery, DeviceDataType.Int, Keys.Battery, hidden: true, timestamp: timestamp));
|
|
|
|
|
var epCount = ms.ReadByte();
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.EndPointCount, battery, DeviceDataType.Int, Keys.EndPointCount, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.EndPointCount, battery, DeviceDataType.Int, Keys.EndPointCount, hidden: true, timestamp: timestamp));
|
|
|
|
|
|
|
|
|
|
if (device.Name == "光强检测器")
|
|
|
|
|
{
|
|
|
|
|
ms.Read(2);
|
|
|
|
|
var light = BitConverter.ToInt16(ms.Read(2));
|
|
|
|
|
var desc = this.GetDescription(Keys.Light, light);
|
|
|
|
|
var deviceData = device.CreateData(Keys.Light, light, DeviceDataType.Int, "光照度", "lux", desc);
|
|
|
|
|
device.AddorUpdateData(deviceData);
|
|
|
|
|
var dataDto = deviceData.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dataDto);
|
|
|
|
|
var deviceData = device.CreateData(Keys.Light, light, DeviceDataType.Int, "光照度", "lux", desc, timestamp: timestamp);
|
|
|
|
|
if (!device.Data.Any(o => o.Key == Keys.Light))
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(deviceData);
|
|
|
|
|
dataList.Add(deviceData);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (device.Name == "温湿度传感器")
|
|
|
|
|
{
|
|
|
|
|
var temperature = BitConverter.ToInt16(ms.Read(2)) / 100f;
|
|
|
|
|
var data1 = device.CreateData(Keys.Temperature, temperature, DeviceDataType.Float, "温度", "℃", this.GetDescription(Keys.Temperature, temperature));
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
|
var data1 = device.CreateData(Keys.Temperature, temperature, DeviceDataType.Float, "温度", "℃", this.GetDescription(Keys.Temperature, temperature), timestamp: timestamp);
|
|
|
|
|
if (!device.Data.Any(o => o.Key == Keys.Temperature))
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
dataList.Add(data1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var humidity = BitConverter.ToInt16(ms.Read(2)) / 100f;
|
|
|
|
|
var data2 = device.CreateData(Keys.Humidity, humidity, DeviceDataType.Float, "湿度", "RH%", this.GetDescription(Keys.Humidity, humidity));
|
|
|
|
|
device.AddorUpdateData(data2);
|
|
|
|
|
var dto2 = data2.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto2);
|
|
|
|
|
var data2 = device.CreateData(Keys.Humidity, humidity, DeviceDataType.Float, "湿度", "RH%", this.GetDescription(Keys.Humidity, humidity), timestamp: timestamp);
|
|
|
|
|
if (!device.Data.Any(o => o.Key == Keys.Humidity))
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(data2);
|
|
|
|
|
dataList.Add(data2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (device.Name == "烟雾报警器" || device.Name == "人体感应器")
|
|
|
|
|
{
|
|
|
|
|
var state = BitConverter.ToInt16(ms.Read(2));
|
|
|
|
|
var data1 = device.CreateData(Keys.Warning, state == 1 ? "警报" : "正常", DeviceDataType.String, "状态");
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
|
var data1 = device.CreateData(Keys.Warning, state == 1 ? "警报" : "正常", DeviceDataType.String, "状态", timestamp: timestamp);
|
|
|
|
|
if (!device.Data.Any(o => o.Key == Keys.Warning))
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
dataList.Add(data1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//var historyData = ms.ReadHexString((int)(ms.Length - ms.Position));
|
|
|
|
|
//device.AddorUpdateData(device.CreateData(Keys.Data, historyData, DeviceDataType.String, Keys.Data, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.ZoneType, zoneType, DeviceDataType.String, Keys.ZoneType, hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.ZoneType, zoneType, DeviceDataType.String, Keys.ZoneType, hidden: true, timestamp: timestamp));
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
var deviceDto = device.To<EditDeviceModel>();
|
|
|
|
|
this.SendToServer(Methods.EditDevice, deviceDto);
|
|
|
|
|
foreach (var item in device.Data.Where(o => !o.Hidden))
|
|
|
|
|
foreach (var item in dataList)
|
|
|
|
|
{
|
|
|
|
|
this.SendDataToServer(item);
|
|
|
|
|
}
|
|
|
|
@ -683,6 +694,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X07(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -701,20 +713,20 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
{
|
|
|
|
|
if (endpoint == 0x10)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L1State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L1状态"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L1State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L1状态", timestamp: timestamp));
|
|
|
|
|
}
|
|
|
|
|
else if (endpoint == 0x11)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L2State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L2状态"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L2State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L2状态", timestamp: timestamp));
|
|
|
|
|
}
|
|
|
|
|
else if (endpoint == 0x12)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L3State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L3状态"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.L3State, switchState == 0 ? "关" : "开", DeviceDataType.String, "L3状态", timestamp: timestamp));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.State, switchState == 0 ? "关" : (switchState == 1 ? "开" : "停"), DeviceDataType.String, "状态"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.State, switchState == 0 ? "关" : (switchState == 1 ? "开" : "停"), DeviceDataType.String, "状态", timestamp: timestamp));
|
|
|
|
|
}
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
foreach (var item in device.Data.Where(o => !o.Hidden))
|
|
|
|
@ -753,6 +765,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X08(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -765,7 +778,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var device = this.GetDeviceByAddress(deviceRepo, sn, address);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Brightness, ms.ReadByte(), DeviceDataType.Int, "亮度"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Brightness, ms.ReadByte(), DeviceDataType.Int, "亮度", timestamp: timestamp));
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Brightness));
|
|
|
|
|
}
|
|
|
|
@ -798,6 +811,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X09(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -810,7 +824,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var device = this.GetDeviceByAddress(deviceRepo, sn, address);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Hue, ms.ReadByte(), DeviceDataType.Int, "色调"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Hue, ms.ReadByte(), DeviceDataType.Int, "色调", timestamp: timestamp));
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Hue));
|
|
|
|
|
}
|
|
|
|
@ -829,6 +843,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X0A(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -841,7 +856,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var device = this.GetDeviceByAddress(deviceRepo, sn, address);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Saturation, ms.ReadByte(), DeviceDataType.Int, "饱和度"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.Saturation, ms.ReadByte(), DeviceDataType.Int, "饱和度", timestamp: timestamp));
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Saturation));
|
|
|
|
|
}
|
|
|
|
@ -928,6 +943,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X15(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -949,8 +965,8 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
gateway.UserName = ms.ReadASIIString(20);
|
|
|
|
|
gateway.Password = ms.ReadASIIString(20);
|
|
|
|
|
|
|
|
|
|
gateway.AddorUpdateData(gateway.CreateData(Keys.Version, version, DeviceDataType.String, "版本"));
|
|
|
|
|
gateway.AddorUpdateData(gateway.CreateData(Keys.DeviceCount, ms.ReadByte(), DeviceDataType.Int, "设备数量"));
|
|
|
|
|
gateway.AddorUpdateData(gateway.CreateData(Keys.Version, version, DeviceDataType.String, "版本", timestamp: timestamp));
|
|
|
|
|
gateway.AddorUpdateData(gateway.CreateData(Keys.DeviceCount, ms.ReadByte(), DeviceDataType.Int, "设备数量", timestamp: timestamp));
|
|
|
|
|
gatewayRepo.SaveChanges();
|
|
|
|
|
this.SendDataToServer(gateway.Data.FirstOrDefault(o => o.Key == Keys.Version));
|
|
|
|
|
this.SendDataToServer(gateway.Data.FirstOrDefault(o => o.Key == Keys.DeviceCount));
|
|
|
|
@ -991,6 +1007,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X27(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -1003,7 +1020,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var device = this.GetDeviceByAddress(deviceRepo, sn, address);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.ColorTemperature, ms.ReadInt(), DeviceDataType.Int, "色温"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData(Keys.ColorTemperature, ms.ReadInt(), DeviceDataType.Int, "色温", timestamp: timestamp));
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.ColorTemperature));
|
|
|
|
|
}
|
|
|
|
@ -1146,6 +1163,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X70(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
@ -1222,7 +1240,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
{
|
|
|
|
|
var light = BitConverter.ToInt16(props[0x0000]);
|
|
|
|
|
var desc = this.GetDescription(Keys.Light, light);
|
|
|
|
|
var deviceData = device.CreateData(Keys.Light, light, DeviceDataType.Int, "光照度", "lux", desc);
|
|
|
|
|
var deviceData = device.CreateData(Keys.Light, light, DeviceDataType.Int, "光照度", "lux", desc, timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(deviceData);
|
|
|
|
|
var dataDto = deviceData.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dataDto);
|
|
|
|
@ -1230,7 +1248,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
else if (clusterId == ClusterId.alarm)
|
|
|
|
|
{
|
|
|
|
|
var state = BitConverter.ToInt16(props[0x0080]);
|
|
|
|
|
var data1 = device.CreateData(Keys.Warning, state == 1 ? "警报" : "正常", DeviceDataType.String, "状态");
|
|
|
|
|
var data1 = device.CreateData(Keys.Warning, state == 1 ? "警报" : "正常", DeviceDataType.String, "状态", timestamp: timestamp);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
@ -1247,8 +1265,8 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var pm1d0 = BitConverter.ToInt16(props[0x0002]);
|
|
|
|
|
var pm10 = BitConverter.ToInt16(props[0x0001]);
|
|
|
|
|
|
|
|
|
|
var data1 = device.CreateData(Keys.PM25, pm2d5, DeviceDataType.Int, "PM2.5", "μg/m³", this.GetDescription(Keys.PM25, pm2d5));
|
|
|
|
|
var data2 = device.CreateData(Keys.PM100, pm1d0, DeviceDataType.Int, "PM10", "μg/m³", this.GetDescription(Keys.PM100, pm1d0));
|
|
|
|
|
var data1 = device.CreateData(Keys.PM25, pm2d5, DeviceDataType.Int, "PM2.5", "μg/m³", this.GetDescription(Keys.PM25, pm2d5), timestamp: timestamp);
|
|
|
|
|
var data2 = device.CreateData(Keys.PM100, pm1d0, DeviceDataType.Int, "PM10", "μg/m³", this.GetDescription(Keys.PM100, pm1d0), timestamp: timestamp);
|
|
|
|
|
var data3 = device.CreateData(Keys.PM10, pm10, DeviceDataType.Int, "PM1.0", "μg/m³");
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
device.AddorUpdateData(data2);
|
|
|
|
@ -1264,7 +1282,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
{
|
|
|
|
|
var temperature = BitConverter.ToInt16(props[0x0000]) / 100f;
|
|
|
|
|
var desc = this.GetDescription(Keys.Temperature, temperature);
|
|
|
|
|
var data1 = device.CreateData(Keys.Temperature, temperature, DeviceDataType.Float, "温度", "℃", desc);
|
|
|
|
|
var data1 = device.CreateData(Keys.Temperature, temperature, DeviceDataType.Float, "温度", "℃", desc, timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
@ -1273,14 +1291,14 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
{
|
|
|
|
|
var humidity = BitConverter.ToInt16(props[0x0000]) / 100f;
|
|
|
|
|
var desc = this.GetDescription(Keys.Humidity, humidity);
|
|
|
|
|
var data1 = device.CreateData(Keys.Humidity, humidity, DeviceDataType.Float, "湿度", "RH%", desc);
|
|
|
|
|
var data1 = device.CreateData(Keys.Humidity, humidity, DeviceDataType.Float, "湿度", "RH%", desc, timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
|
}
|
|
|
|
|
else if (clusterId == ClusterId.voltage)
|
|
|
|
|
{
|
|
|
|
|
var data1 = device.CreateData(Keys.Voltage, props[0x21][0] / 2f, DeviceDataType.Float, "电量", hidden: true);
|
|
|
|
|
var data1 = device.CreateData(Keys.Voltage, props[0x21][0] / 2f, DeviceDataType.Float, "电量", hidden: true, timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
@ -1295,7 +1313,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
tempBytes.Add(0x00);
|
|
|
|
|
var electricity = BitConverter.ToInt64(tempBytes.ToArray()) / 1000f;
|
|
|
|
|
|
|
|
|
|
var data1 = device.CreateData(Keys.Electricity, electricity, DeviceDataType.Float, "电量", "kWh");
|
|
|
|
|
var data1 = device.CreateData(Keys.Electricity, electricity, DeviceDataType.Float, "电量", "kWh", timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
@ -1311,7 +1329,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
var irVersion = BitConverter.ToString((props[0x400a].Skip(3).Take(6).ToArray())).Replace("-", "").ToLower();
|
|
|
|
|
if (!string.IsNullOrEmpty(irVersion))
|
|
|
|
|
{
|
|
|
|
|
var data1 = device.CreateData(Keys.Version, irVersion, DeviceDataType.String, "红外版本");
|
|
|
|
|
var data1 = device.CreateData(Keys.Version, irVersion, DeviceDataType.String, "红外版本", timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
@ -1326,7 +1344,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
if (irDeviceType == 0x01)
|
|
|
|
|
{
|
|
|
|
|
var keyCode = BitConverter.ToInt16(irdata.Skip(12).Take(2).ToArray());
|
|
|
|
|
var data1 = device.CreateData(Keys.KeyPress, keyCode, DeviceDataType.Int, "按键");
|
|
|
|
|
var data1 = device.CreateData(Keys.KeyPress, keyCode, DeviceDataType.Int, "按键", timestamp: timestamp);
|
|
|
|
|
device.AddorUpdateData(data1);
|
|
|
|
|
var dto1 = data1.To<EditDataModel>();
|
|
|
|
|
dataList.Add(dto1);
|
|
|
|
|