mirror of
https://github.com/thingsboard/thingsboard-gateway
synced 2025-10-26 22:31:42 +08:00
Added ability to use timestamp from devices message (if "ts" found in converter output dictionary.)
To use this feature, converted data structure must be like:
{
"deviceName": "Device",
"deviceType": "default",
"attributes": [],
"telemetry": {
"ts": 1580214207748,
"values": {
"telemetry1": 400,
"telemetry2": 200
}
}
}
This commit is contained in:
@@ -262,9 +262,16 @@ class TBGatewayService:
|
||||
self.__connector_incoming_messages[connector_name] += 1
|
||||
|
||||
telemetry = {}
|
||||
telemetry_with_ts = []
|
||||
for item in data["telemetry"]:
|
||||
telemetry = {**telemetry, **item}
|
||||
data["telemetry"] = {"ts": int(time.time() * 1000), "values": telemetry}
|
||||
if item.get("ts") is None:
|
||||
telemetry = {**telemetry, **item}
|
||||
else:
|
||||
telemetry_with_ts.append({"ts": item["ts"], "values": {**item["values"]}})
|
||||
if telemetry_with_ts:
|
||||
data["telemetry"] = telemetry_with_ts
|
||||
else:
|
||||
data["telemetry"] = {"ts": int(time.time() * 1000), "values": telemetry}
|
||||
|
||||
json_data = dumps(data)
|
||||
save_result = self._event_storage.put(json_data)
|
||||
|
||||
@@ -108,12 +108,17 @@ class TBUtility:
|
||||
full_value = None
|
||||
try:
|
||||
if value_type == "string":
|
||||
full_value = expression[0: min(abs(p1 - 2), 0)] + body[target_str.split()[0]] + expression[p2 + 1:len(expression)]
|
||||
try:
|
||||
full_value = expression[0: min(abs(p1 - 2), 0)] + body[target_str.split()[0]] + expression[p2 + 1:len(expression)]
|
||||
except KeyError:
|
||||
pass
|
||||
if full_value is None:
|
||||
try:
|
||||
full_value = search(expression, body).group(0)
|
||||
except Exception as e:
|
||||
full_value = None
|
||||
if full_value is None:
|
||||
full_value = expression
|
||||
else:
|
||||
try:
|
||||
full_value = body.get(target_str.split()[0])
|
||||
|
||||
Reference in New Issue
Block a user