diff --git a/src/lib/ae_events__event_device.ts b/src/lib/ae_events__event_device.ts
index 06594bd6..46fd051b 100644
--- a/src/lib/ae_events__event_device.ts
+++ b/src/lib/ae_events__event_device.ts
@@ -483,6 +483,8 @@ export function db_save_ae_obj_li__event_device(
record_status: obj.record_status,
record_status_msg: obj.record_status_msg,
record_status_on: obj.record_status_on,
+ // These are timestamps that are in UTC but missing the 'Z' at the end
+ heartbeat: obj.heartbeat ? obj.heartbeat+'Z' : null,
info_hostname: obj.info_hostname,
info_ip_list: obj.info_ip_list,
diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts
index 8d5a5fb1..9c4958ec 100644
--- a/src/lib/db_events.ts
+++ b/src/lib/db_events.ts
@@ -174,6 +174,7 @@ export interface Device {
record_status?: null|string;
record_status_msg?: null|string;
record_status_on?: null|Date;
+ heartbeat?: null|string;
info_hostname?: null|string;
info_ip_list?: null|string; // Semi-colon separated list of IP addresses
diff --git a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte
index cedb4324..8962d024 100644
--- a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte
+++ b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte
@@ -247,7 +247,8 @@ if (auto_refresh) {
-
+
+
{@html event_device_obj?.alert_msg ?? 'No message'}
{#if event_device_obj?.alert_on}
@@ -268,7 +269,8 @@ if (auto_refresh) {
-
+
+
{@html event_device_obj?.status_msg ?? 'No message'}
{#if event_device_obj?.status_on}
@@ -296,7 +298,8 @@ if (auto_refresh) {
{/if}
-
+
+
{@html event_device_obj?.record_status_msg ?? 'No message'}
{#if event_device_obj?.record_status_on}
@@ -306,7 +309,7 @@ if (auto_refresh) {
{/if}
-
+
hostname:
{event_device_obj?.info_hostname}
@@ -337,6 +340,19 @@ if (auto_refresh) {
>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'time_iso_12_tz')}
+
+ {#if event_device_obj?.heartbeat}
+
+ Heartbeat:
+
+ {ae_util.iso_datetime_formatter(event_device_obj?.heartbeat, 'time_iso_12_tz')}
+
+ {/if}
diff --git a/src/routes/events/[event_id]/reports/+page.svelte b/src/routes/events/[event_id]/reports/+page.svelte
index cc1ca47e..51ad1c4a 100644
--- a/src/routes/events/[event_id]/reports/+page.svelte
+++ b/src/routes/events/[event_id]/reports/+page.svelte
@@ -131,8 +131,8 @@ async function handle_qry__event_file(
// It is very important to know that all of the created_on and updated_on timestamps are in ET timezone. Sorry...?
let for_et_tz_datetime = new Date(current_datetime.toLocaleString('en-US', {timeZone: 'America/New_York'}));
- const offset_minutes = for_et_tz_datetime.getTimezoneOffset();
- const adjusted_for_et_tz_datetime = new Date(for_et_tz_datetime.getTime() - offset_minutes * 60 * 1000);
+ const adjust_minutes = for_et_tz_datetime.getTimezoneOffset(); // Usually 240 minutes for ET.
+ const adjusted_for_et_tz_datetime = new Date(for_et_tz_datetime.getTime() - adjust_minutes * 60 * 1000);
const adjusted_for_et_tz_datetime_iso_str = adjusted_for_et_tz_datetime.toISOString().slice(0, -1);
console.log(`Adjusted for ET TZ time:`, adjusted_for_et_tz_datetime_iso_str);