public static async Task UpdateDeviceData(Device device, Protocol.PT_RX.Packet packet) { device.Datapoint.LatestDataValues = packet; device.Datapoint.LastUpdate = DateTime.Now; //string newData = CI.GetDataFromPacket(packet.MGW_RX_DATA, packet.MGW_RX_DATA_TYPE, ""); foreach (Node node in device.Node) { switch (node.Type) { case "RSSI": { node.Value = packet.MGW_RX_RSSI.ToString(); break; } case "Battery": { node.Value = packet.MGW_RX_BATTERY.ToString(); break; } case "Dimmer": { node.Value = packet.MGW_RX_INFO_SHORT.ToString(); break; } default: { node.Value = CI.GetDataFromPacket(packet.MGW_RX_DATA, packet.MGW_RX_DATA_TYPE, ""); break; } } MyLogger.DoLog($"Updating data for {device.Name}'s {node.Name}: {node.Value}...", 4); await MQTT.SendMQTTMessageAsync($"{device.Name}/{node.PathName}/{node.PropertyList[0].PathName}", node.Value, true); } }