diff --git a/meshview/lang/en.json b/meshview/lang/en.json
index 46b0a23..bff56f1 100644
--- a/meshview/lang/en.json
+++ b/meshview/lang/en.json
@@ -168,6 +168,7 @@
"channel": "Channel",
"latitude": "Latitude",
"longitude": "Longitude",
+ "first_update": "First Update",
"last_update": "Last Update",
"battery_voltage": "Battery & Voltage",
"air_channel": "Air & Channel Utilization",
diff --git a/meshview/lang/es.json b/meshview/lang/es.json
index 8311fd2..735b7a6 100644
--- a/meshview/lang/es.json
+++ b/meshview/lang/es.json
@@ -154,6 +154,7 @@
"channel": "Canal",
"latitude": "Latitud",
"longitude": "Longitud",
+ "first_update": "Primera Actualización",
"last_update": "Última Actualización",
"battery_voltage": "Batería y voltaje",
"air_channel": "Utilización del aire y del canal",
diff --git a/meshview/templates/node.html b/meshview/templates/node.html
index b6577bf..d20fe58 100644
--- a/meshview/templates/node.html
+++ b/meshview/templates/node.html
@@ -364,6 +364,7 @@
Latitude: —
Longitude: —
+ First Update: —
Last Update: —
Statistics:
@@ -595,6 +596,10 @@ function makeNodePopup(node) {
${nodeTranslations.last_update || "Last Update"}:
${formatLastSeen(node.last_seen_us)}
+
+
+ ${nodeTranslations.first_update || "First Update"}:
+ ${formatLastSeen(node.first_seen_us)}
`;
}
@@ -708,6 +713,11 @@ async function loadNodeInfo(){
if (node.last_seen_us) {
lastSeen = formatLastSeen(node.last_seen_us);
}
+ let firstSeen = "—";
+ if (node.first_seen_us) {
+ firstSeen = formatLastSeen(node.first_seen_us);
+ }
+ document.getElementById("info-first-update").textContent = firstSeen;
document.getElementById("info-last-update").textContent = lastSeen;
loadNodeStats(node.node_id);
} catch (err) {
diff --git a/meshview/web_api/api.py b/meshview/web_api/api.py
index 5895585..abba719 100644
--- a/meshview/web_api/api.py
+++ b/meshview/web_api/api.py
@@ -85,6 +85,7 @@ async def api_nodes(request):
"last_long": getattr(n, "last_long", None),
"channel": n.channel,
# "last_update": n.last_update.isoformat(),
+ "first_seen_us": n.first_seen_us,
"last_seen_us": n.last_seen_us,
}
)