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
|
self.__connector_incoming_messages[connector_name] += 1
|
||||||
|
|
||||||
telemetry = {}
|
telemetry = {}
|
||||||
|
telemetry_with_ts = []
|
||||||
for item in data["telemetry"]:
|
for item in data["telemetry"]:
|
||||||
telemetry = {**telemetry, **item}
|
if item.get("ts") is None:
|
||||||
data["telemetry"] = {"ts": int(time.time() * 1000), "values": telemetry}
|
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)
|
json_data = dumps(data)
|
||||||
save_result = self._event_storage.put(json_data)
|
save_result = self._event_storage.put(json_data)
|
||||||
|
|||||||
@@ -108,12 +108,17 @@ class TBUtility:
|
|||||||
full_value = None
|
full_value = None
|
||||||
try:
|
try:
|
||||||
if value_type == "string":
|
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:
|
if full_value is None:
|
||||||
try:
|
try:
|
||||||
full_value = search(expression, body).group(0)
|
full_value = search(expression, body).group(0)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
full_value = None
|
full_value = None
|
||||||
|
if full_value is None:
|
||||||
|
full_value = expression
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
full_value = body.get(target_str.split()[0])
|
full_value = body.get(target_str.split()[0])
|
||||||
|
|||||||
Reference in New Issue
Block a user