Refactor golden image handling in backup upload process</message>

<message>Update the _set_golden_from_path function to improve the handling of existing golden image files. Replace the existing unlink logic with a more robust method that safely removes files or broken symlinks using the missing_ok parameter. This change enhances the reliability of the backup upload process by ensuring that stale references are properly cleared before setting a new golden image path.
This commit is contained in:
nearxos
2026-02-24 00:19:40 +02:00
parent df180120aa
commit 808fbf5c7c
136 changed files with 407837 additions and 2 deletions

View File

@@ -0,0 +1,345 @@
{"timestamp":"2026-02-23T22:46:10.124927","level":"INFO","source":"system","message":"GNSS Guard starting","data":{"config":{"asset_name":"OFFICE_LAB","iteration_period_seconds":30,"stale_threshold_seconds":60,"validation_threshold_meters":200.0,"startup_warmup_seconds":5,"positions_raw_retention_days":5,"positions_validation_retention_days":5,"log_retention_days":14,"tm_ais_url":"https://localhost:8443/location","tm_ais_enabled":true,"tm_ais_max_retries":1,"starlink_ip":"10.130.60.70","starlink_port":9200,"starlink_enabled":true,"starlink_max_retries":1,"nmea_primary_enabled":true,"nmea_secondary_enabled":true,"database_path":"data/gnss_guard.db","logs_base_path":"logs","web_enabled":true,"web_host":"0.0.0.0","web_port":8080,"web_show_route":true}}}
{"timestamp":"2026-02-23T22:46:10.126502","level":"INFO","source":"system","message":"DEMO_UNIT mode - no database writes"}
{"timestamp":"2026-02-23T22:46:10.127389","level":"INFO","source":"system","message":"Startup warm-up period","data":{"warmup_seconds":5}}
{"timestamp":"2026-02-23T22:46:10.127998","level":"INFO","source":"nmea_primary","message":"Starting connection to device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001}}
{"timestamp":"2026-02-23T22:46:10.129255","level":"ERROR","source":"nmea_primary","message":"Network error for device nmea_primary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4001}}
{"timestamp":"2026-02-23T22:46:10.130714","level":"INFO","source":"nmea_secondary","message":"Starting connection to device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002}}
{"timestamp":"2026-02-23T22:46:10.132229","level":"ERROR","source":"nmea_secondary","message":"Network error for device nmea_secondary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4002}}
{"timestamp":"2026-02-23T22:46:15.136020","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:46:15.135561+00:00","timestamp_unix":1771879575.135561}}}
{"timestamp":"2026-02-23T22:46:15.136213","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:46:15.135588+00:00","timestamp_unix":1771879575.135588}}}
{"timestamp":"2026-02-23T22:46:15.136326","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:46:15.135575+00:00","timestamp_unix":1771879575.135575}}}
{"timestamp":"2026-02-23T22:46:15.136420","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:46:15.135475+00:00","timestamp_unix":1771879575.135475}}}
{"timestamp":"2026-02-23T22:46:15.136508","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:46:15.135543+00:00","timestamp_unix":1771879575.135543}}}
{"timestamp":"2026-02-23T22:46:15.155432","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:46:15.136736+00:00","validation_timestamp_unix":1771879575.136736,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:46:15.135561+00:00","timestamp_unix":1771879575.135561},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:46:15.135588+00:00","timestamp_unix":1771879575.135588},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:46:15.135575+00:00","timestamp_unix":1771879575.135575},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:46:15.135475+00:00","timestamp_unix":1771879575.135475},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:46:15.135543+00:00","timestamp_unix":1771879575.135543}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:46:15.155998","level":"WARNING","source":"buzzer","message":"Alarm started: GPS jamming/spoofing detected (distance exceeded threshold)"}
{"timestamp":"2026-02-23T22:46:15.159100","level":"ERROR","source":"nmea_primary","message":"Network error for device nmea_primary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4001}}
{"timestamp":"2026-02-23T22:46:15.161128","level":"ERROR","source":"nmea_secondary","message":"Network error for device nmea_secondary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4002}}
{"timestamp":"2026-02-23T22:46:30.162167","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:46:30.163835","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:46:45.208056","level":"INFO","source":"system","message":"GNSS Guard stopped"}
{"timestamp":"2026-02-23T22:47:18.807086","level":"INFO","source":"system","message":"GNSS Guard starting","data":{"config":{"asset_name":"OFFICE_LAB","iteration_period_seconds":30,"stale_threshold_seconds":60,"validation_threshold_meters":200.0,"startup_warmup_seconds":5,"positions_raw_retention_days":5,"positions_validation_retention_days":5,"log_retention_days":14,"tm_ais_url":"https://localhost:8443/location","tm_ais_enabled":true,"tm_ais_max_retries":1,"starlink_ip":"10.130.60.70","starlink_port":9200,"starlink_enabled":true,"starlink_max_retries":1,"nmea_primary_enabled":true,"nmea_secondary_enabled":true,"database_path":"data/gnss_guard.db","logs_base_path":"logs","web_enabled":true,"web_host":"0.0.0.0","web_port":8080,"web_show_route":true}}}
{"timestamp":"2026-02-23T22:47:18.809486","level":"INFO","source":"system","message":"DEMO_UNIT mode - no database writes"}
{"timestamp":"2026-02-23T22:47:18.810620","level":"INFO","source":"system","message":"Startup warm-up period","data":{"warmup_seconds":5}}
{"timestamp":"2026-02-23T22:47:18.811272","level":"INFO","source":"nmea_primary","message":"Starting connection to device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001}}
{"timestamp":"2026-02-23T22:47:18.812711","level":"ERROR","source":"nmea_primary","message":"Network error for device nmea_primary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4001}}
{"timestamp":"2026-02-23T22:47:18.813713","level":"INFO","source":"nmea_secondary","message":"Starting connection to device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002}}
{"timestamp":"2026-02-23T22:47:18.814929","level":"ERROR","source":"nmea_secondary","message":"Network error for device nmea_secondary","data":{"error":"[Errno 101] Network is unreachable","device_ip":"10.130.60.61","device_port":4002}}
{"timestamp":"2026-02-23T22:47:23.824661","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:47:23.823939+00:00","timestamp_unix":1771879643.823939}}}
{"timestamp":"2026-02-23T22:47:23.825526","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:47:23.823968+00:00","timestamp_unix":1771879643.823968}}}
{"timestamp":"2026-02-23T22:47:23.826240","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:47:23.823954+00:00","timestamp_unix":1771879643.823954}}}
{"timestamp":"2026-02-23T22:47:23.826556","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:47:23.823813+00:00","timestamp_unix":1771879643.823813}}}
{"timestamp":"2026-02-23T22:47:23.826728","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:47:23.823918+00:00","timestamp_unix":1771879643.823918}}}
{"timestamp":"2026-02-23T22:47:23.875512","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:47:23.827103+00:00","validation_timestamp_unix":1771879643.827103,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:23.823939+00:00","timestamp_unix":1771879643.823939},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:47:23.823968+00:00","timestamp_unix":1771879643.823968},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:23.823954+00:00","timestamp_unix":1771879643.823954},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:23.823813+00:00","timestamp_unix":1771879643.823813},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:23.823918+00:00","timestamp_unix":1771879643.823918}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:47:23.878079","level":"WARNING","source":"buzzer","message":"Alarm started: GPS jamming/spoofing detected (distance exceeded threshold)"}
{"timestamp":"2026-02-23T22:47:33.882690","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:47:33.887174","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:47:48.885387","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:47:48.889741","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:47:53.815054","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:47:53.813529+00:00","timestamp_unix":1771879673.813529}}}
{"timestamp":"2026-02-23T22:47:53.815319","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:47:53.813556+00:00","timestamp_unix":1771879673.813556}}}
{"timestamp":"2026-02-23T22:47:53.815443","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:47:53.813543+00:00","timestamp_unix":1771879673.813543}}}
{"timestamp":"2026-02-23T22:47:53.815600","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:47:53.813436+00:00","timestamp_unix":1771879673.813436}}}
{"timestamp":"2026-02-23T22:47:53.815698","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:47:53.813514+00:00","timestamp_unix":1771879673.813514}}}
{"timestamp":"2026-02-23T22:47:53.864526","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:47:53.816048+00:00","validation_timestamp_unix":1771879673.816048,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:53.813529+00:00","timestamp_unix":1771879673.813529},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:47:53.813556+00:00","timestamp_unix":1771879673.813556},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:53.813543+00:00","timestamp_unix":1771879673.813543},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:53.813436+00:00","timestamp_unix":1771879673.813436},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:47:53.813514+00:00","timestamp_unix":1771879673.813514}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:48:03.888362","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:48:03.892844","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:48:18.890968","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:48:18.895195","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:48:23.815763","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:48:23.815386+00:00","timestamp_unix":1771879703.815386}}}
{"timestamp":"2026-02-23T22:48:23.815927","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:48:23.815413+00:00","timestamp_unix":1771879703.815413}}}
{"timestamp":"2026-02-23T22:48:23.816016","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:48:23.815400+00:00","timestamp_unix":1771879703.8154}}}
{"timestamp":"2026-02-23T22:48:23.816099","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:48:23.815321+00:00","timestamp_unix":1771879703.815321}}}
{"timestamp":"2026-02-23T22:48:23.816177","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:48:23.815372+00:00","timestamp_unix":1771879703.815372}}}
{"timestamp":"2026-02-23T22:48:23.848734","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:48:23.816335+00:00","validation_timestamp_unix":1771879703.816335,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:23.815386+00:00","timestamp_unix":1771879703.815386},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:48:23.815413+00:00","timestamp_unix":1771879703.815413},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:23.815400+00:00","timestamp_unix":1771879703.8154},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:23.815321+00:00","timestamp_unix":1771879703.815321},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:23.815372+00:00","timestamp_unix":1771879703.815372}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:48:33.893803","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:48:33.898407","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:48:48.897743","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:48:48.901615","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:48:53.818367","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:48:53.817149+00:00","timestamp_unix":1771879733.817149}}}
{"timestamp":"2026-02-23T22:48:53.819643","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:48:53.817250+00:00","timestamp_unix":1771879733.81725}}}
{"timestamp":"2026-02-23T22:48:53.819892","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:48:53.817164+00:00","timestamp_unix":1771879733.817164}}}
{"timestamp":"2026-02-23T22:48:53.820055","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:48:53.817059+00:00","timestamp_unix":1771879733.817059}}}
{"timestamp":"2026-02-23T22:48:53.820190","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:48:53.817132+00:00","timestamp_unix":1771879733.817132}}}
{"timestamp":"2026-02-23T22:48:53.844895","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:48:53.820550+00:00","validation_timestamp_unix":1771879733.82055,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:53.817149+00:00","timestamp_unix":1771879733.817149},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:48:53.817250+00:00","timestamp_unix":1771879733.81725},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:53.817164+00:00","timestamp_unix":1771879733.817164},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:53.817059+00:00","timestamp_unix":1771879733.817059},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:48:53.817132+00:00","timestamp_unix":1771879733.817132}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:49:03.901559","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:49:03.905116","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:49:18.904130","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:49:18.908554","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:49:23.817871","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:49:23.817537+00:00","timestamp_unix":1771879763.817537}}}
{"timestamp":"2026-02-23T22:49:23.818151","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:49:23.817586+00:00","timestamp_unix":1771879763.817586}}}
{"timestamp":"2026-02-23T22:49:23.818320","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:49:23.817550+00:00","timestamp_unix":1771879763.81755}}}
{"timestamp":"2026-02-23T22:49:23.818428","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:49:23.817476+00:00","timestamp_unix":1771879763.817476}}}
{"timestamp":"2026-02-23T22:49:23.818517","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:49:23.817522+00:00","timestamp_unix":1771879763.817522}}}
{"timestamp":"2026-02-23T22:49:23.846511","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:49:23.818835+00:00","validation_timestamp_unix":1771879763.818835,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:23.817537+00:00","timestamp_unix":1771879763.817537},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:49:23.817586+00:00","timestamp_unix":1771879763.817586},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:23.817550+00:00","timestamp_unix":1771879763.81755},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:23.817476+00:00","timestamp_unix":1771879763.817476},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:23.817522+00:00","timestamp_unix":1771879763.817522}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:49:33.906784","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:49:33.911253","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:49:48.910414","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:49:48.915018","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:49:53.818928","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:49:53.818612+00:00","timestamp_unix":1771879793.818612}}}
{"timestamp":"2026-02-23T22:49:53.819100","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:49:53.818637+00:00","timestamp_unix":1771879793.818637}}}
{"timestamp":"2026-02-23T22:49:53.819194","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:49:53.818625+00:00","timestamp_unix":1771879793.818625}}}
{"timestamp":"2026-02-23T22:49:53.819281","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:49:53.818549+00:00","timestamp_unix":1771879793.818549}}}
{"timestamp":"2026-02-23T22:49:53.819363","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:49:53.818596+00:00","timestamp_unix":1771879793.818596}}}
{"timestamp":"2026-02-23T22:49:53.853132","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:49:53.819539+00:00","validation_timestamp_unix":1771879793.819539,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:53.818612+00:00","timestamp_unix":1771879793.818612},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:49:53.818637+00:00","timestamp_unix":1771879793.818637},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:53.818625+00:00","timestamp_unix":1771879793.818625},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:53.818549+00:00","timestamp_unix":1771879793.818549},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:49:53.818596+00:00","timestamp_unix":1771879793.818596}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:50:03.912836","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:50:03.917970","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:50:18.916354","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:50:18.920628","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:50:23.820204","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:50:23.819162+00:00","timestamp_unix":1771879823.819162}}}
{"timestamp":"2026-02-23T22:50:23.820443","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:50:23.819189+00:00","timestamp_unix":1771879823.819189}}}
{"timestamp":"2026-02-23T22:50:23.820584","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:50:23.819176+00:00","timestamp_unix":1771879823.819176}}}
{"timestamp":"2026-02-23T22:50:23.820687","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:50:23.819082+00:00","timestamp_unix":1771879823.819082}}}
{"timestamp":"2026-02-23T22:50:23.821320","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:50:23.819146+00:00","timestamp_unix":1771879823.819146}}}
{"timestamp":"2026-02-23T22:50:23.854158","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:50:23.822277+00:00","validation_timestamp_unix":1771879823.822277,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:23.819162+00:00","timestamp_unix":1771879823.819162},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:50:23.819189+00:00","timestamp_unix":1771879823.819189},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:23.819176+00:00","timestamp_unix":1771879823.819176},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:23.819082+00:00","timestamp_unix":1771879823.819082},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:23.819146+00:00","timestamp_unix":1771879823.819146}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:50:33.920836","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:50:33.924320","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:50:48.923070","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:50:48.927416","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:50:53.820337","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:50:53.819936+00:00","timestamp_unix":1771879853.819936}}}
{"timestamp":"2026-02-23T22:50:53.820578","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:50:53.819963+00:00","timestamp_unix":1771879853.819963}}}
{"timestamp":"2026-02-23T22:50:53.820695","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:50:53.819950+00:00","timestamp_unix":1771879853.81995}}}
{"timestamp":"2026-02-23T22:50:53.820789","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:50:53.819869+00:00","timestamp_unix":1771879853.819869}}}
{"timestamp":"2026-02-23T22:50:53.820876","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:50:53.819921+00:00","timestamp_unix":1771879853.819921}}}
{"timestamp":"2026-02-23T22:50:53.844653","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:50:53.821110+00:00","validation_timestamp_unix":1771879853.82111,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:53.819936+00:00","timestamp_unix":1771879853.819936},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:50:53.819963+00:00","timestamp_unix":1771879853.819963},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:53.819950+00:00","timestamp_unix":1771879853.81995},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:53.819869+00:00","timestamp_unix":1771879853.819869},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:50:53.819921+00:00","timestamp_unix":1771879853.819921}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:51:03.926307","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:51:03.931205","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:51:18.929675","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:51:18.933639","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:51:23.821611","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:51:23.821100+00:00","timestamp_unix":1771879883.8211}}}
{"timestamp":"2026-02-23T22:51:23.821810","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:51:23.821127+00:00","timestamp_unix":1771879883.821127}}}
{"timestamp":"2026-02-23T22:51:23.821995","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:51:23.821114+00:00","timestamp_unix":1771879883.821114}}}
{"timestamp":"2026-02-23T22:51:23.822107","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:51:23.821008+00:00","timestamp_unix":1771879883.821008}}}
{"timestamp":"2026-02-23T22:51:23.822201","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:51:23.821084+00:00","timestamp_unix":1771879883.821084}}}
{"timestamp":"2026-02-23T22:51:23.847655","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:51:23.822494+00:00","validation_timestamp_unix":1771879883.822494,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:23.821100+00:00","timestamp_unix":1771879883.8211},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:51:23.821127+00:00","timestamp_unix":1771879883.821127},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:23.821114+00:00","timestamp_unix":1771879883.821114},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:23.821008+00:00","timestamp_unix":1771879883.821008},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:23.821084+00:00","timestamp_unix":1771879883.821084}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:51:33.933258","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:51:33.936137","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:51:48.936125","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:51:48.940466","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:51:53.822790","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:51:53.822258+00:00","timestamp_unix":1771879913.822258}}}
{"timestamp":"2026-02-23T22:51:53.822991","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:51:53.822285+00:00","timestamp_unix":1771879913.822285}}}
{"timestamp":"2026-02-23T22:51:53.823106","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:51:53.822272+00:00","timestamp_unix":1771879913.822272}}}
{"timestamp":"2026-02-23T22:51:53.823205","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:51:53.822177+00:00","timestamp_unix":1771879913.822177}}}
{"timestamp":"2026-02-23T22:51:53.823339","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:51:53.822242+00:00","timestamp_unix":1771879913.822242}}}
{"timestamp":"2026-02-23T22:51:53.850451","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:51:53.823625+00:00","validation_timestamp_unix":1771879913.823625,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:53.822258+00:00","timestamp_unix":1771879913.822258},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:51:53.822285+00:00","timestamp_unix":1771879913.822285},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:53.822272+00:00","timestamp_unix":1771879913.822272},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:53.822177+00:00","timestamp_unix":1771879913.822177},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:51:53.822242+00:00","timestamp_unix":1771879913.822242}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:52:03.940344","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:52:03.943838","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:52:18.943750","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:52:18.948782","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:52:23.825508","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:52:23.824981+00:00","timestamp_unix":1771879943.824981}}}
{"timestamp":"2026-02-23T22:52:23.825749","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:52:23.825010+00:00","timestamp_unix":1771879943.82501}}}
{"timestamp":"2026-02-23T22:52:23.825856","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:52:23.824996+00:00","timestamp_unix":1771879943.824996}}}
{"timestamp":"2026-02-23T22:52:23.826033","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:52:23.824888+00:00","timestamp_unix":1771879943.824888}}}
{"timestamp":"2026-02-23T22:52:23.826148","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:52:23.824964+00:00","timestamp_unix":1771879943.824964}}}
{"timestamp":"2026-02-23T22:52:23.860023","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:52:23.826462+00:00","validation_timestamp_unix":1771879943.826462,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:23.824981+00:00","timestamp_unix":1771879943.824981},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:52:23.825010+00:00","timestamp_unix":1771879943.82501},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:23.824996+00:00","timestamp_unix":1771879943.824996},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:23.824888+00:00","timestamp_unix":1771879943.824888},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:23.824964+00:00","timestamp_unix":1771879943.824964}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:52:33.946170","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:52:33.951853","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:52:48.950165","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:52:48.954796","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:52:53.826384","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:52:53.825839+00:00","timestamp_unix":1771879973.825839}}}
{"timestamp":"2026-02-23T22:52:53.826549","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:52:53.825867+00:00","timestamp_unix":1771879973.825867}}}
{"timestamp":"2026-02-23T22:52:53.826648","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:52:53.825853+00:00","timestamp_unix":1771879973.825853}}}
{"timestamp":"2026-02-23T22:52:53.826738","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:52:53.825765+00:00","timestamp_unix":1771879973.825765}}}
{"timestamp":"2026-02-23T22:52:53.826821","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:52:53.825821+00:00","timestamp_unix":1771879973.825821}}}
{"timestamp":"2026-02-23T22:52:53.856580","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:52:53.826994+00:00","validation_timestamp_unix":1771879973.826994,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:53.825839+00:00","timestamp_unix":1771879973.825839},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:52:53.825867+00:00","timestamp_unix":1771879973.825867},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:53.825853+00:00","timestamp_unix":1771879973.825853},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:53.825765+00:00","timestamp_unix":1771879973.825765},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:52:53.825821+00:00","timestamp_unix":1771879973.825821}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:53:03.953648","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:53:03.957135","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:53:18.956256","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:53:18.963561","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:53:23.826822","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:53:23.826229+00:00","timestamp_unix":1771880003.826229}}}
{"timestamp":"2026-02-23T22:53:23.827172","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:53:23.826257+00:00","timestamp_unix":1771880003.826257}}}
{"timestamp":"2026-02-23T22:53:23.827319","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:53:23.826243+00:00","timestamp_unix":1771880003.826243}}}
{"timestamp":"2026-02-23T22:53:23.827460","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:53:23.826151+00:00","timestamp_unix":1771880003.826151}}}
{"timestamp":"2026-02-23T22:53:23.827570","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:53:23.826212+00:00","timestamp_unix":1771880003.826212}}}
{"timestamp":"2026-02-23T22:53:23.864544","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:53:23.827891+00:00","validation_timestamp_unix":1771880003.827891,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:23.826229+00:00","timestamp_unix":1771880003.826229},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:53:23.826257+00:00","timestamp_unix":1771880003.826257},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:23.826243+00:00","timestamp_unix":1771880003.826243},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:23.826151+00:00","timestamp_unix":1771880003.826151},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:23.826212+00:00","timestamp_unix":1771880003.826212}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:53:33.958745","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:53:33.966759","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:53:48.962622","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:53:48.969076","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:53:53.827130","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:53:53.826776+00:00","timestamp_unix":1771880033.826776}}}
{"timestamp":"2026-02-23T22:53:53.827303","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:53:53.826802+00:00","timestamp_unix":1771880033.826802}}}
{"timestamp":"2026-02-23T22:53:53.827397","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:53:53.826790+00:00","timestamp_unix":1771880033.82679}}}
{"timestamp":"2026-02-23T22:53:53.827484","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:53:53.826705+00:00","timestamp_unix":1771880033.826705}}}
{"timestamp":"2026-02-23T22:53:53.827567","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:53:53.826762+00:00","timestamp_unix":1771880033.826762}}}
{"timestamp":"2026-02-23T22:53:53.856027","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:53:53.827740+00:00","validation_timestamp_unix":1771880033.82774,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:53.826776+00:00","timestamp_unix":1771880033.826776},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:53:53.826802+00:00","timestamp_unix":1771880033.826802},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:53.826790+00:00","timestamp_unix":1771880033.82679},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:53.826705+00:00","timestamp_unix":1771880033.826705},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:53:53.826762+00:00","timestamp_unix":1771880033.826762}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:54:03.965987","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:54:03.971379","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:54:18.969350","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:54:18.973833","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:54:23.828331","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:54:23.827104+00:00","timestamp_unix":1771880063.827104}}}
{"timestamp":"2026-02-23T22:54:23.828631","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:54:23.827133+00:00","timestamp_unix":1771880063.827133}}}
{"timestamp":"2026-02-23T22:54:23.828814","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:54:23.827119+00:00","timestamp_unix":1771880063.827119}}}
{"timestamp":"2026-02-23T22:54:23.828941","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:54:23.827012+00:00","timestamp_unix":1771880063.827012}}}
{"timestamp":"2026-02-23T22:54:23.829057","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:54:23.827065+00:00","timestamp_unix":1771880063.827065}}}
{"timestamp":"2026-02-23T22:54:23.856635","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:54:23.829409+00:00","validation_timestamp_unix":1771880063.829409,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:23.827104+00:00","timestamp_unix":1771880063.827104},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:54:23.827133+00:00","timestamp_unix":1771880063.827133},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:23.827119+00:00","timestamp_unix":1771880063.827119},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:23.827012+00:00","timestamp_unix":1771880063.827012},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:23.827065+00:00","timestamp_unix":1771880063.827065}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:54:33.972774","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:54:33.977129","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:54:48.976540","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:54:48.979882","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:54:53.829267","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:54:53.828852+00:00","timestamp_unix":1771880093.828852}}}
{"timestamp":"2026-02-23T22:54:53.829465","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:54:53.828879+00:00","timestamp_unix":1771880093.828879}}}
{"timestamp":"2026-02-23T22:54:53.829608","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:54:53.828866+00:00","timestamp_unix":1771880093.828866}}}
{"timestamp":"2026-02-23T22:54:53.830195","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:54:53.828783+00:00","timestamp_unix":1771880093.828783}}}
{"timestamp":"2026-02-23T22:54:53.830602","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:54:53.828836+00:00","timestamp_unix":1771880093.828836}}}
{"timestamp":"2026-02-23T22:54:53.855158","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:54:53.831265+00:00","validation_timestamp_unix":1771880093.831265,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:53.828852+00:00","timestamp_unix":1771880093.828852},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:54:53.828879+00:00","timestamp_unix":1771880093.828879},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:53.828866+00:00","timestamp_unix":1771880093.828866},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:53.828783+00:00","timestamp_unix":1771880093.828783},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:54:53.828836+00:00","timestamp_unix":1771880093.828836}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:55:03.979193","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:55:03.981318","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:55:18.982800","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:55:18.983832","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:55:23.830806","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:55:23.830222+00:00","timestamp_unix":1771880123.830222}}}
{"timestamp":"2026-02-23T22:55:23.831062","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:55:23.830252+00:00","timestamp_unix":1771880123.830252}}}
{"timestamp":"2026-02-23T22:55:23.831190","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:55:23.830237+00:00","timestamp_unix":1771880123.830237}}}
{"timestamp":"2026-02-23T22:55:23.831300","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:55:23.830133+00:00","timestamp_unix":1771880123.830133}}}
{"timestamp":"2026-02-23T22:55:23.831433","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:55:23.830206+00:00","timestamp_unix":1771880123.830206}}}
{"timestamp":"2026-02-23T22:55:23.861645","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:55:23.831756+00:00","validation_timestamp_unix":1771880123.831756,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:23.830222+00:00","timestamp_unix":1771880123.830222},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:55:23.830252+00:00","timestamp_unix":1771880123.830252},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:23.830237+00:00","timestamp_unix":1771880123.830237},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:23.830133+00:00","timestamp_unix":1771880123.830133},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:23.830206+00:00","timestamp_unix":1771880123.830206}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:55:33.987349","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:55:33.988409","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:55:48.991360","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:55:48.992540","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:55:53.831586","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:55:53.831061+00:00","timestamp_unix":1771880153.831061}}}
{"timestamp":"2026-02-23T22:55:53.831837","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:55:53.831092+00:00","timestamp_unix":1771880153.831092}}}
{"timestamp":"2026-02-23T22:55:53.831958","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:55:53.831076+00:00","timestamp_unix":1771880153.831076}}}
{"timestamp":"2026-02-23T22:55:53.832062","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:55:53.830992+00:00","timestamp_unix":1771880153.830992}}}
{"timestamp":"2026-02-23T22:55:53.832152","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:55:53.831045+00:00","timestamp_unix":1771880153.831045}}}
{"timestamp":"2026-02-23T22:55:53.867050","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:55:53.832504+00:00","validation_timestamp_unix":1771880153.832504,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:53.831061+00:00","timestamp_unix":1771880153.831061},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:55:53.831092+00:00","timestamp_unix":1771880153.831092},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:53.831076+00:00","timestamp_unix":1771880153.831076},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:53.830992+00:00","timestamp_unix":1771880153.830992},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:55:53.831045+00:00","timestamp_unix":1771880153.831045}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:56:03.995636","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:56:03.996791","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:56:18.999583","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:56:19.001025","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:56:23.832144","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:56:23.831294+00:00","timestamp_unix":1771880183.831294}}}
{"timestamp":"2026-02-23T22:56:23.832506","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:56:23.831335+00:00","timestamp_unix":1771880183.831335}}}
{"timestamp":"2026-02-23T22:56:23.832765","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:56:23.831315+00:00","timestamp_unix":1771880183.831315}}}
{"timestamp":"2026-02-23T22:56:23.834116","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:56:23.831204+00:00","timestamp_unix":1771880183.831204}}}
{"timestamp":"2026-02-23T22:56:23.834952","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:56:23.831271+00:00","timestamp_unix":1771880183.831271}}}
{"timestamp":"2026-02-23T22:56:23.867265","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:56:23.836169+00:00","validation_timestamp_unix":1771880183.836169,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:23.831294+00:00","timestamp_unix":1771880183.831294},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:56:23.831335+00:00","timestamp_unix":1771880183.831335},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:23.831315+00:00","timestamp_unix":1771880183.831315},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:23.831204+00:00","timestamp_unix":1771880183.831204},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:23.831271+00:00","timestamp_unix":1771880183.831271}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:56:34.002920","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:56:34.004207","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:56:49.005381","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:56:49.006432","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:56:53.832575","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:56:53.831992+00:00","timestamp_unix":1771880213.831992}}}
{"timestamp":"2026-02-23T22:56:53.832800","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:56:53.832021+00:00","timestamp_unix":1771880213.832021}}}
{"timestamp":"2026-02-23T22:56:53.832936","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:56:53.832007+00:00","timestamp_unix":1771880213.832007}}}
{"timestamp":"2026-02-23T22:56:53.833051","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:56:53.831905+00:00","timestamp_unix":1771880213.831905}}}
{"timestamp":"2026-02-23T22:56:53.833144","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:56:53.831975+00:00","timestamp_unix":1771880213.831975}}}
{"timestamp":"2026-02-23T22:56:53.859002","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:56:53.833453+00:00","validation_timestamp_unix":1771880213.833453,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:53.831992+00:00","timestamp_unix":1771880213.831992},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:56:53.832021+00:00","timestamp_unix":1771880213.832021},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:53.832007+00:00","timestamp_unix":1771880213.832007},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:53.831905+00:00","timestamp_unix":1771880213.831905},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:56:53.831975+00:00","timestamp_unix":1771880213.831975}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:57:04.008483","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:57:04.009633","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:57:19.011357","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:57:19.011972","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:57:23.835296","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:57:23.834427+00:00","timestamp_unix":1771880243.834427}}}
{"timestamp":"2026-02-23T22:57:23.835685","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:57:23.834459+00:00","timestamp_unix":1771880243.834459}}}
{"timestamp":"2026-02-23T22:57:23.835962","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:57:23.834444+00:00","timestamp_unix":1771880243.834444}}}
{"timestamp":"2026-02-23T22:57:23.836175","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:57:23.833555+00:00","timestamp_unix":1771880243.833555}}}
{"timestamp":"2026-02-23T22:57:23.837601","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:57:23.834383+00:00","timestamp_unix":1771880243.834383}}}
{"timestamp":"2026-02-23T22:57:23.869028","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:57:23.838126+00:00","validation_timestamp_unix":1771880243.838126,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:23.834427+00:00","timestamp_unix":1771880243.834427},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:57:23.834459+00:00","timestamp_unix":1771880243.834459},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:23.834444+00:00","timestamp_unix":1771880243.834444},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:23.833555+00:00","timestamp_unix":1771880243.833555},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:23.834383+00:00","timestamp_unix":1771880243.834383}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:57:34.015167","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:57:34.016507","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:57:49.018784","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:57:49.019705","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:57:53.834172","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:57:53.833609+00:00","timestamp_unix":1771880273.833609}}}
{"timestamp":"2026-02-23T22:57:53.834379","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:57:53.833635+00:00","timestamp_unix":1771880273.833635}}}
{"timestamp":"2026-02-23T22:57:53.834480","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:57:53.833622+00:00","timestamp_unix":1771880273.833622}}}
{"timestamp":"2026-02-23T22:57:53.834573","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:57:53.833540+00:00","timestamp_unix":1771880273.83354}}}
{"timestamp":"2026-02-23T22:57:53.834657","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:57:53.833593+00:00","timestamp_unix":1771880273.833593}}}
{"timestamp":"2026-02-23T22:57:53.867179","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:57:53.834907+00:00","validation_timestamp_unix":1771880273.834907,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:53.833609+00:00","timestamp_unix":1771880273.833609},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:57:53.833635+00:00","timestamp_unix":1771880273.833635},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:53.833622+00:00","timestamp_unix":1771880273.833622},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:53.833540+00:00","timestamp_unix":1771880273.83354},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:57:53.833593+00:00","timestamp_unix":1771880273.833593}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:58:04.021584","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:58:04.022381","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:58:19.023519","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:58:19.024348","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:58:23.836982","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:58:23.836337+00:00","timestamp_unix":1771880303.836337}}}
{"timestamp":"2026-02-23T22:58:23.837235","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:58:23.836365+00:00","timestamp_unix":1771880303.836365}}}
{"timestamp":"2026-02-23T22:58:23.837375","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:58:23.836351+00:00","timestamp_unix":1771880303.836351}}}
{"timestamp":"2026-02-23T22:58:23.837490","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:58:23.836250+00:00","timestamp_unix":1771880303.83625}}}
{"timestamp":"2026-02-23T22:58:23.837591","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:58:23.836321+00:00","timestamp_unix":1771880303.836321}}}
{"timestamp":"2026-02-23T22:58:23.862153","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:58:23.838005+00:00","validation_timestamp_unix":1771880303.838005,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:23.836337+00:00","timestamp_unix":1771880303.836337},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:58:23.836365+00:00","timestamp_unix":1771880303.836365},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:23.836351+00:00","timestamp_unix":1771880303.836351},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:23.836250+00:00","timestamp_unix":1771880303.83625},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:23.836321+00:00","timestamp_unix":1771880303.836321}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:58:34.026961","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:58:34.028162","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:58:49.030075","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:58:49.030863","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:58:53.836975","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:58:53.836644+00:00","timestamp_unix":1771880333.836644}}}
{"timestamp":"2026-02-23T22:58:53.837138","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:58:53.836671+00:00","timestamp_unix":1771880333.836671}}}
{"timestamp":"2026-02-23T22:58:53.837264","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:58:53.836658+00:00","timestamp_unix":1771880333.836658}}}
{"timestamp":"2026-02-23T22:58:53.837348","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:58:53.836585+00:00","timestamp_unix":1771880333.836585}}}
{"timestamp":"2026-02-23T22:58:53.837425","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:58:53.836629+00:00","timestamp_unix":1771880333.836629}}}
{"timestamp":"2026-02-23T22:58:53.864992","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:58:53.837598+00:00","validation_timestamp_unix":1771880333.837598,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:53.836644+00:00","timestamp_unix":1771880333.836644},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:58:53.836671+00:00","timestamp_unix":1771880333.836671},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:53.836658+00:00","timestamp_unix":1771880333.836658},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:53.836585+00:00","timestamp_unix":1771880333.836585},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:58:53.836629+00:00","timestamp_unix":1771880333.836629}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:59:04.032734","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:59:04.033610","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:59:19.035139","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:59:19.036080","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:59:23.838471","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:59:23.837657+00:00","timestamp_unix":1771880363.837657}}}
{"timestamp":"2026-02-23T22:59:23.838766","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:59:23.837684+00:00","timestamp_unix":1771880363.837684}}}
{"timestamp":"2026-02-23T22:59:23.838943","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:59:23.837671+00:00","timestamp_unix":1771880363.837671}}}
{"timestamp":"2026-02-23T22:59:23.839045","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:59:23.837597+00:00","timestamp_unix":1771880363.837597}}}
{"timestamp":"2026-02-23T22:59:23.839131","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:59:23.837642+00:00","timestamp_unix":1771880363.837642}}}
{"timestamp":"2026-02-23T22:59:23.868261","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:59:23.839429+00:00","validation_timestamp_unix":1771880363.839429,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:23.837657+00:00","timestamp_unix":1771880363.837657},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:59:23.837684+00:00","timestamp_unix":1771880363.837684},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:23.837671+00:00","timestamp_unix":1771880363.837671},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:23.837597+00:00","timestamp_unix":1771880363.837597},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:23.837642+00:00","timestamp_unix":1771880363.837642}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T22:59:34.039609","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:59:34.041450","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:59:49.042409","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T22:59:49.043482","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T22:59:53.840376","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T20:59:53.839026+00:00","timestamp_unix":1771880393.839026}}}
{"timestamp":"2026-02-23T22:59:53.840666","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T20:59:53.839057+00:00","timestamp_unix":1771880393.839057}}}
{"timestamp":"2026-02-23T22:59:53.840818","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T20:59:53.839043+00:00","timestamp_unix":1771880393.839043}}}
{"timestamp":"2026-02-23T22:59:53.840931","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T20:59:53.838921+00:00","timestamp_unix":1771880393.838921}}}
{"timestamp":"2026-02-23T22:59:53.841041","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T20:59:53.839008+00:00","timestamp_unix":1771880393.839008}}}
{"timestamp":"2026-02-23T22:59:53.865632","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T20:59:53.841310+00:00","validation_timestamp_unix":1771880393.84131,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:53.839026+00:00","timestamp_unix":1771880393.839026},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T20:59:53.839057+00:00","timestamp_unix":1771880393.839057},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:53.839043+00:00","timestamp_unix":1771880393.839043},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:53.838921+00:00","timestamp_unix":1771880393.838921},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T20:59:53.839008+00:00","timestamp_unix":1771880393.839008}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:00:04.044800","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:00:04.045736","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:00:19.048243","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:00:19.049200","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:00:23.839341","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:00:23.839029+00:00","timestamp_unix":1771880423.839029}}}
{"timestamp":"2026-02-23T23:00:23.839539","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:00:23.839057+00:00","timestamp_unix":1771880423.839057}}}
{"timestamp":"2026-02-23T23:00:23.839631","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:00:23.839043+00:00","timestamp_unix":1771880423.839043}}}
{"timestamp":"2026-02-23T23:00:23.839714","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:00:23.838969+00:00","timestamp_unix":1771880423.838969}}}
{"timestamp":"2026-02-23T23:00:23.839792","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:00:23.839014+00:00","timestamp_unix":1771880423.839014}}}
{"timestamp":"2026-02-23T23:00:23.868096","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:00:23.839955+00:00","validation_timestamp_unix":1771880423.839955,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:23.839029+00:00","timestamp_unix":1771880423.839029},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:00:23.839057+00:00","timestamp_unix":1771880423.839057},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:23.839043+00:00","timestamp_unix":1771880423.839043},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:23.838969+00:00","timestamp_unix":1771880423.838969},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:23.839014+00:00","timestamp_unix":1771880423.839014}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:00:34.051595","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:00:34.052676","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:00:49.054886","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:00:49.055525","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:00:53.841108","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:00:53.840773+00:00","timestamp_unix":1771880453.840773}}}
{"timestamp":"2026-02-23T23:00:53.841252","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:00:53.840801+00:00","timestamp_unix":1771880453.840801}}}
{"timestamp":"2026-02-23T23:00:53.841347","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:00:53.840787+00:00","timestamp_unix":1771880453.840787}}}
{"timestamp":"2026-02-23T23:00:53.841435","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:00:53.840707+00:00","timestamp_unix":1771880453.840707}}}
{"timestamp":"2026-02-23T23:00:53.841517","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:00:53.840757+00:00","timestamp_unix":1771880453.840757}}}
{"timestamp":"2026-02-23T23:00:53.867713","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:00:53.841688+00:00","validation_timestamp_unix":1771880453.841688,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:53.840773+00:00","timestamp_unix":1771880453.840773},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:00:53.840801+00:00","timestamp_unix":1771880453.840801},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:53.840787+00:00","timestamp_unix":1771880453.840787},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:53.840707+00:00","timestamp_unix":1771880453.840707},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:00:53.840757+00:00","timestamp_unix":1771880453.840757}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:01:04.057033","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:01:04.058010","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:01:19.060117","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:01:19.060840","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:01:23.841428","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:01:23.841124+00:00","timestamp_unix":1771880483.841124}}}
{"timestamp":"2026-02-23T23:01:23.841581","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:01:23.841150+00:00","timestamp_unix":1771880483.84115}}}
{"timestamp":"2026-02-23T23:01:23.841676","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:01:23.841137+00:00","timestamp_unix":1771880483.841137}}}
{"timestamp":"2026-02-23T23:01:23.841764","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:01:23.841066+00:00","timestamp_unix":1771880483.841066}}}
{"timestamp":"2026-02-23T23:01:23.841933","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:01:23.841109+00:00","timestamp_unix":1771880483.841109}}}
{"timestamp":"2026-02-23T23:01:23.873224","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:01:23.842163+00:00","validation_timestamp_unix":1771880483.842163,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:23.841124+00:00","timestamp_unix":1771880483.841124},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:01:23.841150+00:00","timestamp_unix":1771880483.84115},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:23.841137+00:00","timestamp_unix":1771880483.841137},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:23.841066+00:00","timestamp_unix":1771880483.841066},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:23.841109+00:00","timestamp_unix":1771880483.841109}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:01:34.063937","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:01:34.066277","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:01:49.072376","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:01:49.073165","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:01:53.842837","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:01:53.842430+00:00","timestamp_unix":1771880513.84243}}}
{"timestamp":"2026-02-23T23:01:53.842990","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:01:53.842457+00:00","timestamp_unix":1771880513.842457}}}
{"timestamp":"2026-02-23T23:01:53.843085","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:01:53.842443+00:00","timestamp_unix":1771880513.842443}}}
{"timestamp":"2026-02-23T23:01:53.843172","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:01:53.842365+00:00","timestamp_unix":1771880513.842365}}}
{"timestamp":"2026-02-23T23:01:53.843255","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:01:53.842415+00:00","timestamp_unix":1771880513.842415}}}
{"timestamp":"2026-02-23T23:01:53.870117","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:01:53.843422+00:00","validation_timestamp_unix":1771880513.843422,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:53.842430+00:00","timestamp_unix":1771880513.84243},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:01:53.842457+00:00","timestamp_unix":1771880513.842457},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:53.842443+00:00","timestamp_unix":1771880513.842443},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:53.842365+00:00","timestamp_unix":1771880513.842365},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:01:53.842415+00:00","timestamp_unix":1771880513.842415}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:02:04.075979","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:02:04.078357","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:02:19.079392","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:02:19.082548","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:02:23.843784","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:02:23.842952+00:00","timestamp_unix":1771880543.842952}}}
{"timestamp":"2026-02-23T23:02:23.844125","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:02:23.842985+00:00","timestamp_unix":1771880543.842985}}}
{"timestamp":"2026-02-23T23:02:23.844316","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:02:23.842969+00:00","timestamp_unix":1771880543.842969}}}
{"timestamp":"2026-02-23T23:02:23.844434","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:02:23.842839+00:00","timestamp_unix":1771880543.842839}}}
{"timestamp":"2026-02-23T23:02:23.844528","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:02:23.842933+00:00","timestamp_unix":1771880543.842933}}}
{"timestamp":"2026-02-23T23:02:23.878562","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:02:23.846489+00:00","validation_timestamp_unix":1771880543.846489,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:23.842952+00:00","timestamp_unix":1771880543.842952},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:02:23.842985+00:00","timestamp_unix":1771880543.842985},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:23.842969+00:00","timestamp_unix":1771880543.842969},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:23.842839+00:00","timestamp_unix":1771880543.842839},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:23.842933+00:00","timestamp_unix":1771880543.842933}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:02:34.082991","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:02:34.085161","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:02:49.085858","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:02:49.087763","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}
{"timestamp":"2026-02-23T23:02:53.844396","level":"INFO","source":"tm_ais","message":"Injected position","data":{"position":{"latitude":36.110657,"longitude":22.572672,"//timestamp_unix":1732461600.0,"source":"tm_ais","timestamp":"2026-02-23T21:02:53.843820+00:00","timestamp_unix":1771880573.84382}}}
{"timestamp":"2026-02-23T23:02:53.844646","level":"INFO","source":"starlink_location","message":"Injected position","data":{"position":{"latitude":36.11055187009735,"longitude":22.57289484169309,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"source":"starlink_location","timestamp":"2026-02-23T21:02:53.843848+00:00","timestamp_unix":1771880573.843848}}}
{"timestamp":"2026-02-23T23:02:53.844813","level":"INFO","source":"starlink_gps","message":"Injected position","data":{"position":{"latitude":36.11055287599966,"longitude":22.57289200819445,"//timestamp_unix":1732461600.0,"altitude":54.29000515150101,"source":"starlink_gps","timestamp":"2026-02-23T21:02:53.843834+00:00","timestamp_unix":1771880573.843834}}}
{"timestamp":"2026-02-23T23:02:53.844998","level":"INFO","source":"nmea_primary","message":"Injected position","data":{"position":{"latitude":36.11063,"longitude":22.972875,"//timestamp_unix":1768308542.0,"altitude":14.0,"source":"nmea_primary","timestamp":"2026-02-23T21:02:53.843722+00:00","timestamp_unix":1771880573.843722}}}
{"timestamp":"2026-02-23T23:02:53.845118","level":"INFO","source":"nmea_secondary","message":"Injected position","data":{"position":{"latitude":36.11085833333333,"longitude":22.572023333333334,"//timestamp_unix":1732461600.0,"altitude":13.2,"source":"nmea_secondary","timestamp":"2026-02-23T21:02:53.843800+00:00","timestamp_unix":1771880573.8438}}}
{"timestamp":"2026-02-23T23:02:53.885574","level":"WARNING","source":"validation","message":"Validation failed","data":{"validation":{"validation_timestamp":"2026-02-23T21:02:53.846107+00:00","validation_timestamp_unix":1771880573.846107,"is_valid":false,"sources_missing":[],"sources_stale":[],"coordinate_differences":{"tm_ais_starlink_location":{"distance_meters":23.1816563266951,"source1":"tm_ais","source2":"starlink_location"},"tm_ais_starlink_gps":{"distance_meters":22.905468559001534,"source1":"tm_ais","source2":"starlink_gps"},"tm_ais_nmea_primary":{"distance_meters":35951.09222409758,"source1":"tm_ais","source2":"nmea_primary"},"tm_ais_nmea_secondary":{"distance_meters":62.42360552774925,"source1":"tm_ais","source2":"nmea_secondary"},"starlink_location_starlink_gps":{"distance_meters":0.27803087725616366,"source1":"starlink_location","source2":"starlink_gps"},"starlink_location_nmea_primary":{"distance_meters":35931.09887839561,"source1":"starlink_location","source2":"nmea_primary"},"starlink_location_nmea_secondary":{"distance_meters":85.38437464525116,"source1":"starlink_location","source2":"nmea_secondary"},"starlink_gps_nmea_primary":{"distance_meters":35931.353160486055,"source1":"starlink_gps","source2":"nmea_primary"},"starlink_gps_nmea_secondary":{"distance_meters":85.10634545958962,"source1":"starlink_gps","source2":"nmea_secondary"},"nmea_primary_nmea_secondary":{"distance_meters":36009.32592871677,"source1":"nmea_primary","source2":"nmea_secondary"}},"source_coordinates":{"tm_ais":{"latitude":36.110657,"longitude":22.572672,"altitude":null,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:53.843820+00:00","timestamp_unix":1771880573.84382},"starlink_location":{"latitude":36.11055187009735,"longitude":22.57289484169309,"altitude":54.29000515150101,"position_uncertainty_m":2.5,"timestamp":"2026-02-23T21:02:53.843848+00:00","timestamp_unix":1771880573.843848},"starlink_gps":{"latitude":36.11055287599966,"longitude":22.57289200819445,"altitude":54.29000515150101,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:53.843834+00:00","timestamp_unix":1771880573.843834},"nmea_primary":{"latitude":36.11063,"longitude":22.972875,"altitude":14.0,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:53.843722+00:00","timestamp_unix":1771880573.843722},"nmea_secondary":{"latitude":36.11085833333333,"longitude":22.572023333333334,"altitude":13.2,"position_uncertainty_m":null,"timestamp":"2026-02-23T21:02:53.843800+00:00","timestamp_unix":1771880573.8438}},"validation_details":{"threshold_meters":200.0,"stale_threshold_seconds":60,"expected_sources":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_found":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_with_coordinates":["tm_ais","starlink_location","starlink_gps","nmea_primary","nmea_secondary"],"sources_null_island":[],"max_distance_meters":36009.32592871677,"position_uncertainties":{"starlink_location":2.5}}}}}
{"timestamp":"2026-02-23T23:03:04.088684","level":"ERROR","source":"nmea_primary","message":"Connection timeout for device nmea_primary","data":{"device_ip":"10.130.60.61","device_port":4001,"timeout":10}}
{"timestamp":"2026-02-23T23:03:04.090180","level":"ERROR","source":"nmea_secondary","message":"Connection timeout for device nmea_secondary","data":{"device_ip":"10.130.60.61","device_port":4002,"timeout":10}}