From ca7970afa168c175392a51c265b859f03b2c2be3 Mon Sep 17 00:00:00 2001 From: PandaX <18610165312@163.com> Date: Thu, 9 Jan 2025 07:26:50 +0000 Subject: [PATCH] =?UTF-8?q?[fix]=20=E8=AE=BE=E5=A4=87=E7=AB=AF=E5=A4=9A?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=B8=8A=E4=BC=A0=E4=BF=9D=E5=AD=98=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: PandaX <18610165312@163.com> --- .../nodes/action_save_attributes_node.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/rule_engine/nodes/action_save_attributes_node.go b/pkg/rule_engine/nodes/action_save_attributes_node.go index 111bf4c..494f213 100644 --- a/pkg/rule_engine/nodes/action_save_attributes_node.go +++ b/pkg/rule_engine/nodes/action_save_attributes_node.go @@ -40,6 +40,27 @@ func (n *saveAttributesNode) Handle(msg *message.Message) error { } else { return errors.New("元数据中为获取到设备ID") } + msgData := make(map[string]any) + // 去掉多余的参数 + if pid, ok := msg.Metadata.GetValue("productId").(string); ok { + pts, err := services.ProductTemplateModelDao.FindList(entity.ProductTemplate{Pid: pid, Classify: strings.ToLower(message.AttributesMes)}) + if err != nil { + return errors.New("为获取到设备物模型信息") + } + for _, pt := range *pts { + value := msg.Msg.GetValue(pt.key) + msgData[pt.key] = value + } + } else { + return errors.New("元素组中为获取到设备ID") + } + ts := msg.Msg.GetValue("ts") + if ts == nil { + msgData["ts"] = time.Now().Local().Format("2006-01-02 15:04:05.000") + } else { + msgData["ts"] = ts + } + err := global.TdDb.InsertDevice(deviceName+"_telemetry", msgData) err := global.TdDb.InsertDevice(deviceName+"_attributes", msg.Msg) if err != nil { n.Debug(msg, message.DEBUGOUT, err.Error())